blob: 083b1aefc6e12e203294862ffa10c2f314bc0b4f [file] [log] [blame]
Bram Moolenaar55b0fb72020-04-13 14:58:37 +02001" Test specifically for the Man filetype plugin.
2
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +02003runtime ftplugin/man.vim
4
Bram Moolenaarbca9c302019-07-28 15:28:45 +02005func Test_g_ft_man_open_mode()
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +02006 vnew
7 let l:h = winheight(1)
8 q
Bram Moolenaar61c04492016-07-23 15:35:35 +02009 let l:w = winwidth(1)
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +020010
11 " split horizontally
12 let wincnt = winnr('$')
Bram Moolenaar61c04492016-07-23 15:35:35 +020013 Man vim
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +020014 if wincnt == winnr('$')
15 " Vim manual page cannot be found.
16 return
17 endif
Bram Moolenaar61c04492016-07-23 15:35:35 +020018
19 call assert_inrange(l:w - 2, l:w + 2, winwidth(1))
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +020020 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 Moolenaar61c04492016-07-23 15:35:35 +020027 Man vim
28 call assert_inrange(l:w - 2, l:w + 2, winwidth(1))
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +020029 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 Moolenaar61c04492016-07-23 15:35:35 +020036 Man vim
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +020037 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 Moolenaar61c04492016-07-23 15:35:35 +020045 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 Moolenaarddf8d1c2016-06-20 11:22:54 +020048 call assert_equal(2, tabpagenr('$'))
49 call assert_equal(2, tabpagenr())
50 q
Bram Moolenaare5e69502019-07-22 22:09:21 +020051
52 unlet g:ft_man_open_mode
Bram Moolenaarbca9c302019-07-28 15:28:45 +020053endfunc
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +020054
Bram Moolenaarbca9c302019-07-28 15:28:45 +020055func Test_nomodifiable()
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +020056 let wincnt = winnr('$')
Bram Moolenaar61c04492016-07-23 15:35:35 +020057 Man vim
Bram Moolenaarddf8d1c2016-06-20 11:22:54 +020058 if wincnt == winnr('$')
59 " Vim manual page cannot be found.
60 return
61 endif
62 call assert_false(&l:modifiable)
63 q
Bram Moolenaarbca9c302019-07-28 15:28:45 +020064endfunc
Bram Moolenaare5e69502019-07-22 22:09:21 +020065
Bram Moolenaarbca9c302019-07-28 15:28:45 +020066func Test_buffer_count_hidden()
Bram Moolenaare5e69502019-07-22 22:09:21 +020067 %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 Moolenaarbca9c302019-07-28 15:28:45 +020090endfunc
91
92" Check that we do not alter the settings in the initial window.
93func 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&
115endfunc
Bram Moolenaar55b0fb72020-04-13 14:58:37 +0200116
117" Check that the unnamed register is not overwritten.
118func 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!
133endfunc