aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-09-03 00:05:23 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-09-03 00:07:23 -0400
commit7199f0b3b3e31c1c3b96d17d6f1f959d1db5ce76 (patch)
treea0bfc9e160c2e30f926da84d9eb64dc641a1107e
parentc0cb7585cc6b9d408811b95bb5462789f5ca0207 (diff)
downloadrneovim-7199f0b3b3e31c1c3b96d17d6f1f959d1db5ce76.tar.gz
rneovim-7199f0b3b3e31c1c3b96d17d6f1f959d1db5ce76.tar.bz2
rneovim-7199f0b3b3e31c1c3b96d17d6f1f959d1db5ce76.zip
vim-patch:8.1.1063: insufficient testing for wildmenu completion
Problem: Insufficient testing for wildmenu completion. Solution: Extend the test case. (Dominique Pelle, closes vim/vim#4182) https://github.com/vim/vim/commit/37db642083398da7d04ed45767cc46daf40bf72b
-rw-r--r--src/nvim/testdir/test_cmdline.vim44
1 files changed, 39 insertions, 5 deletions
diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim
index f43ea0e923..e6aafd964b 100644
--- a/src/nvim/testdir/test_cmdline.vim
+++ b/src/nvim/testdir/test_cmdline.vim
@@ -15,14 +15,48 @@ func Test_complete_list()
endfunc
func Test_complete_wildmenu()
- call writefile(['testfile1'], 'Xtestfile1')
- call writefile(['testfile2'], 'Xtestfile2')
+ call mkdir('Xdir1/Xdir2', 'p')
+ call writefile(['testfile1'], 'Xdir1/Xtestfile1')
+ call writefile(['testfile2'], 'Xdir1/Xtestfile2')
+ call writefile(['testfile3'], 'Xdir1/Xdir2/Xtestfile3')
+ call writefile(['testfile3'], 'Xdir1/Xdir2/Xtestfile4')
set wildmenu
- call feedkeys(":e Xtestf\t\t\r", "tx")
+
+ " Pressing <Tab> completes, and moves to next files when pressing again.
+ call feedkeys(":e Xdir1/\<Tab>\<Tab>\<CR>", 'tx')
+ call assert_equal('testfile1', getline(1))
+ call feedkeys(":e Xdir1/\<Tab>\<Tab>\<Tab>\<CR>", 'tx')
+ call assert_equal('testfile2', getline(1))
+
+ " <S-Tab> is like <Tab> but begin with the last match and then go to
+ " previous.
+ call feedkeys(":e Xdir1/Xtest\<S-Tab>\<CR>", 'tx')
call assert_equal('testfile2', getline(1))
+ call feedkeys(":e Xdir1/Xtest\<S-Tab>\<S-Tab>\<CR>", 'tx')
+ call assert_equal('testfile1', getline(1))
- call delete('Xtestfile1')
- call delete('Xtestfile2')
+ " <Left>/<Right> to move to previous/next file.
+ call feedkeys(":e Xdir1/\<Tab>\<Right>\<CR>", 'tx')
+ call assert_equal('testfile1', getline(1))
+ call feedkeys(":e Xdir1/\<Tab>\<Right>\<Right>\<CR>", 'tx')
+ call assert_equal('testfile2', getline(1))
+ call feedkeys(":e Xdir1/\<Tab>\<Right>\<Right>\<Left>\<CR>", 'tx')
+ call assert_equal('testfile1', getline(1))
+
+ " <Up>/<Down> to go up/down directories.
+ call feedkeys(":e Xdir1/\<Tab>\<Down>\<CR>", 'tx')
+ call assert_equal('testfile3', getline(1))
+ call feedkeys(":e Xdir1/\<Tab>\<Down>\<Up>\<Right>\<CR>", 'tx')
+ call assert_equal('testfile1', getline(1))
+
+ " cleanup
+ %bwipe
+ call delete('Xdir1/Xdir2/Xtestfile4')
+ call delete('Xdir1/Xdir2/Xtestfile3')
+ call delete('Xdir1/Xtestfile2')
+ call delete('Xdir1/Xtestfile1')
+ call delete('Xdir1/Xdir2', 'd')
+ call delete('Xdir1', 'd')
set nowildmenu
endfunc