@@ -51,6 +51,12 @@ func Test_complete_wildmenu()
5151 call feedkeys (" :e Xdir1/\<Tab>\<Down>\<Up>\<Right>\<CR> " , ' tx' )
5252 call assert_equal (' testfile1' , getline (1 ))
5353
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 -
59+
5460 " cleanup
5561 % bwipe
5662 call delete (' Xdir1/Xdir2/Xtestfile4' )
@@ -456,6 +462,10 @@ func Test_cmdline_paste()
456462 " ignore error E32
457463 endtry
458464 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+
459469 bwipe!
460470endfunc
461471
@@ -690,6 +700,8 @@ func Test_getcmdtype()
690700 cnoremap <expr> <F6> Check_cmdline('=')
691701 call feedkeys (" a\<C-R> =MyCmd a\<F6>\<Esc>\<Esc> " , " xt" )
692702 cunmap <F6>
703+
704+ call assert_equal (' ' , getcmdline ())
693705endfunc
694706
695707func Test_getcmdwintype ()
@@ -930,6 +942,22 @@ func Test_cmdwin_cedit()
930942 delfunc CmdWinType
931943endfunc
932944
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+
933961func Test_cmdlineclear_tabenter ()
934962 CheckScreendump
935963
@@ -967,6 +995,10 @@ func Test_cmdwin_jump_to_win()
967995 call assert_equal (1 , winnr (' $' ))
968996 call feedkeys (" q/:exit\<CR> " , " xt" )
969997 call assert_equal (1 , winnr (' $' ))
998+
999+ " opening command window twice should fail
1000+ call assert_beeps (' call feedkeys("q:q:\<CR>\<CR>", "xt")' )
1001+ call assert_equal (1 , winnr (' $' ))
9701002endfunc
9711003
9721004" Test for backtick expression in the command line
@@ -1006,4 +1038,19 @@ func Test_cmd_bang()
10061038 call delete (' Xresult' )
10071039endfunc
10081040
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+
10091056" vim: shiftwidth = 2 sts = 2 expandtab
0 commit comments