@@ -84,7 +84,7 @@ func Test_complete_wildmenu()
8484 call delete (' Xdir1' , ' d' )
8585 set nowildmenu
8686endfunc
87- f
87+
8888func Test_wildmenu_screendump ()
8989 CheckScreendump
9090
@@ -112,7 +112,6 @@ func Test_wildmenu_screendump()
112112 call delete (' XTest_wildmenu' )
113113endfunc
114114
115-
116115func Test_map_completion ()
117116 CheckFeature cmdline_compl
118117 call feedkeys (" :map <unique> <si\<Tab>\<Home> \" \<CR> " , ' xt' )
@@ -1631,4 +1630,34 @@ func Test_read_shellcmd()
16311630 endif
16321631endfunc
16331632
1633+ " Test for going up and down the directory tree using 'wildmenu'
1634+ func Test_wildmenu_dirstack ()
1635+ CheckUnix
1636+ % bw !
1637+ call mkdir (' Xdir1/dir2/dir3' , ' p' )
1638+ call writefile ([], ' Xdir1/file1_1.txt' )
1639+ call writefile ([], ' Xdir1/file1_2.txt' )
1640+ call writefile ([], ' Xdir1/dir2/file2_1.txt' )
1641+ call writefile ([], ' Xdir1/dir2/file2_2.txt' )
1642+ call writefile ([], ' Xdir1/dir2/dir3/file3_1.txt' )
1643+ call writefile ([], ' Xdir1/dir2/dir3/file3_2.txt' )
1644+ cd Xdir1/dir2/ dir3
1645+ set wildmenu
1646+
1647+ call feedkeys (" :e \<Tab>\<C-B> \" \<CR> " , ' xt' )
1648+ call assert_equal (' "e file3_1.txt' , @: )
1649+ call feedkeys (" :e \<Tab>\<Up>\<C-B> \" \<CR> " , ' xt' )
1650+ call assert_equal (' "e ../dir3/' , @: )
1651+ call feedkeys (" :e \<Tab>\<Up>\<Up>\<C-B> \" \<CR> " , ' xt' )
1652+ call assert_equal (' "e ../../dir2/' , @: )
1653+ call feedkeys (" :e \<Tab>\<Up>\<Up>\<Down>\<C-B> \" \<CR> " , ' xt' )
1654+ call assert_equal (' "e ../../dir2/dir3/' , @: )
1655+ call feedkeys (" :e \<Tab>\<Up>\<Up>\<Down>\<Down>\<C-B> \" \<CR> " , ' xt' )
1656+ call assert_equal (' "e ../../dir2/dir3/file3_1.txt' , @: )
1657+
1658+ cd -
1659+ call delete (' Xdir1' , ' rf' )
1660+ set wildmenu &
1661+ endfunc
1662+
16341663" vim: shiftwidth = 2 sts = 2 expandtab
0 commit comments