aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/legacy')
-rw-r--r--test/functional/legacy/cmdline_spec.lua68
-rw-r--r--test/functional/legacy/delete_spec.lua55
-rw-r--r--test/functional/legacy/mapping_spec.lua26
3 files changed, 107 insertions, 42 deletions
diff --git a/test/functional/legacy/cmdline_spec.lua b/test/functional/legacy/cmdline_spec.lua
index 9ebe9aeb91..d8d849271b 100644
--- a/test/functional/legacy/cmdline_spec.lua
+++ b/test/functional/legacy/cmdline_spec.lua
@@ -11,6 +11,15 @@ describe('cmdline', function()
it('is cleared when switching tabs', function()
local screen = Screen.new(30, 10)
screen:attach()
+ screen:set_default_attr_ids {
+ [1] = {underline = true, background = Screen.colors.LightGrey};
+ [2] = {bold = true};
+ [3] = {reverse = true};
+ [4] = {bold = true, foreground = Screen.colors.Blue1};
+ }
+ -- TODO(bfredl): redraw with tabs is severly broken. fix it
+ feed_command [[ set display-=msgsep ]]
+
feed_command([[call setline(1, range(30))]])
screen:expect([[
^0 |
@@ -24,18 +33,61 @@ describe('cmdline', function()
8 |
:call setline(1, range(30)) |
]])
- feed([[:tabnew<cr><C-w>-<C-w>-gtgt]])
- screen:expect([[
- + [No Name] [No Name] X|
+
+ feed [[:tabnew<cr>]]
+ screen:expect{grid=[[
+ {1: + [No Name] }{2: [No Name] }{3: }{1:X}|
+ ^ |
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ :tabnew |
+ ]]}
+
+ feed [[<C-w>-<C-w>-]]
+ screen:expect{grid=[[
+ {1: + [No Name] }{2: [No Name] }{3: }{1:X}|
^ |
- ~ |
- ~ |
- ~ |
- ~ |
- ~ |
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ |
+ |
+ :tabnew |
+ ]]}
+
+ feed [[gt]]
+ screen:expect{grid=[[
+ {2: + [No Name] }{1: [No Name] }{3: }{1:X}|
+ ^0 |
+ 1 |
+ 2 |
+ 3 |
+ 4 |
+ 5 |
6 |
7 |
|
+ ]]}
+
+ feed [[gt]]
+ screen:expect([[
+ {1: + [No Name] }{2: [No Name] }{3: }{1:X}|
+ ^ |
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ |
+ |
+ |
]])
end)
diff --git a/test/functional/legacy/delete_spec.lua b/test/functional/legacy/delete_spec.lua
index 623b6b14a5..4ba4c8d356 100644
--- a/test/functional/legacy/delete_spec.lua
+++ b/test/functional/legacy/delete_spec.lua
@@ -1,6 +1,7 @@
local helpers = require('test.functional.helpers')(after_each)
local clear, source = helpers.clear, helpers.source
local eq, eval, command = helpers.eq, helpers.eval, helpers.command
+local exc_exec = helpers.exc_exec
describe('Test for delete()', function()
before_each(clear)
@@ -8,6 +9,23 @@ describe('Test for delete()', function()
os.remove('Xfile')
end)
+ it('file delete', function()
+ command('split Xfile')
+ command("call setline(1, ['a', 'b'])")
+ command('wq')
+ eq(eval("['a', 'b']"), eval("readfile('Xfile')"))
+ eq(0, eval("delete('Xfile')"))
+ eq(-1, eval("delete('Xfile')"))
+ end)
+
+ it('directory delete', function()
+ command("call mkdir('Xdir1')")
+ eq(1, eval("isdirectory('Xdir1')"))
+ eq(0, eval("delete('Xdir1', 'd')"))
+ eq(0, eval("isdirectory('Xdir1')"))
+ eq(-1, eval("delete('Xdir1', 'd')"))
+ end)
+
it('symlink delete', function()
source([[
split Xfile
@@ -43,39 +61,8 @@ describe('Test for delete()', function()
eq(0, eval("delete('Xdir1', 'd')"))
end)
- it('symlink recursive delete', function()
- source([[
- call mkdir('Xdir3')
- call mkdir('Xdir3/subdir')
- call mkdir('Xdir4')
- split Xdir3/Xfile
- call setline(1, ['a', 'b'])
- w
- w Xdir3/subdir/Xfile
- w Xdir4/Xfile
- close
- if has('win32')
- silent !mklink /j Xdir3\Xlink Xdir4
- else
- silent !ln -s ../Xdir4 Xdir3/Xlink
- endif
- ]])
-
- eq(1, eval("isdirectory('Xdir3')"))
- eq(eval("['a', 'b']"), eval("readfile('Xdir3/Xfile')"))
- eq(1, eval("isdirectory('Xdir3/subdir')"))
- eq(eval("['a', 'b']"), eval("readfile('Xdir3/subdir/Xfile')"))
- eq(1, eval("isdirectory('Xdir4')"))
- eq(1, eval("isdirectory('Xdir3/Xlink')"))
- eq(eval("['a', 'b']"), eval("readfile('Xdir4/Xfile')"))
-
- eq(0, eval("delete('Xdir3', 'rf')"))
- eq(0, eval("isdirectory('Xdir3')"))
- eq(-1, eval("delete('Xdir3', 'd')"))
- -- symlink is deleted, not the directory it points to
- eq(1, eval("isdirectory('Xdir4')"))
- eq(eval("['a', 'b']"), eval("readfile('Xdir4/Xfile')"))
- eq(0, eval("delete('Xdir4/Xfile')"))
- eq(0, eval("delete('Xdir4', 'd')"))
+ it('gives correct emsgs', function()
+ eq('Vim(call):E474: Invalid argument', exc_exec("call delete('')"))
+ eq('Vim(call):E15: Invalid expression: 0', exc_exec("call delete('foo', 0)"))
end)
end)
diff --git a/test/functional/legacy/mapping_spec.lua b/test/functional/legacy/mapping_spec.lua
index 92a757ca85..aa29698589 100644
--- a/test/functional/legacy/mapping_spec.lua
+++ b/test/functional/legacy/mapping_spec.lua
@@ -3,6 +3,8 @@
local helpers = require('test.functional.helpers')(after_each)
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local feed_command, expect, poke_eventloop = helpers.feed_command, helpers.expect, helpers.poke_eventloop
+local command, eq, eval, meths = helpers.command, helpers.eq, helpers.eval, helpers.meths
+local sleep = helpers.sleep
describe('mapping', function()
before_each(clear)
@@ -126,4 +128,28 @@ describe('mapping', function()
new line here
]])
end)
+
+ it('<LeftDrag> mapping in Insert mode works correctly vim-patch:8.2.4692', function()
+ command('set mouse=a')
+
+ command([[inoremap <LeftDrag> <LeftDrag><Cmd>let g:dragged = 1<CR>]])
+ feed('i')
+ sleep(10)
+ meths.input_mouse('left', 'press', '', 0, 0, 0)
+ sleep(10)
+ meths.input_mouse('left', 'drag', '', 0, 0, 1)
+ sleep(10)
+ eq(1, eval('g:dragged'))
+ eq('v', eval('mode()'))
+ feed([[<C-\><C-N>]])
+
+ command([[inoremap <LeftDrag> <LeftDrag><C-\><C-N>]])
+ feed('i')
+ sleep(10)
+ meths.input_mouse('left', 'press', '', 0, 0, 0)
+ sleep(10)
+ meths.input_mouse('left', 'drag', '', 0, 0, 1)
+ sleep(10)
+ eq('n', eval('mode()'))
+ end)
end)