xref: /vim-8.2.3635/src/testdir/test_help.vim (revision 59585497)
1343b8c04SBram Moolenaar" Tests for :help
2343b8c04SBram Moolenaar
317709e28SBram Moolenaarsource check.vim
417709e28SBram Moolenaar
5343b8c04SBram Moolenaarfunc Test_help_restore_snapshot()
6343b8c04SBram Moolenaar  help
7343b8c04SBram Moolenaar  set buftype=
8343b8c04SBram Moolenaar  help
9343b8c04SBram Moolenaar  edit x
10343b8c04SBram Moolenaar  help
11343b8c04SBram Moolenaar  helpclose
12343b8c04SBram Moolenaarendfunc
13751ba616SBram Moolenaar
14751ba616SBram Moolenaarfunc Test_help_errors()
15751ba616SBram Moolenaar  call assert_fails('help doesnotexist', 'E149:')
16751ba616SBram Moolenaar  call assert_fails('help!', 'E478:')
17ea3db914SBram Moolenaar  if has('multi_lang')
18ea3db914SBram Moolenaar    call assert_fails('help help@xy', 'E661:')
19ea3db914SBram Moolenaar  endif
20ea3db914SBram Moolenaar
21ea3db914SBram Moolenaar  let save_hf = &helpfile
22ea3db914SBram Moolenaar  set helpfile=help_missing
23ea3db914SBram Moolenaar  help
24ea3db914SBram Moolenaar  call assert_equal(1, winnr('$'))
25ea3db914SBram Moolenaar  call assert_notequal('help', &buftype)
26ea3db914SBram Moolenaar  let &helpfile = save_hf
27ea3db914SBram Moolenaar
28ea3db914SBram Moolenaar  call assert_fails('help ' . repeat('a', 1048), 'E149:')
29a4f99f5aSBram Moolenaar
30a4f99f5aSBram Moolenaar  new
31a4f99f5aSBram Moolenaar  set keywordprg=:help
32a4f99f5aSBram Moolenaar  call setline(1, "   ")
33a4f99f5aSBram Moolenaar  call assert_fails('normal VK', 'E349:')
34a4f99f5aSBram Moolenaar  bwipe!
35a4f99f5aSBram Moolenaarendfunc
36a4f99f5aSBram Moolenaar
379ca25085SBram Moolenaarfunc Test_help_expr()
389ca25085SBram Moolenaar  help expr-!~?
399ca25085SBram Moolenaar  call assert_equal('eval.txt', expand('%:t'))
409ca25085SBram Moolenaar  close
419ca25085SBram Moolenaarendfunc
429ca25085SBram Moolenaar
43a4f99f5aSBram Moolenaarfunc Test_help_keyword()
44a4f99f5aSBram Moolenaar  new
45a4f99f5aSBram Moolenaar  set keywordprg=:help
46a4f99f5aSBram Moolenaar  call setline(1, "  Visual ")
47a4f99f5aSBram Moolenaar  normal VK
48a4f99f5aSBram Moolenaar  call assert_match('^Visual mode', getline('.'))
49a4f99f5aSBram Moolenaar  call assert_equal('help', &ft)
50a4f99f5aSBram Moolenaar  close
51a4f99f5aSBram Moolenaar  bwipe!
52751ba616SBram Moolenaarendfunc
5335c5e815SBram Moolenaar
5435c5e815SBram Moolenaarfunc Test_help_local_additions()
5535c5e815SBram Moolenaar  call mkdir('Xruntime/doc', 'p')
5635c5e815SBram Moolenaar  call writefile(['*mydoc.txt* my awesome doc'], 'Xruntime/doc/mydoc.txt')
5735c5e815SBram Moolenaar  call writefile(['*mydoc-ext.txt* my extended awesome doc'], 'Xruntime/doc/mydoc-ext.txt')
5835c5e815SBram Moolenaar  let rtp_save = &rtp
5935c5e815SBram Moolenaar  set rtp+=./Xruntime
6035c5e815SBram Moolenaar  help
6135c5e815SBram Moolenaar  1
6235c5e815SBram Moolenaar  call search('mydoc.txt')
6335c5e815SBram Moolenaar  call assert_equal('|mydoc.txt| my awesome doc', getline('.'))
6435c5e815SBram Moolenaar  1
6535c5e815SBram Moolenaar  call search('mydoc-ext.txt')
6635c5e815SBram Moolenaar  call assert_equal('|mydoc-ext.txt| my extended awesome doc', getline('.'))
6735c5e815SBram Moolenaar  close
6835c5e815SBram Moolenaar
6935c5e815SBram Moolenaar  call delete('Xruntime', 'rf')
7035c5e815SBram Moolenaar  let &rtp = rtp_save
7135c5e815SBram Moolenaarendfunc
72297610baSBram Moolenaar
73297610baSBram Moolenaarfunc Test_help_completion()
74297610baSBram Moolenaar  call feedkeys(":help :undo\<C-A>\<C-B>\"\<CR>", 'tx')
75297610baSBram Moolenaar  call assert_equal('"help :undo :undoj :undol :undojoin :undolist', @:)
76297610baSBram Moolenaarendfunc
77e20b9eceSBram Moolenaar
78e20b9eceSBram Moolenaar" Test for the :helptags command
79f9a65505SBram Moolenaar" NOTE: if you run tests as root this will fail.  Don't run tests as root!
80e20b9eceSBram Moolenaarfunc Test_helptag_cmd()
81e20b9eceSBram Moolenaar  call mkdir('Xdir/a/doc', 'p')
82e20b9eceSBram Moolenaar
83e20b9eceSBram Moolenaar  " No help file to process in the directory
84e20b9eceSBram Moolenaar  call assert_fails('helptags Xdir', 'E151:')
85e20b9eceSBram Moolenaar
86e20b9eceSBram Moolenaar  call writefile([], 'Xdir/a/doc/sample.txt')
87e20b9eceSBram Moolenaar
88e20b9eceSBram Moolenaar  " Test for ++t argument
89e20b9eceSBram Moolenaar  helptags ++t Xdir
90e20b9eceSBram Moolenaar  call assert_equal(["help-tags\ttags\t1"], readfile('Xdir/tags'))
91e20b9eceSBram Moolenaar  call delete('Xdir/tags')
92e20b9eceSBram Moolenaar
9317709e28SBram Moolenaar  " Duplicate tags in the help file
9417709e28SBram Moolenaar  call writefile(['*tag1*', '*tag1*', '*tag2*'], 'Xdir/a/doc/sample.txt')
9517709e28SBram Moolenaar  call assert_fails('helptags Xdir', 'E154:')
9617709e28SBram Moolenaar
9717709e28SBram Moolenaar  call delete('Xdir', 'rf')
9817709e28SBram Moolenaarendfunc
9917709e28SBram Moolenaar
10017709e28SBram Moolenaarfunc Test_helptag_cmd_readonly()
10117709e28SBram Moolenaar  CheckUnix
10217709e28SBram Moolenaar  CheckNotRoot
10317709e28SBram Moolenaar
104e20b9eceSBram Moolenaar  " Read-only tags file
105414b7966SBram Moolenaar  call mkdir('Xdir/doc', 'p')
106414b7966SBram Moolenaar  call writefile([''], 'Xdir/doc/tags')
107414b7966SBram Moolenaar  call writefile([], 'Xdir/doc/sample.txt')
108414b7966SBram Moolenaar  call setfperm('Xdir/doc/tags', 'r-xr--r--')
109414b7966SBram Moolenaar  call assert_fails('helptags Xdir/doc', 'E152:', getfperm('Xdir/doc/tags'))
110414b7966SBram Moolenaar
111414b7966SBram Moolenaar  let rtp = &rtp
112414b7966SBram Moolenaar  let &rtp = 'Xdir'
113414b7966SBram Moolenaar  helptags ALL
114414b7966SBram Moolenaar  let &rtp = rtp
115414b7966SBram Moolenaar
116414b7966SBram Moolenaar  call delete('Xdir/doc/tags')
117e20b9eceSBram Moolenaar
118e20b9eceSBram Moolenaar  " No permission to read the help file
11917709e28SBram Moolenaar  call mkdir('Xdir/b/doc', 'p')
12017709e28SBram Moolenaar  call writefile([], 'Xdir/b/doc/sample.txt')
12117709e28SBram Moolenaar  call setfperm('Xdir/b/doc/sample.txt', '-w-------')
12217709e28SBram Moolenaar  call assert_fails('helptags Xdir', 'E153:', getfperm('Xdir/b/doc/sample.txt'))
123e20b9eceSBram Moolenaar  call delete('Xdir', 'rf')
124e20b9eceSBram Moolenaarendfunc
125e20b9eceSBram Moolenaar
126*59585497SYegappan Lakshmanan" Test for setting the 'helpheight' option in the help window
127*59585497SYegappan Lakshmananfunc Test_help_window_height()
128*59585497SYegappan Lakshmanan  let &cmdheight = &lines - 24
129*59585497SYegappan Lakshmanan  set helpheight=10
130*59585497SYegappan Lakshmanan  help
131*59585497SYegappan Lakshmanan  set helpheight=14
132*59585497SYegappan Lakshmanan  call assert_equal(14, winheight(0))
133*59585497SYegappan Lakshmanan  set helpheight& cmdheight=1
134*59585497SYegappan Lakshmanan  close
135*59585497SYegappan Lakshmananendfunc
13617709e28SBram Moolenaar
137e20b9eceSBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
138