aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-02-21 17:43:53 +0800
committerGitHub <noreply@github.com>2023-02-21 17:43:53 +0800
commitfec1181ecde75de1754f1d27a7ba7cbf2b9f43d6 (patch)
tree197f5c8025b5e564d73140f3782262d9ca3932c1
parentf0ee548137263a67e3d163b674f48e6e004210fb (diff)
downloadrneovim-fec1181ecde75de1754f1d27a7ba7cbf2b9f43d6.tar.gz
rneovim-fec1181ecde75de1754f1d27a7ba7cbf2b9f43d6.tar.bz2
rneovim-fec1181ecde75de1754f1d27a7ba7cbf2b9f43d6.zip
test(legacy/prompt_buffer_spec): align script with oldtest more (#22354)
-rw-r--r--src/nvim/testdir/test_prompt_buffer.vim7
-rw-r--r--test/functional/legacy/prompt_buffer_spec.lua88
2 files changed, 37 insertions, 58 deletions
diff --git a/src/nvim/testdir/test_prompt_buffer.vim b/src/nvim/testdir/test_prompt_buffer.vim
index b8f6c5240c..b1288b4892 100644
--- a/src/nvim/testdir/test_prompt_buffer.vim
+++ b/src/nvim/testdir/test_prompt_buffer.vim
@@ -10,8 +10,7 @@ source screendump.vim
func CanTestPromptBuffer()
" We need to use a terminal window to be able to feed keys without leaving
" Insert mode.
- " Nvim's terminal implementation differs from Vim's
- " CheckFeature terminal
+ CheckFeature terminal
" TODO: make the tests work on MS-Windows
CheckNotMSWindows
@@ -56,7 +55,6 @@ func WriteScript(name)
endfunc
func Test_prompt_basic()
- throw 'skipped: TODO'
call CanTestPromptBuffer()
let scriptName = 'XpromptscriptBasic'
call WriteScript(scriptName)
@@ -77,7 +75,6 @@ func Test_prompt_basic()
endfunc
func Test_prompt_editing()
- throw 'skipped: TODO'
call CanTestPromptBuffer()
let scriptName = 'XpromptscriptEditing'
call WriteScript(scriptName)
@@ -108,7 +105,6 @@ func Test_prompt_editing()
endfunc
func Test_prompt_switch_windows()
- throw 'skipped: TODO'
call CanTestPromptBuffer()
let scriptName = 'XpromptSwitchWindows'
call WriteScript(scriptName)
@@ -226,7 +222,6 @@ func Test_prompt_buffer_getbufinfo()
endfunc
func Test_prompt_while_writing_to_hidden_buffer()
- throw 'skipped: TODO'
call CanTestPromptBuffer()
CheckUnix
diff --git a/test/functional/legacy/prompt_buffer_spec.lua b/test/functional/legacy/prompt_buffer_spec.lua
index 63338b8dba..602593d632 100644
--- a/test/functional/legacy/prompt_buffer_spec.lua
+++ b/test/functional/legacy/prompt_buffer_spec.lua
@@ -3,7 +3,6 @@ local Screen = require('test.functional.ui.screen')
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
@@ -16,64 +15,74 @@ describe('prompt buffer', function()
screen = Screen.new(25, 10)
screen:attach()
source([[
+ set laststatus=0 nohidden
+
func TextEntered(text)
if a:text == "exit"
+ " Reset &modified to allow the buffer to be closed.
set nomodified
stopinsert
close
else
+ " Add the output above the current prompt.
call append(line("$") - 1, 'Command: "' . a:text . '"')
+ " Reset &modified to allow the buffer to be closed.
set nomodified
call timer_start(20, {id -> TimerFunc(a:text)})
endif
endfunc
func TimerFunc(text)
+ " Add the output above the current prompt.
call append(line("$") - 1, 'Result: "' . a:text .'"')
+ " Reset &modified to allow the buffer to be closed.
+ set nomodified
endfunc
func SwitchWindows()
call timer_start(0, {-> execute("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()
- screen:detach()
- end)
- it('works', function()
+ call setline(1, "other buffer")
+ set nomodified
+ new
+ set buftype=prompt
+ call prompt_setcallback(bufnr(''), function("TextEntered"))
+ eval bufnr("")->prompt_setprompt("cmd: ")
+ startinsert
+ ]])
screen:expect([[
- ^ |
+ cmd: ^ |
~ |
~ |
~ |
- [Prompt] |
+ [Prompt] [+] |
other buffer |
~ |
~ |
~ |
- |
+ -- INSERT -- |
]])
- feed("i")
+ end)
+
+ after_each(function()
+ screen:detach()
+ end)
+
+ -- oldtest: Test_prompt_basic()
+ it('works', function()
feed("hello\n")
screen:expect([[
cmd: hello |
Command: "hello" |
Result: "hello" |
cmd: ^ |
- [Prompt] [+] |
+ [Prompt] |
other buffer |
~ |
~ |
~ |
- |
+ -- INSERT -- |
]])
feed("exit\n")
screen:expect([[
@@ -90,20 +99,8 @@ describe('prompt buffer', function()
]])
end)
+ -- oldtest: Test_prompt_editing()
it('editing', function()
- screen:expect([[
- ^ |
- ~ |
- ~ |
- ~ |
- [Prompt] |
- other buffer |
- ~ |
- ~ |
- ~ |
- |
- ]])
- feed("i")
feed("hello<BS><BS>")
screen:expect([[
cmd: hel^ |
@@ -115,7 +112,7 @@ describe('prompt buffer', function()
~ |
~ |
~ |
- |
+ -- INSERT -- |
]])
feed("<Left><Left><Left><BS>-")
screen:expect([[
@@ -128,7 +125,7 @@ describe('prompt buffer', function()
~ |
~ |
~ |
- |
+ -- INSERT -- |
]])
feed("<C-O>lz")
screen:expect([[
@@ -141,7 +138,7 @@ describe('prompt buffer', function()
~ |
~ |
~ |
- |
+ -- INSERT -- |
]])
feed("<End>x")
screen:expect([[
@@ -154,7 +151,7 @@ describe('prompt buffer', function()
~ |
~ |
~ |
- |
+ -- INSERT -- |
]])
feed("<C-U>exit\n")
screen:expect([[
@@ -171,21 +168,8 @@ describe('prompt buffer', function()
]])
end)
+ -- oldtest: Test_prompt_switch_windows()
it('switch windows', function()
- feed_command("set showmode")
- feed("i")
- screen:expect([[
- cmd: ^ |
- ~ |
- ~ |
- ~ |
- [Prompt] [+] |
- other buffer |
- ~ |
- ~ |
- ~ |
- -- INSERT -- |
- ]])
feed("<C-O>:call SwitchWindows()<CR>")
screen:expect{grid=[[
cmd: |
@@ -227,11 +211,11 @@ describe('prompt buffer', function()
]])
end)
+ -- oldtest: Test_prompt_while_writing_to_hidden_buffer()
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())