diff options
Diffstat (limited to 'test/functional/ui/float_spec.lua')
-rw-r--r-- | test/functional/ui/float_spec.lua | 160 |
1 files changed, 142 insertions, 18 deletions
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua index aa304c11bb..a567fbb941 100644 --- a/test/functional/ui/float_spec.lua +++ b/test/functional/ui/float_spec.lua @@ -173,6 +173,13 @@ describe('floating windows', function() local win = meths.open_win(buf, false, {relative='editor', width=20, height=2, row=3, col=5}) local expected = {anchor='NW', col=5, external=false, focusable=true, height=2, relative='editor', row=3, width=20} eq(expected, meths.win_get_config(win)) + + eq({relative='', external=false, focusable=true}, meths.win_get_config(0)) + + if multigrid then + meths.win_set_config(win, {external=true, width=10, height=1}) + eq({external=true,focusable=true,width=10,height=1,relative=''}, meths.win_get_config(win)) + end end) it('defaults to nonumber and NormalFloat highlight', function() @@ -253,6 +260,112 @@ describe('floating windows', function() end end) + it('can have minimum size', function() + insert("the background text") + local buf = meths.create_buf(false, true) + meths.buf_set_lines(buf, 0, -1, true, {'x'}) + local win = meths.open_win(buf, false, {relative='win', width=1, height=1, row=0, col=4, focusable=false}) + if multigrid then + screen:expect{grid=[[ + ## grid 1 + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + | + ## grid 2 + the background tex^t | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + ## grid 4 + {1:x}| + ]], float_pos={ + [4] = {{id = 1002}, "NW", 2, 0, 4, false} + }} + else + screen:expect([[ + the {1:x}ackground tex^t | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + | + ]]) + end + + meths.win_set_config(win, {relative='win', row=0, col=15}) + if multigrid then + screen:expect{grid=[[ + ## grid 1 + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + | + ## grid 2 + the background tex^t | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + ## grid 4 + {1:x}| + ]], float_pos={ + [4] = {{id = 1002}, "NW", 2, 0, 15, false} + }} + else + screen:expect([[ + the background {1:x}ex^t | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + | + ]]) + end + + meths.win_close(win,false) + if multigrid then + screen:expect([[ + ## grid 1 + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + | + ## grid 2 + the background tex^t | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + ]]) + else + screen:expect([[ + the background tex^t | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + | + ]]) + end + end) + it('API has proper error messages', function() local buf = meths.create_buf(false,false) eq({false, "Invalid key 'bork'"}, @@ -271,6 +384,10 @@ describe('floating windows', function() meth_pcall(meths.open_win,buf, false, {width=-1,height=2,relative='editor'})) eq({false, "'height' key must be a positive Integer"}, meth_pcall(meths.open_win,buf, false, {width=20,height=-1,relative='editor'})) + eq({false, "'height' key must be a positive Integer"}, + meth_pcall(meths.open_win,buf, false, {width=20,height=0,relative='editor'})) + eq({false, "Must specify 'width' and 'height'"}, + meth_pcall(meths.open_win,buf, false, {relative='editor'})) end) it('can be placed relative window or cursor', function() @@ -836,15 +953,15 @@ describe('floating windows', function() screen:expect([[ | {0:~ }| + {0:~ }{1:such }{0: }| {0:~ }{1:very }{0: }| {0:~ }{1:^float }{0: }| - {0:~ }| - {0:~ }| + {0:~ }{2:~ }{0: }| | ]]) end - meths.win_set_config(win, {width=0, height=3}) + meths.win_set_config(win, {height=3}) feed('gg') if multigrid then screen:expect{grid=[[ @@ -1173,9 +1290,9 @@ describe('floating windows', function() screen:expect([[ | {0:~ }| - {0:~ }{1:^such }{0: }| - {0:~ }| - {0:~ }| + {0:~ }{1:^such }{0: }| + {0:~ }{1:very }{0: }| + {0:~ }{1:float }{0: }| {0:~ }| | ]]) @@ -3256,7 +3373,7 @@ describe('floating windows', function() end if multigrid then - meths.win_set_config(0, {external=true}) + meths.win_set_config(0, {external=true, width=30, height=2}) expected_pos = {[3]={external=true}} screen:expect{grid=[[ ## grid 1 @@ -3274,12 +3391,12 @@ describe('floating windows', function() {0:~ }| {0:~ }| ## grid 3 - ^y | - {0:~ }| + ^y | + {0:~ }| ]], float_pos=expected_pos} else eq({false, "UI doesn't support external windows"}, - meth_pcall(meths.win_set_config, 0, {external=true})) + meth_pcall(meths.win_set_config, 0, {external=true, width=30, height=2})) return end @@ -3547,7 +3664,8 @@ describe('floating windows', function() it(":tabnew and :tabnext (external)", function() if multigrid then - meths.win_set_config(win, {external=true}) + -- also test external window wider than main screen + meths.win_set_config(win, {external=true, width=65, height=4}) expected_pos = {[3]={external=true}} feed(":tabnew<cr>") screen:expect{grid=[[ @@ -3567,8 +3685,10 @@ describe('floating windows', function() {0:~ }| {0:~ }| ## grid 3 - y | - {0:~ }| + y | + {0:~ }| + {0:~ }| + {0:~ }| ## grid 4 ^ | {0:~ }| @@ -3578,7 +3698,7 @@ describe('floating windows', function() ]], float_pos=expected_pos} else eq({false, "UI doesn't support external windows"}, - meth_pcall(meths.win_set_config, 0, {external=true})) + meth_pcall(meths.win_set_config, 0, {external=true, width=65, height=4})) end feed(":tabnext<cr>") @@ -3599,8 +3719,10 @@ describe('floating windows', function() {0:~ }| {0:~ }| ## grid 3 - y | - {0:~ }| + y | + {0:~ }| + {0:~ }| + {0:~ }| ## grid 4 | {0:~ }| @@ -3628,8 +3750,10 @@ describe('floating windows', function() {0:~ }| {0:~ }| ## grid 3 - y | - {0:~ }| + y | + {0:~ }| + {0:~ }| + {0:~ }| ## grid 4 ^ | {0:~ }| |