aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-03-27 09:19:56 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-03-27 10:01:35 +0800
commitae0a43ec23d9d902d2d9c446dda592873988ea50 (patch)
treeb4367538dee666321835525be7c5634d26f8fea9 /test
parentf4f18a983305d3cf8a6028333e9b99e86283032b (diff)
downloadrneovim-ae0a43ec23d9d902d2d9c446dda592873988ea50.tar.gz
rneovim-ae0a43ec23d9d902d2d9c446dda592873988ea50.tar.bz2
rneovim-ae0a43ec23d9d902d2d9c446dda592873988ea50.zip
fix(tabpage): correct check for failure to close window
Avoid closing window 999 times.
Diffstat (limited to 'test')
-rw-r--r--test/functional/editor/tabpage_spec.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/functional/editor/tabpage_spec.lua b/test/functional/editor/tabpage_spec.lua
index d1d6854b07..2494daf99b 100644
--- a/test/functional/editor/tabpage_spec.lua
+++ b/test/functional/editor/tabpage_spec.lua
@@ -3,8 +3,10 @@ local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local command = helpers.command
local eq = helpers.eq
+local neq = helpers.neq
local feed = helpers.feed
local eval = helpers.eval
+local exec = helpers.exec
describe('tabpage', function()
before_each(clear)
@@ -34,5 +36,20 @@ describe('tabpage', function()
eq(3, eval('tabpagenr()'))
end)
+
+ it('does not crash or loop 999 times if BufWipeout autocommand switches window #17868', function()
+ exec([[
+ tabedit
+ let s:window_id = win_getid()
+ botright new
+ setlocal bufhidden=wipe
+ let g:win_closed = 0
+ autocmd WinClosed * let g:win_closed += 1
+ autocmd BufWipeout <buffer> call win_gotoid(s:window_id)
+ tabprevious
+ +tabclose
+ ]])
+ neq(999, eval('g:win_closed'))
+ end)
end)