Mercurial > vim
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 |