comparison src/testdir/test_cmdline.vim @ 19517:738a4fe2c8c5 v8.2.0316

patch 8.2.0316: ex_getln.c code has insufficient test coverage Commit: https://github.com/vim/vim/commit/8d588ccee57390aa01c2395fc599bbe6506ee13a Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 25 21:47:45 2020 +0100 patch 8.2.0316: ex_getln.c code has insufficient test coverage Problem: ex_getln.c code has insufficient test coverage. Solution: Add more tests. Fix a problem. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/5693)
author Bram Moolenaar <Bram@vim.org>
date Tue, 25 Feb 2020 22:00:04 +0100
parents cb73f4ae6b7c
children bab20768e1fd
comparison
equal deleted inserted replaced
19516:209388e9e179 19517:738a4fe2c8c5
48 " <Up>/<Down> to go up/down directories. 48 " <Up>/<Down> to go up/down directories.
49 call feedkeys(":e Xdir1/\<Tab>\<Down>\<CR>", 'tx') 49 call feedkeys(":e Xdir1/\<Tab>\<Down>\<CR>", 'tx')
50 call assert_equal('testfile3', getline(1)) 50 call assert_equal('testfile3', getline(1))
51 call feedkeys(":e Xdir1/\<Tab>\<Down>\<Up>\<Right>\<CR>", 'tx') 51 call feedkeys(":e Xdir1/\<Tab>\<Down>\<Up>\<Right>\<CR>", 'tx')
52 call assert_equal('testfile1', getline(1)) 52 call assert_equal('testfile1', getline(1))
53
54 " Completion using a relative path
55 cd Xdir1/Xdir2
56 call feedkeys(":e ../\<Tab>\<Right>\<Down>\<C-A>\<C-B>\"\<CR>", 'tx')
57 call assert_equal('"e Xtestfile3 Xtestfile4', @:)
58 cd -
53 59
54 " cleanup 60 " cleanup
55 %bwipe 61 %bwipe
56 call delete('Xdir1/Xdir2/Xtestfile4') 62 call delete('Xdir1/Xdir2/Xtestfile4')
57 call delete('Xdir1/Xdir2/Xtestfile3') 63 call delete('Xdir1/Xdir2/Xtestfile3')
454 call feedkeys(":file \<C-R>%Xtestfile\<CR>", 'tx') 460 call feedkeys(":file \<C-R>%Xtestfile\<CR>", 'tx')
455 catch /^Vim\%((\a\+)\)\=:E32/ 461 catch /^Vim\%((\a\+)\)\=:E32/
456 " ignore error E32 462 " ignore error E32
457 endtry 463 endtry
458 call assert_equal("Xtestfile", bufname("%")) 464 call assert_equal("Xtestfile", bufname("%"))
465
466 " Use an invalid expression for <C-\>e
467 call assert_beeps('call feedkeys(":\<C-\>einvalid\<CR>", "tx")')
468
459 bwipe! 469 bwipe!
460 endfunc 470 endfunc
461 471
462 func Test_cmdline_remove_char() 472 func Test_cmdline_remove_char()
463 let encoding_save = &encoding 473 let encoding_save = &encoding
688 call feedkeys(":insert\<CR>MyCmd a\<C-R>=Check_cmdline('-')\<CR>\<Esc>", "xt") 698 call feedkeys(":insert\<CR>MyCmd a\<C-R>=Check_cmdline('-')\<CR>\<Esc>", "xt")
689 699
690 cnoremap <expr> <F6> Check_cmdline('=') 700 cnoremap <expr> <F6> Check_cmdline('=')
691 call feedkeys("a\<C-R>=MyCmd a\<F6>\<Esc>\<Esc>", "xt") 701 call feedkeys("a\<C-R>=MyCmd a\<F6>\<Esc>\<Esc>", "xt")
692 cunmap <F6> 702 cunmap <F6>
703
704 call assert_equal('', getcmdline())
693 endfunc 705 endfunc
694 706
695 func Test_getcmdwintype() 707 func Test_getcmdwintype()
696 call feedkeys("q/:let a = getcmdwintype()\<CR>:q\<CR>", 'x!') 708 call feedkeys("q/:let a = getcmdwintype()\<CR>:q\<CR>", 'x!')
697 call assert_equal('/', a) 709 call assert_equal('/', a)
928 940
929 set cedit&vim 941 set cedit&vim
930 delfunc CmdWinType 942 delfunc CmdWinType
931 endfunc 943 endfunc
932 944
945 " Test for CmdwinEnter autocmd
946 func Test_cmdwin_autocmd()
947 augroup CmdWin
948 au!
949 autocmd CmdwinEnter * startinsert
950 augroup END
951
952 call assert_fails('call feedkeys("q:xyz\<CR>", "xt")', 'E492:')
953 call assert_equal('xyz', @:)
954
955 augroup CmdWin
956 au!
957 augroup END
958 augroup! CmdWin
959 endfunc
960
933 func Test_cmdlineclear_tabenter() 961 func Test_cmdlineclear_tabenter()
934 CheckScreendump 962 CheckScreendump
935 963
936 let lines =<< trim [SCRIPT] 964 let lines =<< trim [SCRIPT]
937 call setline(1, range(30)) 965 call setline(1, range(30))
964 call assert_fails('call feedkeys("q/:qall\<CR>", "xt")', 'E162:') 992 call assert_fails('call feedkeys("q/:qall\<CR>", "xt")', 'E162:')
965 close! 993 close!
966 call feedkeys("q/:close\<CR>", "xt") 994 call feedkeys("q/:close\<CR>", "xt")
967 call assert_equal(1, winnr('$')) 995 call assert_equal(1, winnr('$'))
968 call feedkeys("q/:exit\<CR>", "xt") 996 call feedkeys("q/:exit\<CR>", "xt")
997 call assert_equal(1, winnr('$'))
998
999 " opening command window twice should fail
1000 call assert_beeps('call feedkeys("q:q:\<CR>\<CR>", "xt")')
969 call assert_equal(1, winnr('$')) 1001 call assert_equal(1, winnr('$'))
970 endfunc 1002 endfunc
971 1003
972 " Test for backtick expression in the command line 1004 " Test for backtick expression in the command line
973 func Test_cmd_backtick() 1005 func Test_cmd_backtick()
1004 endif 1036 endif
1005 call delete('Xscript') 1037 call delete('Xscript')
1006 call delete('Xresult') 1038 call delete('Xresult')
1007 endfunc 1039 endfunc
1008 1040
1041 " Test for using ~ for home directory in cmdline completion matches
1042 func Test_cmdline_expand_home()
1043 call mkdir('Xdir')
1044 call writefile([], 'Xdir/Xfile1')
1045 call writefile([], 'Xdir/Xfile2')
1046 cd Xdir
1047 let save_HOME = $HOME
1048 let $HOME = getcwd()
1049 call feedkeys(":e ~/\<C-A>\<C-B>\"\<CR>", 'xt')
1050 call assert_equal('"e ~/Xfile1 ~/Xfile2', @:)
1051 let $HOME = save_HOME
1052 cd ..
1053 call delete('Xdir', 'rf')
1054 endfunc
1055
1009 " vim: shiftwidth=2 sts=2 expandtab 1056 " vim: shiftwidth=2 sts=2 expandtab