aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2021-12-07 21:17:12 -0500
committerGitHub <noreply@github.com>2021-12-07 21:17:12 -0500
commit5abd7c2c1487976f538ce510b06497fffd7e5252 (patch)
tree968e8b5ae41484a324e9b240f42e295d6100013f /test/functional
parentbe768be6b7ee896277971593e9287a86bc41efb2 (diff)
parent361f548437a0a9b620db620356fdd405d24a7b34 (diff)
downloadrneovim-5abd7c2c1487976f538ce510b06497fffd7e5252.tar.gz
rneovim-5abd7c2c1487976f538ce510b06497fffd7e5252.tar.bz2
rneovim-5abd7c2c1487976f538ce510b06497fffd7e5252.zip
Merge pull request #16421 from seandewar/vim-8.1.0035
vim-patch:8.1.{35,42,64},8.2.{1781,1783,1976,2014,3671}
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/legacy/prompt_buffer_spec.lua87
1 files changed, 81 insertions, 6 deletions
diff --git a/test/functional/legacy/prompt_buffer_spec.lua b/test/functional/legacy/prompt_buffer_spec.lua
index 513be807be..47eca19de3 100644
--- a/test/functional/legacy/prompt_buffer_spec.lua
+++ b/test/functional/legacy/prompt_buffer_spec.lua
@@ -1,9 +1,12 @@
local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
-local feed= helpers.feed
+local feed = helpers.feed
local source = helpers.source
local clear = helpers.clear
local feed_command = helpers.feed_command
+local poke_eventloop = helpers.poke_eventloop
+local meths = helpers.meths
+local eq = helpers.eq
describe('prompt buffer', function()
local screen
@@ -28,12 +31,17 @@ describe('prompt buffer', function()
func TimerFunc(text)
call append(line("$") - 1, 'Result: "' . a:text .'"')
endfunc
+
+ func SwitchWindows()
+ call timer_start(0, {-> execute("wincmd p|wincmd p", "")})
+ endfunc
]])
feed_command("set noshowmode | set laststatus=0")
feed_command("call setline(1, 'other buffer')")
feed_command("new")
feed_command("set buftype=prompt")
feed_command("call prompt_setcallback(bufnr(''), function('TextEntered'))")
+ feed_command("eval bufnr('')->prompt_setprompt('cmd: ')")
end)
after_each(function()
@@ -56,10 +64,10 @@ describe('prompt buffer', function()
feed("i")
feed("hello\n")
screen:expect([[
- % hello |
+ cmd: hello |
Command: "hello" |
Result: "hello" |
- % ^ |
+ cmd: ^ |
[Prompt] [+] |
other buffer |
~ |
@@ -98,7 +106,7 @@ describe('prompt buffer', function()
feed("i")
feed("hello<BS><BS>")
screen:expect([[
- % hel^ |
+ cmd: hel^ |
~ |
~ |
~ |
@@ -111,7 +119,20 @@ describe('prompt buffer', function()
]])
feed("<Left><Left><Left><BS>-")
screen:expect([[
- % -^hel |
+ cmd: -^hel |
+ ~ |
+ ~ |
+ ~ |
+ [Prompt] [+] |
+ other buffer |
+ ~ |
+ ~ |
+ ~ |
+ |
+ ]])
+ feed("<C-O>lz")
+ screen:expect([[
+ cmd: -hz^el |
~ |
~ |
~ |
@@ -124,7 +145,7 @@ describe('prompt buffer', function()
]])
feed("<End>x")
screen:expect([[
- % -helx^ |
+ cmd: -hzelx^ |
~ |
~ |
~ |
@@ -150,4 +171,58 @@ describe('prompt buffer', function()
]])
end)
+ it('switch windows', function()
+ feed_command("set showmode")
+ feed("i")
+ screen:expect([[
+ cmd: ^ |
+ ~ |
+ ~ |
+ ~ |
+ [Prompt] [+] |
+ other buffer |
+ ~ |
+ ~ |
+ ~ |
+ -- INSERT -- |
+ ]])
+ feed("<C-O>:call SwitchWindows()<CR>")
+ poke_eventloop()
+ screen:expect([[
+ cmd: ^ |
+ ~ |
+ ~ |
+ ~ |
+ [Prompt] [+] |
+ other buffer |
+ ~ |
+ ~ |
+ ~ |
+ -- INSERT -- |
+ ]])
+ feed("<Esc>")
+ poke_eventloop()
+ screen:expect([[
+ cmd:^ |
+ ~ |
+ ~ |
+ ~ |
+ [Prompt] [+] |
+ other buffer |
+ ~ |
+ ~ |
+ ~ |
+ |
+ ]])
+ end)
+
+ it('keeps insert mode after aucmd_restbuf in callback', function()
+ source [[
+ let s:buf = nvim_create_buf(1, 1)
+ call timer_start(0, {-> nvim_buf_set_lines(s:buf, -1, -1, 0, ['walrus'])})
+ startinsert
+ ]]
+ poke_eventloop()
+ eq({ mode = "i", blocking = false }, meths.get_mode())
+ end)
end)