xref: /vim-8.2.3635/src/testdir/test_man.vim (revision 159563b4)
155b0fb70SBram Moolenaar" Test specifically for the Man filetype plugin.
255b0fb70SBram Moolenaar
3ddf8d1c7SBram Moolenaarruntime ftplugin/man.vim
4ddf8d1c7SBram Moolenaar
5bca9c301SBram Moolenaarfunc Test_g_ft_man_open_mode()
6ddf8d1c7SBram Moolenaar  vnew
7ddf8d1c7SBram Moolenaar  let l:h = winheight(1)
8ddf8d1c7SBram Moolenaar  q
961c04493SBram Moolenaar  let l:w = winwidth(1)
10ddf8d1c7SBram Moolenaar
11ddf8d1c7SBram Moolenaar  " split horizontally
12ddf8d1c7SBram Moolenaar  let wincnt = winnr('$')
1361c04493SBram Moolenaar  Man vim
14ddf8d1c7SBram Moolenaar  if wincnt == winnr('$')
15ddf8d1c7SBram Moolenaar    " Vim manual page cannot be found.
16ddf8d1c7SBram Moolenaar    return
17ddf8d1c7SBram Moolenaar  endif
1861c04493SBram Moolenaar
1961c04493SBram Moolenaar  call assert_inrange(l:w - 2, l:w + 2, winwidth(1))
20ddf8d1c7SBram Moolenaar  call assert_true(l:h > winheight(1))
21ddf8d1c7SBram Moolenaar  call assert_equal(1, tabpagenr('$'))
22ddf8d1c7SBram Moolenaar  call assert_equal(1, tabpagenr())
23ddf8d1c7SBram Moolenaar  q
24ddf8d1c7SBram Moolenaar
25ddf8d1c7SBram Moolenaar  " split horizontally
26ddf8d1c7SBram Moolenaar  let g:ft_man_open_mode = "horz"
2761c04493SBram Moolenaar  Man vim
2861c04493SBram Moolenaar  call assert_inrange(l:w - 2, l:w + 2, winwidth(1))
29ddf8d1c7SBram Moolenaar  call assert_true(l:h > winheight(1))
30ddf8d1c7SBram Moolenaar  call assert_equal(1, tabpagenr('$'))
31ddf8d1c7SBram Moolenaar  call assert_equal(1, tabpagenr())
32ddf8d1c7SBram Moolenaar  q
33ddf8d1c7SBram Moolenaar
34ddf8d1c7SBram Moolenaar  " split vertically
35ddf8d1c7SBram Moolenaar  let g:ft_man_open_mode = "vert"
3661c04493SBram Moolenaar  Man vim
37ddf8d1c7SBram Moolenaar  call assert_true(l:w > winwidth(1))
38ddf8d1c7SBram Moolenaar  call assert_equal(l:h, winheight(1))
39ddf8d1c7SBram Moolenaar  call assert_equal(1, tabpagenr('$'))
40ddf8d1c7SBram Moolenaar  call assert_equal(1, tabpagenr())
41ddf8d1c7SBram Moolenaar  q
42ddf8d1c7SBram Moolenaar
43ddf8d1c7SBram Moolenaar  " separate tab
44ddf8d1c7SBram Moolenaar  let g:ft_man_open_mode = "tab"
4561c04493SBram Moolenaar  Man vim
4661c04493SBram Moolenaar  call assert_inrange(l:w - 2, l:w + 2, winwidth(1))
4761c04493SBram Moolenaar  call assert_inrange(l:h - 1, l:h + 1, winheight(1))
48ddf8d1c7SBram Moolenaar  call assert_equal(2, tabpagenr('$'))
49ddf8d1c7SBram Moolenaar  call assert_equal(2, tabpagenr())
50ddf8d1c7SBram Moolenaar  q
51e5e69501SBram Moolenaar
52e5e69501SBram Moolenaar  unlet g:ft_man_open_mode
53bca9c301SBram Moolenaarendfunc
54ddf8d1c7SBram Moolenaar
55bca9c301SBram Moolenaarfunc Test_nomodifiable()
56ddf8d1c7SBram Moolenaar  let wincnt = winnr('$')
5761c04493SBram Moolenaar  Man vim
58ddf8d1c7SBram Moolenaar  if wincnt == winnr('$')
59ddf8d1c7SBram Moolenaar    " Vim manual page cannot be found.
60ddf8d1c7SBram Moolenaar    return
61ddf8d1c7SBram Moolenaar  endif
62ddf8d1c7SBram Moolenaar  call assert_false(&l:modifiable)
63ddf8d1c7SBram Moolenaar  q
64bca9c301SBram Moolenaarendfunc
65e5e69501SBram Moolenaar
66bca9c301SBram Moolenaarfunc Test_buffer_count_hidden()
67e5e69501SBram Moolenaar  %bw!
68e5e69501SBram Moolenaar  set hidden
69e5e69501SBram Moolenaar
70e5e69501SBram Moolenaar  call assert_equal(1, len(getbufinfo()))
71e5e69501SBram Moolenaar
72e5e69501SBram Moolenaar  let wincnt = winnr('$')
73e5e69501SBram Moolenaar  Man vim
74e5e69501SBram Moolenaar  if wincnt == winnr('$')
75e5e69501SBram Moolenaar    " Vim manual page cannot be found.
76e5e69501SBram Moolenaar    return
77e5e69501SBram Moolenaar  endif
78e5e69501SBram Moolenaar
79e5e69501SBram Moolenaar  call assert_equal(1, len(getbufinfo({'buflisted':1})))
80e5e69501SBram Moolenaar  call assert_equal(2, len(getbufinfo()))
81e5e69501SBram Moolenaar  q
82e5e69501SBram Moolenaar
83e5e69501SBram Moolenaar  Man vim
84e5e69501SBram Moolenaar
85e5e69501SBram Moolenaar  call assert_equal(1, len(getbufinfo({'buflisted':1})))
86e5e69501SBram Moolenaar  call assert_equal(2, len(getbufinfo()))
87e5e69501SBram Moolenaar  q
88e5e69501SBram Moolenaar
89e5e69501SBram Moolenaar  set hidden&
90bca9c301SBram Moolenaarendfunc
91bca9c301SBram Moolenaar
92bca9c301SBram Moolenaar" Check that we do not alter the settings in the initial window.
93bca9c301SBram Moolenaarfunc Test_local_options()
94bca9c301SBram Moolenaar  %bw!
95bca9c301SBram Moolenaar  set foldcolumn=1 number
96bca9c301SBram Moolenaar
97bca9c301SBram Moolenaar  let wincnt = winnr('$')
98bca9c301SBram Moolenaar  Man vim
99bca9c301SBram Moolenaar  if wincnt == winnr('$')
100bca9c301SBram Moolenaar    " Vim manual page cannot be found.
101bca9c301SBram Moolenaar    return
102bca9c301SBram Moolenaar  endif
103bca9c301SBram Moolenaar
104bca9c301SBram Moolenaar  " man page
105bca9c301SBram Moolenaar  call assert_false(&nu)
106bca9c301SBram Moolenaar  call assert_equal(0, &fdc)
107bca9c301SBram Moolenaar
108bca9c301SBram Moolenaar  " initial window
109bca9c301SBram Moolenaar  wincmd p
110bca9c301SBram Moolenaar  call assert_true(&nu)
111bca9c301SBram Moolenaar  call assert_equal(1, &fdc)
112bca9c301SBram Moolenaar
113bca9c301SBram Moolenaar  %bw!
114bca9c301SBram Moolenaar  set foldcolumn& number&
115bca9c301SBram Moolenaarendfunc
11655b0fb70SBram Moolenaar
11755b0fb70SBram Moolenaar" Check that the unnamed register is not overwritten.
11855b0fb70SBram Moolenaarfunc Test_keep_unnamed_register()
11955b0fb70SBram Moolenaar  %bw!
12055b0fb70SBram Moolenaar
12155b0fb70SBram Moolenaar  let @" = '---'
12255b0fb70SBram Moolenaar
12355b0fb70SBram Moolenaar  let wincnt = winnr('$')
12455b0fb70SBram Moolenaar  Man vim
12555b0fb70SBram Moolenaar  if wincnt == winnr('$')
12655b0fb70SBram Moolenaar    " Vim manual page cannot be found.
12755b0fb70SBram Moolenaar    return
12855b0fb70SBram Moolenaar  endif
12955b0fb70SBram Moolenaar
13055b0fb70SBram Moolenaar  call assert_equal('---', @")
13155b0fb70SBram Moolenaar
13255b0fb70SBram Moolenaar  %bw!
13355b0fb70SBram Moolenaarendfunc
1346d91bcb4SBram Moolenaar
135*159563b4SBram Moolenaar" Check that underlying shell command arguments are escaped.
136*159563b4SBram Moolenaarfunc Test_Man_uses_shellescape()
137*159563b4SBram Moolenaar  Man `touch\ Xbar` `touch\ Xfoo`
138*159563b4SBram Moolenaar
139*159563b4SBram Moolenaar  redir => msg
140*159563b4SBram Moolenaar  1messages
141*159563b4SBram Moolenaar  redir END
142*159563b4SBram Moolenaar  call assert_match('no manual entry for "`touch Xfoo`"', msg)
143*159563b4SBram Moolenaar
144*159563b4SBram Moolenaar  call assert_false(filereadable('Xbar'))
145*159563b4SBram Moolenaar  call assert_false(filereadable('Xfoo'))
146*159563b4SBram Moolenaarendfunc
147*159563b4SBram Moolenaar
148*159563b4SBram Moolenaar
1496d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
150