diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-03-20 10:56:52 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-03-23 20:12:37 +0100 |
commit | ae49e8da588a2faed61f506c1e24bcf59fce693a (patch) | |
tree | af625da6c6033f5578baaaa519a29bc93e5b0ca3 /test/functional/ui/float_spec.lua | |
parent | 3e78319ac608abadd5204e00295dc3ace7e2edd8 (diff) | |
download | rneovim-ae49e8da588a2faed61f506c1e24bcf59fce693a.tar.gz rneovim-ae49e8da588a2faed61f506c1e24bcf59fce693a.tar.bz2 rneovim-ae49e8da588a2faed61f506c1e24bcf59fce693a.zip |
window: don't crash when closing two floats in a row
prevwin can be set to the current window. Then we can't jump to it
after closing a float.
Diffstat (limited to 'test/functional/ui/float_spec.lua')
-rw-r--r-- | test/functional/ui/float_spec.lua | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua index 4477573cff..79b1da5a48 100644 --- a/test/functional/ui/float_spec.lua +++ b/test/functional/ui/float_spec.lua @@ -2681,6 +2681,119 @@ describe('floating windows', function() eq(exited, true) end) + it(':quit two floats in a row', function() + -- enter first float + feed('<c-w><c-w>') + -- enter second float + meths.open_win(0, true, {relative='editor', width=20, height=2, row=4, col=8}) + if multigrid then + screen:expect{grid=[[ + ## grid 1 + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + | + ## grid 2 + x | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + ## grid 3 + {1:y }| + {2:~ }| + ## grid 4 + {1:^y }| + {2:~ }| + ]], float_pos={ + [3] = {{id = 1001}, "NW", 1, 2, 5, true}, + [4] = {{id = 1002}, "NW", 1, 4, 8, true} + }} + else + screen:expect([[ + x | + {0:~ }| + {0:~ }{1:y }{0: }| + {0:~ }{2:~ }{0: }| + {0:~ }{1:^y }{0: }| + {0:~ }{2:~ }{0: }| + | + ]]) + end + + feed(':quit<cr>') + if multigrid then + screen:expect{grid=[[ + ## grid 1 + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + {5:[No Name] [+] }| + :quit | + ## grid 2 + x | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + ## grid 3 + {1:^y }| + {2:~ }| + ]], float_pos={ + [3] = {{id = 1001}, "NW", 1, 2, 5, true}, + }} + else + screen:expect([[ + x | + {0:~ }| + {0:~ }{1:^y }{0: }| + {0:~ }{2:~ }{0: }| + {0:~ }| + {5:[No Name] [+] }| + :quit | + ]]) + end + + feed(':quit<cr>') + if multigrid then + screen:expect([[ + ## grid 1 + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + [2:----------------------------------------]| + :quit | + ## grid 2 + ^x | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + ]]) + else + screen:expect([[ + ^x | + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + {0:~ }| + :quit | + ]]) + end + + eq(2, eval('1+1')) + end) + it("o (:only) non-float", function() feed("<c-w>o") if multigrid then |