aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/ui/float_spec.lua337
1 files changed, 289 insertions, 48 deletions
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua
index fdd1504b13..50247ed214 100644
--- a/test/functional/ui/float_spec.lua
+++ b/test/functional/ui/float_spec.lua
@@ -4449,7 +4449,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -4487,7 +4487,7 @@ describe('float window', function()
## grid 4
{1:^y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -4523,7 +4523,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -4563,7 +4563,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -4599,7 +4599,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -4637,7 +4637,7 @@ describe('float window', function()
## grid 4
{1:^y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -4673,7 +4673,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -4711,7 +4711,7 @@ describe('float window', function()
## grid 4
{1:^y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
meths.input_mouse('left', 'press', '', 0, 2, 5)
screen:expect([[
@@ -4748,7 +4748,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
meths.input_mouse('left', 'press', '', 0, 0, 0)
screen:expect([[
@@ -4790,7 +4790,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
meths.input_mouse('left', 'press', '', 0, 2, 5)
screen:expect([[
@@ -4827,7 +4827,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos, unchanged=true}
+ ]], float_pos=expected_pos, unchanged=true}
else
meths.input_mouse('left', 'press', '', 0, 0, 0)
screen:expect([[
@@ -4842,7 +4842,6 @@ describe('float window', function()
end
end)
-
it("j", function()
feed("<c-w>ji") -- INSERT to trigger screen change
if multigrid then
@@ -4867,7 +4866,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -4903,7 +4902,7 @@ describe('float window', function()
## grid 4
{1:^y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -4939,7 +4938,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -4978,7 +4977,7 @@ describe('float window', function()
## grid 4
{1:^y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -5166,7 +5165,7 @@ describe('float window', function()
## grid 4
{1:^y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -5347,7 +5346,7 @@ describe('float window', function()
## grid 5
^x |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -5382,7 +5381,7 @@ describe('float window', function()
## grid 5
x |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -5417,7 +5416,7 @@ describe('float window', function()
## grid 5
x |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -5453,7 +5452,7 @@ describe('float window', function()
## grid 5
^x |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x |
@@ -5490,7 +5489,7 @@ describe('float window', function()
## grid 5
^y |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^y |
@@ -5525,7 +5524,7 @@ describe('float window', function()
## grid 5
y |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
y |
@@ -5560,7 +5559,7 @@ describe('float window', function()
## grid 5
y |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
y |
@@ -5597,7 +5596,7 @@ describe('float window', function()
## grid 5
^ |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^ |
@@ -5634,7 +5633,7 @@ describe('float window', function()
## grid 5
^ |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^ |
@@ -5677,7 +5676,7 @@ describe('float window', function()
{0:~ }|
{0:~ }|
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^x {5:│}x |
@@ -5720,17 +5719,17 @@ describe('float window', function()
{0:~ }|
{0:~ }|
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
- screen:expect([[
- ^ {5:│}x |
- {0:~ }{5:│}{0:~ }|
- {0:~ }{1:y }{0: }|
- {0:~ }{2:~ }{0: }|
- {0:~ }{5:│}{0:~ }|
- {4:[No Name] }{5:[No Name] [+] }|
- :vnew |
- ]])
+ screen:expect([[
+ ^ {5:│}x |
+ {0:~ }{5:│}{0:~ }|
+ {0:~ }{1:y }{0: }|
+ {0:~ }{2:~ }{0: }|
+ {0:~ }{5:│}{0:~ }|
+ {4:[No Name] }{5:[No Name] [+] }|
+ :vnew |
+ ]])
end
end)
@@ -5763,7 +5762,7 @@ describe('float window', function()
{0:~ }|
{0:~ }|
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
^ {5:│}x |
@@ -5833,7 +5832,7 @@ describe('float window', function()
[4] = {{id = 1001}, "NW", 1, 2, 5, true},
[5] = {{id = 1002}, "NW", 1, 4, 8, true}
}}
- else
+ else
screen:expect([[
x |
{0:~ }|
@@ -5871,7 +5870,7 @@ describe('float window', function()
]], float_pos={
[4] = {{id = 1001}, "NW", 1, 2, 5, true},
}}
- else
+ else
screen:expect([[
x |
{0:~ }|
@@ -5940,7 +5939,7 @@ describe('float window', function()
{0:~ }|
## grid 3
|
- ]]}
+ ]]}
else
screen:expect([[
^x |
@@ -5980,7 +5979,7 @@ describe('float window', function()
## grid 4
{1:y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -6017,7 +6016,7 @@ describe('float window', function()
## grid 4
{1:^y }|
{2:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -6087,7 +6086,7 @@ describe('float window', function()
{0:~ }|
{0:~ }|
{0:~ }|
- ]]}
+ ]]}
else
screen:expect([[
^x |
@@ -6124,7 +6123,7 @@ describe('float window', function()
## grid 5
x |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -6161,7 +6160,7 @@ describe('float window', function()
## grid 5
x |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
screen:expect([[
x |
@@ -6195,7 +6194,7 @@ describe('float window', function()
## grid 4
^y |
{0:~ }|
- ]]}
+ ]]}
else
screen:expect([[
x |
@@ -6231,7 +6230,7 @@ describe('float window', function()
## grid 4
^y |
{0:~ }|
- ]], float_pos=expected_pos}
+ ]], float_pos=expected_pos}
else
eq("UI doesn't support external windows",
pcall_err(meths.win_set_config, 0, {external=true, width=30, height=2}))
@@ -6261,6 +6260,78 @@ describe('float window', function()
end
end)
+ it('J (float with border)', function()
+ meths.win_set_config(win, {relative='editor', width=20, height=2, row=2, col=5, border='single'})
+ if multigrid then
+ screen:expect{grid=[[
+ ## grid 1
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [3:----------------------------------------]|
+ ## grid 2
+ ^x |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ ## grid 3
+ |
+ ## grid 4
+ {5:┌────────────────────┐}|
+ {5:│}{1:y }{5:│}|
+ {5:│}{2:~ }{5:│}|
+ {5:└────────────────────┘}|
+ ]], float_pos=expected_pos}
+ else
+ screen:expect([[
+ ^x |
+ {0:~ }|
+ {0:~ }{5:┌────────────────────┐}{0: }|
+ {0:~ }{5:│}{1:y }{5:│}{0: }|
+ {0:~ }{5:│}{2:~ }{5:│}{0: }|
+ {0:~ }{5:└────────────────────┘}{0: }|
+ |
+ ]])
+ end
+
+ feed("<c-w>w<c-w>J")
+ if multigrid then
+ screen:expect{grid=[[
+ ## grid 1
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ {5:[No Name] [+] }|
+ [4:----------------------------------------]|
+ [4:----------------------------------------]|
+ {4:[No Name] [+] }|
+ [3:----------------------------------------]|
+ ## grid 2
+ x |
+ {0:~ }|
+ ## grid 3
+ |
+ ## grid 4
+ ^y |
+ {0:~ }|
+ ]]}
+ else
+ screen:expect([[
+ x |
+ {0:~ }|
+ {5:[No Name] [+] }|
+ ^y |
+ {0:~ }|
+ {4:[No Name] [+] }|
+ |
+ ]])
+ end
+ end)
+
it('movements with nested split layout', function()
command("set hidden")
feed("<c-w>s<c-w>v<c-w>b<c-w>v")
@@ -6654,6 +6725,7 @@ describe('float window', function()
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
}}
+
meths.input_mouse('left', 'press', '', 5, 0, 0)
screen:expect{grid=[[
## grid 1
@@ -6683,6 +6755,7 @@ describe('float window', function()
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
}}
+
meths.input_mouse('left', 'drag', '', 5, 1, 2)
screen:expect{grid=[[
## grid 1
@@ -6782,6 +6855,7 @@ describe('float window', function()
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
}}
+
meths.input_mouse('left', 'press', '', 5, 1, 1)
screen:expect{grid=[[
## grid 1
@@ -6813,6 +6887,7 @@ describe('float window', function()
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
}}
+
meths.input_mouse('left', 'drag', '', 5, 2, 3)
screen:expect{grid=[[
## grid 1
@@ -6914,6 +6989,7 @@ describe('float window', function()
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
}}
+
meths.input_mouse('left', 'press', '', 5, 1, 0)
screen:expect{grid=[[
## grid 1
@@ -6944,6 +7020,7 @@ describe('float window', function()
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
}}
+
meths.input_mouse('left', 'drag', '', 5, 2, 2)
screen:expect{grid=[[
## grid 1
@@ -7009,6 +7086,123 @@ describe('float window', function()
end
end)
+ it('left drag changes visual selection if float window is turned into a split', function()
+ local buf = meths.create_buf(false,false)
+ meths.buf_set_lines(buf, 0, -1, true, {'foo', 'bar', 'baz'})
+ meths.open_win(buf, true, {relative='editor', width=20, height=3, row=2, col=5})
+ command('wincmd L')
+ if multigrid then
+ screen:expect([[
+ ## grid 1
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ {5:[No Name] }{4:[No Name] [+] }|
+ [3:----------------------------------------]|
+ ## grid 2
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ ## grid 3
+ |
+ ## grid 5
+ ^foo |
+ bar |
+ baz |
+ {0:~ }|
+ {0:~ }|
+ ]])
+
+ meths.input_mouse('left', 'press', '', 5, 2, 2)
+ screen:expect([[
+ ## grid 1
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ {5:[No Name] }{4:[No Name] [+] }|
+ [3:----------------------------------------]|
+ ## grid 2
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ ## grid 3
+ |
+ ## grid 5
+ foo |
+ bar |
+ ba^z |
+ {0:~ }|
+ {0:~ }|
+ ]])
+
+ meths.input_mouse('left', 'drag', '', 5, 1, 1)
+ screen:expect([[
+ ## grid 1
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ [2:-------------------]{5:│}[5:--------------------]|
+ {5:[No Name] }{4:[No Name] [+] }|
+ [3:----------------------------------------]|
+ ## grid 2
+ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ ## grid 3
+ {3:-- VISUAL --} |
+ ## grid 5
+ foo |
+ b^a{27:r} |
+ {27:baz} |
+ {0:~ }|
+ {0:~ }|
+ ]])
+ else
+ screen:expect([[
+ {5:│}^foo |
+ {0:~ }{5:│}bar |
+ {0:~ }{5:│}baz |
+ {0:~ }{5:│}{0:~ }|
+ {0:~ }{5:│}{0:~ }|
+ {5:[No Name] }{4:[No Name] [+] }|
+ |
+ ]])
+
+ meths.input_mouse('left', 'press', '', 0, 2, 22)
+ screen:expect([[
+ {5:│}foo |
+ {0:~ }{5:│}bar |
+ {0:~ }{5:│}ba^z |
+ {0:~ }{5:│}{0:~ }|
+ {0:~ }{5:│}{0:~ }|
+ {5:[No Name] }{4:[No Name] [+] }|
+ |
+ ]])
+
+ meths.input_mouse('left', 'drag', '', 0, 1, 21)
+ screen:expect([[
+ {5:│}foo |
+ {0:~ }{5:│}b^a{27:r} |
+ {0:~ }{5:│}{27:baz} |
+ {0:~ }{5:│}{0:~ }|
+ {0:~ }{5:│}{0:~ }|
+ {5:[No Name] }{4:[No Name] [+] }|
+ {3:-- VISUAL --} |
+ ]])
+ end
+ end)
+
it("'winblend' option", function()
screen:try_resize(50,9)
screen:set_default_attr_ids({
@@ -7895,6 +8089,53 @@ describe('float window', function()
|
]]}
end
+
+ -- resize and add a border
+ meths.win_set_config(win1, {relative='editor', width=15, height=4, row=0, col=4, border = 'single'})
+
+ if multigrid then
+ screen:expect{grid=[[
+ ## grid 1
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [3:----------------------------------------]|
+ ## grid 2
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ ## grid 3
+ |
+ ## grid 4
+ {5:┌───────────────┐}|
+ {5:│}{3:floaty bar }{5:│}|
+ {5:│}{1: }{5:│}|
+ {5:│}{2:~ }{5:│}|
+ {5:│}{2:~ }{5:│}|
+ {5:└───────────────┘}|
+ ]], float_pos={
+ [4] = {{id = 1001}, "NW", 1, 0, 4, true, 50};
+ }, win_viewport={
+ [2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
+ [4] = {win = {id = 1001}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
+ }}
+ else
+ screen:expect{grid=[[
+ ^ {5:┌───────────────┐} |
+ {0:~ }{5:│}{3:floaty bar }{5:│}{0: }|
+ {0:~ }{5:│}{1: }{5:│}{0: }|
+ {0:~ }{5:│}{2:~ }{5:│}{0: }|
+ {0:~ }{5:│}{2:~ }{5:│}{0: }|
+ {0:~ }{5:└───────────────┘}{0: }|
+ |
+ ]]}
+ end
end)
end