diff options
Diffstat (limited to 'test/functional/legacy/prompt_buffer_spec.lua')
-rw-r--r-- | test/functional/legacy/prompt_buffer_spec.lua | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/test/functional/legacy/prompt_buffer_spec.lua b/test/functional/legacy/prompt_buffer_spec.lua index 602593d632..6c72cde855 100644 --- a/test/functional/legacy/prompt_buffer_spec.lua +++ b/test/functional/legacy/prompt_buffer_spec.lua @@ -3,9 +3,11 @@ local Screen = require('test.functional.ui.screen') local feed = helpers.feed local source = helpers.source local clear = helpers.clear +local command = helpers.command local poke_eventloop = helpers.poke_eventloop local meths = helpers.meths local eq = helpers.eq +local neq = helpers.neq describe('prompt buffer', function() local screen @@ -14,9 +16,11 @@ describe('prompt buffer', function() clear() screen = Screen.new(25, 10) screen:attach() - source([[ - set laststatus=0 nohidden + command('set laststatus=0 nohidden') + end) + local function source_script() + source([[ func TextEntered(text) if a:text == "exit" " Reset &modified to allow the buffer to be closed. @@ -63,7 +67,7 @@ describe('prompt buffer', function() ~ | -- INSERT -- | ]]) - end) + end after_each(function() screen:detach() @@ -71,6 +75,7 @@ describe('prompt buffer', function() -- oldtest: Test_prompt_basic() it('works', function() + source_script() feed("hello\n") screen:expect([[ cmd: hello | @@ -101,6 +106,7 @@ describe('prompt buffer', function() -- oldtest: Test_prompt_editing() it('editing', function() + source_script() feed("hello<BS><BS>") screen:expect([[ cmd: hel^ | @@ -170,6 +176,7 @@ describe('prompt buffer', function() -- oldtest: Test_prompt_switch_windows() it('switch windows', function() + source_script() feed("<C-O>:call SwitchWindows()<CR>") screen:expect{grid=[[ cmd: | @@ -213,11 +220,41 @@ describe('prompt buffer', function() -- oldtest: Test_prompt_while_writing_to_hidden_buffer() it('keeps insert mode after aucmd_restbuf in callback', function() + source_script() source [[ let s:buf = nvim_create_buf(1, 1) call timer_start(0, {-> nvim_buf_set_lines(s:buf, -1, -1, 0, ['walrus'])}) ]] poke_eventloop() - eq({ mode = "i", blocking = false }, meths.get_mode()) + eq({ mode = 'i', blocking = false }, meths.get_mode()) + end) + + -- oldtest: Test_prompt_appending_while_hidden() + it('accessing hidden prompt buffer does not start insert mode', function() + local prev_win = meths.get_current_win() + source([[ + new prompt + set buftype=prompt + set bufhidden=hide + + func s:TextEntered(text) + if a:text == 'exit' + close + endif + let g:entered = a:text + endfunc + call prompt_setcallback(bufnr(), function('s:TextEntered')) + + func DoAppend() + call appendbufline('prompt', '$', 'Test') + endfunc + ]]) + feed('asomething<CR>') + eq('something', meths.get_var('entered')) + neq(prev_win, meths.get_current_win()) + feed('exit<CR>') + eq(prev_win, meths.get_current_win()) + command('call DoAppend()') + eq({ mode = 'n', blocking = false }, meths.get_mode()) end) end) |