aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/legacy/arglist_spec.lua11
-rw-r--r--test/functional/legacy/edit_spec.lua25
-rw-r--r--test/functional/legacy/search_spec.lua110
3 files changed, 140 insertions, 6 deletions
diff --git a/test/functional/legacy/arglist_spec.lua b/test/functional/legacy/arglist_spec.lua
index 191f145095..ec754a533b 100644
--- a/test/functional/legacy/arglist_spec.lua
+++ b/test/functional/legacy/arglist_spec.lua
@@ -222,20 +222,19 @@ describe('argument list commands', function()
eq({'a', 'b'}, eval('argv()'))
eq('b', eval('expand("%:t")'))
command('argedit a')
- eq({'a', 'b'}, eval('argv()'))
+ eq({'a', 'b', 'a'}, eval('argv()'))
eq('a', eval('expand("%:t")'))
command('argedit c')
- eq({'a', 'c', 'b'}, eval('argv()'))
+ eq({'a', 'b', 'a', 'c'}, eval('argv()'))
command('0argedit x')
- eq({'x', 'a', 'c', 'b'}, eval('argv()'))
+ eq({'x', 'a', 'b', 'a', 'c'}, eval('argv()'))
command('enew! | set modified')
assert_fails('argedit y', 'E37:')
command('argedit! y')
- eq({'x', 'y', 'a', 'c', 'b'}, eval('argv()'))
+ eq({'x', 'y', 'y', 'a', 'b', 'a', 'c'}, eval('argv()'))
command('%argd')
- -- Nvim allows unescaped spaces in filename on all platforms. #6010
command('argedit a b')
- eq({'a b'}, eval('argv()'))
+ eq({'a', 'b'}, eval('argv()'))
end)
it('test for :argdelete command', function()
diff --git a/test/functional/legacy/edit_spec.lua b/test/functional/legacy/edit_spec.lua
new file mode 100644
index 0000000000..91d602924c
--- /dev/null
+++ b/test/functional/legacy/edit_spec.lua
@@ -0,0 +1,25 @@
+-- Test for edit functions
+-- See also: src/nvim/testdir/test_edit.vim
+
+local helpers = require('test.functional.helpers')(after_each)
+local source = helpers.source
+local eq, eval = helpers.eq, helpers.eval
+local funcs = helpers.funcs
+local clear = helpers.clear
+
+describe('edit', function()
+ before_each(clear)
+
+ it('reset insertmode from i_ctrl-r_=', function()
+ source([=[
+ call setline(1, ['abc'])
+ call cursor(1, 4)
+ call feedkeys(":set im\<cr>ZZZ\<c-r>=setbufvar(1,'&im', 0)\<cr>",'tnix')
+ ]=])
+ eq({'abZZZc'}, funcs.getline(1,'$'))
+ eq({0, 1, 1, 0}, funcs.getpos('.'))
+ eq(0, eval('&im'))
+ end)
+
+end)
+
diff --git a/test/functional/legacy/search_spec.lua b/test/functional/legacy/search_spec.lua
index 5f71861821..277d8d6c7f 100644
--- a/test/functional/legacy/search_spec.lua
+++ b/test/functional/legacy/search_spec.lua
@@ -6,6 +6,7 @@ local eq = helpers.eq
local eval = helpers.eval
local feed = helpers.feed
local funcs = helpers.funcs
+local wait = helpers.wait
describe('search cmdline', function()
local screen
@@ -471,4 +472,113 @@ describe('search cmdline', function()
coladd = 0, skipcol = 0, curswant = 0},
funcs.winsaveview())
end)
+
+ it("CTRL-G with 'incsearch' and ? goes in the right direction", function()
+ -- oldtest: Test_search_cmdline4().
+ screen:detach()
+ screen = Screen.new(40, 4)
+ screen:attach()
+ screen:set_default_attr_ids({
+ inc = {reverse = true},
+ err = { foreground = Screen.colors.Grey100, background = Screen.colors.Red },
+ more = { bold = true, foreground = Screen.colors.SeaGreen4 },
+ tilde = { bold = true, foreground = Screen.colors.Blue1 },
+ })
+ command('enew!')
+ funcs.setline(1, {' 1 the first', ' 2 the second', ' 3 the third'})
+ command('set laststatus=0 shortmess+=s')
+ command('set incsearch')
+ command('$')
+ -- Send the input in chunks, so the cmdline logic regards it as
+ -- "interactive". This mimics Vim's test_override("char_avail").
+ -- (See legacy test: test_search.vim)
+ feed('?the')
+ wait()
+ feed('<c-g>')
+ wait()
+ feed('<cr>')
+ screen:expect([[
+ 1 the first |
+ 2 the second |
+ 3 ^the third |
+ ?the |
+ ]])
+
+ command('$')
+ feed('?the')
+ wait()
+ feed('<c-g>')
+ wait()
+ feed('<c-g>')
+ wait()
+ feed('<cr>')
+ screen:expect([[
+ 1 ^the first |
+ 2 the second |
+ 3 the third |
+ ?the |
+ ]])
+
+ command('$')
+ feed('?the')
+ wait()
+ feed('<c-g>')
+ wait()
+ feed('<c-g>')
+ wait()
+ feed('<c-g>')
+ wait()
+ feed('<cr>')
+ screen:expect([[
+ 1 the first |
+ 2 ^the second |
+ 3 the third |
+ ?the |
+ ]])
+
+ command('$')
+ feed('?the')
+ wait()
+ feed('<c-t>')
+ wait()
+ feed('<cr>')
+ screen:expect([[
+ 1 ^the first |
+ 2 the second |
+ 3 the third |
+ ?the |
+ ]])
+
+ command('$')
+ feed('?the')
+ wait()
+ feed('<c-t>')
+ wait()
+ feed('<c-t>')
+ wait()
+ feed('<cr>')
+ screen:expect([[
+ 1 the first |
+ 2 the second |
+ 3 ^the third |
+ ?the |
+ ]])
+
+ command('$')
+ feed('?the')
+ wait()
+ feed('<c-t>')
+ wait()
+ feed('<c-t>')
+ wait()
+ feed('<c-t>')
+ wait()
+ feed('<cr>')
+ screen:expect([[
+ 1 the first |
+ 2 ^the second |
+ 3 the third |
+ ?the |
+ ]])
+ end)
end)