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