aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/functional/legacy/cmdline_spec.lua71
-rw-r--r--test/old/testdir/test_cmdline.vim31
2 files changed, 102 insertions, 0 deletions
diff --git a/test/functional/legacy/cmdline_spec.lua b/test/functional/legacy/cmdline_spec.lua
index 62e77e9b85..94ef85591d 100644
--- a/test/functional/legacy/cmdline_spec.lua
+++ b/test/functional/legacy/cmdline_spec.lua
@@ -115,6 +115,77 @@ describe('cmdline', function()
]])
end)
+ -- oldtest: Test_wildmenu_with_input_func()
+ it('wildmenu works with input() function', function()
+ local screen = Screen.new(60, 8)
+ screen:add_extra_attr_ids({
+ [100] = { background = Screen.colors.Yellow, foreground = Screen.colors.Black },
+ })
+
+ feed(":call input('Command? ', '', 'command')<CR>")
+ screen:expect([[
+ |
+ {1:~ }|*6
+ Command? ^ |
+ ]])
+ feed('ech<Tab>')
+ screen:expect([[
+ |
+ {1:~ }|*5
+ {100:echo}{3: echoerr echohl echomsg echon }|
+ Command? echo^ |
+ ]])
+ feed('<Space>')
+ screen:expect([[
+ |
+ {1:~ }|*6
+ Command? echo ^ |
+ ]])
+ feed('bufn<Tab>')
+ screen:expect([[
+ |
+ {1:~ }|*5
+ {100:bufname(}{3: bufnr( }|
+ Command? echo bufname(^ |
+ ]])
+ feed('<CR>')
+
+ command('set wildoptions+=pum')
+
+ feed(":call input('Command? ', '', 'command')<CR>")
+ screen:expect([[
+ |
+ {1:~ }|*6
+ Command? ^ |
+ ]])
+ feed('ech<Tab>')
+ screen:expect([[
+ |
+ {1:~ }|
+ {1:~ }{12: echo }{1: }|
+ {1:~ }{4: echoerr }{1: }|
+ {1:~ }{4: echohl }{1: }|
+ {1:~ }{4: echomsg }{1: }|
+ {1:~ }{4: echon }{1: }|
+ Command? echo^ |
+ ]])
+ feed('<Space>')
+ screen:expect([[
+ |
+ {1:~ }|*6
+ Command? echo ^ |
+ ]])
+ feed('bufn<Tab>')
+ screen:expect([[
+ |
+ {1:~ }|*4
+ {1:~ }{12: bufname( }{1: }|
+ {1:~ }{4: bufnr( }{1: }|
+ Command? echo bufname(^ |
+ ]])
+ feed('<CR>')
+ end)
+
-- oldtest: Test_redraw_in_autocmd()
it('cmdline cursor position is correct after :redraw with cmdheight=2', function()
local screen = Screen.new(30, 6)
diff --git a/test/old/testdir/test_cmdline.vim b/test/old/testdir/test_cmdline.vim
index 639a4c1d32..075bdae8d1 100644
--- a/test/old/testdir/test_cmdline.vim
+++ b/test/old/testdir/test_cmdline.vim
@@ -212,6 +212,37 @@ func Test_wildmenu_screendump()
call StopVimInTerminal(buf)
endfunc
+func Test_wildmenu_with_input_func()
+ CheckScreendump
+
+ let buf = RunVimInTerminal('-c "set wildmenu"', {'rows': 8})
+
+ call term_sendkeys(buf, ":call input('Command? ', '', 'command')\<CR>")
+ call VerifyScreenDump(buf, 'Test_wildmenu_input_func_1', {})
+ call term_sendkeys(buf, "ech\<Tab>")
+ call VerifyScreenDump(buf, 'Test_wildmenu_input_func_2', {})
+ call term_sendkeys(buf, "\<Space>")
+ call VerifyScreenDump(buf, 'Test_wildmenu_input_func_3', {})
+ call term_sendkeys(buf, "bufn\<Tab>")
+ call VerifyScreenDump(buf, 'Test_wildmenu_input_func_4', {})
+ call term_sendkeys(buf, "\<CR>")
+
+ call term_sendkeys(buf, ":set wildoptions+=pum\<CR>")
+
+ call term_sendkeys(buf, ":call input('Command? ', '', 'command')\<CR>")
+ call VerifyScreenDump(buf, 'Test_wildmenu_input_func_5', {})
+ call term_sendkeys(buf, "ech\<Tab>")
+ call VerifyScreenDump(buf, 'Test_wildmenu_input_func_6', {})
+ call term_sendkeys(buf, "\<Space>")
+ call VerifyScreenDump(buf, 'Test_wildmenu_input_func_7', {})
+ call term_sendkeys(buf, "bufn\<Tab>")
+ call VerifyScreenDump(buf, 'Test_wildmenu_input_func_8', {})
+ call term_sendkeys(buf, "\<CR>")
+
+ " clean up
+ call StopVimInTerminal(buf)
+endfunc
+
func Test_redraw_in_autocmd()
CheckScreendump