diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 13:18:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 13:18:03 +0000 |
commit | afce081b90c1e2c50c3507758c7558a0dfa1f33e (patch) | |
tree | 3fb840f0bd9de41b463443ddf17131a0ad77f226 /src/testdir/test_man.vim | |
parent | Initial commit. (diff) | |
download | vim-afce081b90c1e2c50c3507758c7558a0dfa1f33e.tar.xz vim-afce081b90c1e2c50c3507758c7558a0dfa1f33e.zip |
Adding upstream version 2:8.2.2434.upstream/2%8.2.2434upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/testdir/test_man.vim')
-rw-r--r-- | src/testdir/test_man.vim | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/src/testdir/test_man.vim b/src/testdir/test_man.vim new file mode 100644 index 0000000..f3af477 --- /dev/null +++ b/src/testdir/test_man.vim @@ -0,0 +1,149 @@ +" Test specifically for the Man filetype plugin. + +runtime ftplugin/man.vim + +func Test_g_ft_man_open_mode() + vnew + let l:h = winheight(1) + q + let l:w = winwidth(1) + + " split horizontally + let wincnt = winnr('$') + Man vim + if wincnt == winnr('$') + " Vim manual page cannot be found. + return + endif + + call assert_inrange(l:w - 2, l:w + 2, winwidth(1)) + call assert_true(l:h > winheight(1)) + call assert_equal(1, tabpagenr('$')) + call assert_equal(1, tabpagenr()) + q + + " split horizontally + let g:ft_man_open_mode = "horz" + Man vim + call assert_inrange(l:w - 2, l:w + 2, winwidth(1)) + call assert_true(l:h > winheight(1)) + call assert_equal(1, tabpagenr('$')) + call assert_equal(1, tabpagenr()) + q + + " split vertically + let g:ft_man_open_mode = "vert" + Man vim + call assert_true(l:w > winwidth(1)) + call assert_equal(l:h, winheight(1)) + call assert_equal(1, tabpagenr('$')) + call assert_equal(1, tabpagenr()) + q + + " separate tab + let g:ft_man_open_mode = "tab" + Man vim + call assert_inrange(l:w - 2, l:w + 2, winwidth(1)) + call assert_inrange(l:h - 1, l:h + 1, winheight(1)) + call assert_equal(2, tabpagenr('$')) + call assert_equal(2, tabpagenr()) + q + + unlet g:ft_man_open_mode +endfunc + +func Test_nomodifiable() + let wincnt = winnr('$') + Man vim + if wincnt == winnr('$') + " Vim manual page cannot be found. + return + endif + call assert_false(&l:modifiable) + q +endfunc + +func Test_buffer_count_hidden() + %bw! + set hidden + + call assert_equal(1, len(getbufinfo())) + + let wincnt = winnr('$') + Man vim + if wincnt == winnr('$') + " Vim manual page cannot be found. + return + endif + + call assert_equal(1, len(getbufinfo({'buflisted':1}))) + call assert_equal(2, len(getbufinfo())) + q + + Man vim + + call assert_equal(1, len(getbufinfo({'buflisted':1}))) + call assert_equal(2, len(getbufinfo())) + q + + set hidden& +endfunc + +" Check that we do not alter the settings in the initial window. +func Test_local_options() + %bw! + set foldcolumn=1 number + + let wincnt = winnr('$') + Man vim + if wincnt == winnr('$') + " Vim manual page cannot be found. + return + endif + + " man page + call assert_false(&nu) + call assert_equal(0, &fdc) + + " initial window + wincmd p + call assert_true(&nu) + call assert_equal(1, &fdc) + + %bw! + set foldcolumn& number& +endfunc + +" Check that the unnamed register is not overwritten. +func Test_keep_unnamed_register() + %bw! + + let @" = '---' + + let wincnt = winnr('$') + Man vim + if wincnt == winnr('$') + " Vim manual page cannot be found. + return + endif + + call assert_equal('---', @") + + %bw! +endfunc + +" Check that underlying shell command arguments are escaped. +func Test_Man_uses_shellescape() + Man `touch\ Xbar` `touch\ Xfoo` + + redir => msg + 1messages + redir END + call assert_match('no manual entry for "`touch Xfoo`"', msg) + + call assert_false(filereadable('Xbar')) + call assert_false(filereadable('Xfoo')) +endfunc + + +" vim: shiftwidth=2 sts=2 expandtab |