Bram Moolenaar | 55b0fb7 | 2020-04-13 14:58:37 +0200 | [diff] [blame] | 1 | " Test specifically for the Man filetype plugin. |
| 2 | |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 3 | runtime ftplugin/man.vim |
| 4 | |
Bram Moolenaar | bca9c30 | 2019-07-28 15:28:45 +0200 | [diff] [blame] | 5 | func Test_g_ft_man_open_mode() |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 6 | vnew |
| 7 | let l:h = winheight(1) |
| 8 | q |
Bram Moolenaar | 61c0449 | 2016-07-23 15:35:35 +0200 | [diff] [blame] | 9 | let l:w = winwidth(1) |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 10 | |
| 11 | " split horizontally |
| 12 | let wincnt = winnr('$') |
Bram Moolenaar | 61c0449 | 2016-07-23 15:35:35 +0200 | [diff] [blame] | 13 | Man vim |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 14 | if wincnt == winnr('$') |
| 15 | " Vim manual page cannot be found. |
| 16 | return |
| 17 | endif |
Bram Moolenaar | 61c0449 | 2016-07-23 15:35:35 +0200 | [diff] [blame] | 18 | |
| 19 | call assert_inrange(l:w - 2, l:w + 2, winwidth(1)) |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 20 | call assert_true(l:h > winheight(1)) |
| 21 | call assert_equal(1, tabpagenr('$')) |
| 22 | call assert_equal(1, tabpagenr()) |
| 23 | q |
| 24 | |
| 25 | " split horizontally |
| 26 | let g:ft_man_open_mode = "horz" |
Bram Moolenaar | 61c0449 | 2016-07-23 15:35:35 +0200 | [diff] [blame] | 27 | Man vim |
| 28 | call assert_inrange(l:w - 2, l:w + 2, winwidth(1)) |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 29 | call assert_true(l:h > winheight(1)) |
| 30 | call assert_equal(1, tabpagenr('$')) |
| 31 | call assert_equal(1, tabpagenr()) |
| 32 | q |
| 33 | |
| 34 | " split vertically |
| 35 | let g:ft_man_open_mode = "vert" |
Bram Moolenaar | 61c0449 | 2016-07-23 15:35:35 +0200 | [diff] [blame] | 36 | Man vim |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 37 | call assert_true(l:w > winwidth(1)) |
| 38 | call assert_equal(l:h, winheight(1)) |
| 39 | call assert_equal(1, tabpagenr('$')) |
| 40 | call assert_equal(1, tabpagenr()) |
| 41 | q |
| 42 | |
| 43 | " separate tab |
| 44 | let g:ft_man_open_mode = "tab" |
Bram Moolenaar | 61c0449 | 2016-07-23 15:35:35 +0200 | [diff] [blame] | 45 | Man vim |
| 46 | call assert_inrange(l:w - 2, l:w + 2, winwidth(1)) |
| 47 | call assert_inrange(l:h - 1, l:h + 1, winheight(1)) |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 48 | call assert_equal(2, tabpagenr('$')) |
| 49 | call assert_equal(2, tabpagenr()) |
| 50 | q |
Bram Moolenaar | e5e6950 | 2019-07-22 22:09:21 +0200 | [diff] [blame] | 51 | |
| 52 | unlet g:ft_man_open_mode |
Bram Moolenaar | bca9c30 | 2019-07-28 15:28:45 +0200 | [diff] [blame] | 53 | endfunc |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 54 | |
Bram Moolenaar | bca9c30 | 2019-07-28 15:28:45 +0200 | [diff] [blame] | 55 | func Test_nomodifiable() |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 56 | let wincnt = winnr('$') |
Bram Moolenaar | 61c0449 | 2016-07-23 15:35:35 +0200 | [diff] [blame] | 57 | Man vim |
Bram Moolenaar | ddf8d1c | 2016-06-20 11:22:54 +0200 | [diff] [blame] | 58 | if wincnt == winnr('$') |
| 59 | " Vim manual page cannot be found. |
| 60 | return |
| 61 | endif |
| 62 | call assert_false(&l:modifiable) |
| 63 | q |
Bram Moolenaar | bca9c30 | 2019-07-28 15:28:45 +0200 | [diff] [blame] | 64 | endfunc |
Bram Moolenaar | e5e6950 | 2019-07-22 22:09:21 +0200 | [diff] [blame] | 65 | |
Bram Moolenaar | bca9c30 | 2019-07-28 15:28:45 +0200 | [diff] [blame] | 66 | func Test_buffer_count_hidden() |
Bram Moolenaar | e5e6950 | 2019-07-22 22:09:21 +0200 | [diff] [blame] | 67 | %bw! |
| 68 | set hidden |
| 69 | |
| 70 | call assert_equal(1, len(getbufinfo())) |
| 71 | |
| 72 | let wincnt = winnr('$') |
| 73 | Man vim |
| 74 | if wincnt == winnr('$') |
| 75 | " Vim manual page cannot be found. |
| 76 | return |
| 77 | endif |
| 78 | |
| 79 | call assert_equal(1, len(getbufinfo({'buflisted':1}))) |
| 80 | call assert_equal(2, len(getbufinfo())) |
| 81 | q |
| 82 | |
| 83 | Man vim |
| 84 | |
| 85 | call assert_equal(1, len(getbufinfo({'buflisted':1}))) |
| 86 | call assert_equal(2, len(getbufinfo())) |
| 87 | q |
| 88 | |
| 89 | set hidden& |
Bram Moolenaar | bca9c30 | 2019-07-28 15:28:45 +0200 | [diff] [blame] | 90 | endfunc |
| 91 | |
| 92 | " Check that we do not alter the settings in the initial window. |
| 93 | func Test_local_options() |
| 94 | %bw! |
| 95 | set foldcolumn=1 number |
| 96 | |
| 97 | let wincnt = winnr('$') |
| 98 | Man vim |
| 99 | if wincnt == winnr('$') |
| 100 | " Vim manual page cannot be found. |
| 101 | return |
| 102 | endif |
| 103 | |
| 104 | " man page |
| 105 | call assert_false(&nu) |
| 106 | call assert_equal(0, &fdc) |
| 107 | |
| 108 | " initial window |
| 109 | wincmd p |
| 110 | call assert_true(&nu) |
| 111 | call assert_equal(1, &fdc) |
| 112 | |
| 113 | %bw! |
| 114 | set foldcolumn& number& |
| 115 | endfunc |
Bram Moolenaar | 55b0fb7 | 2020-04-13 14:58:37 +0200 | [diff] [blame] | 116 | |
| 117 | " Check that the unnamed register is not overwritten. |
| 118 | func Test_keep_unnamed_register() |
| 119 | %bw! |
| 120 | |
| 121 | let @" = '---' |
| 122 | |
| 123 | let wincnt = winnr('$') |
| 124 | Man vim |
| 125 | if wincnt == winnr('$') |
| 126 | " Vim manual page cannot be found. |
| 127 | return |
| 128 | endif |
| 129 | |
| 130 | call assert_equal('---', @") |
| 131 | |
| 132 | %bw! |
| 133 | endfunc |