diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/api/ui_spec.lua | 59 | ||||
-rw-r--r-- | test/functional/ui/screen_basic_spec.lua | 29 |
2 files changed, 59 insertions, 29 deletions
diff --git a/test/functional/api/ui_spec.lua b/test/functional/api/ui_spec.lua index b616f51d10..60d115c6f1 100644 --- a/test/functional/api/ui_spec.lua +++ b/test/functional/api/ui_spec.lua @@ -1,8 +1,11 @@ local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') local clear = helpers.clear +local command = helpers.command local eq = helpers.eq local eval = helpers.eval +local exec = helpers.exec +local feed = helpers.feed local meths = helpers.meths local request = helpers.request local pcall_err = helpers.pcall_err @@ -76,3 +79,59 @@ it('autocmds UIEnter/UILeave', function() 'UILeave', }, eval('g:evs')) end) + +it('autocmds VimSuspend/VimResume #22041', function() + clear() + local screen = Screen.new() + screen:attach() + exec([[ + let g:ev = [] + autocmd VimResume * :call add(g:ev, 'r') + autocmd VimSuspend * :call add(g:ev, 's') + ]]) + + eq(false, screen.suspended) + feed('<C-Z>') + screen:expect(function() eq (true, screen.suspended) end) + eq({ 's' }, eval('g:ev')) + screen.suspended = false + feed('<Ignore>') + eq({ 's', 'r' }, eval('g:ev')) + + command('suspend') + screen:expect(function() eq (true, screen.suspended) end) + eq({ 's', 'r', 's' }, eval('g:ev')) + screen.suspended = false + meths.input_mouse('move', '', '', 0, 0, 0) + eq({ 's', 'r', 's', 'r' }, eval('g:ev')) + + feed('<C-Z>') + screen:expect(function() eq (true, screen.suspended) end) + meths.ui_set_focus(false) + eq({ 's', 'r', 's', 'r', 's' }, eval('g:ev')) + screen.suspended = false + meths.ui_set_focus(true) + eq({ 's', 'r', 's', 'r', 's', 'r' }, eval('g:ev')) + + command('suspend') + screen:expect(function() eq (true, screen.suspended) end) + screen:detach() + eq({ 's', 'r', 's', 'r', 's', 'r', 's' }, eval('g:ev')) + screen.suspended = false + screen:attach() + eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r' }, eval('g:ev')) + + eq(false, screen.suspended) + feed('<C-Z><C-Z><C-Z><C-Z>') + screen:expect(function() eq (true, screen.suspended) end) + eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's' }, eval('g:ev')) + screen.suspended = false + feed('<C-Z><C-Z><C-Z><C-Z>') + eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's' }, eval('g:ev')) + screen:expect(function() eq (true, screen.suspended) end) + screen.suspended = false + feed('i<C-R>=g:ev<CR>') + eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r' }, eval('g:ev')) + eq({ 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r', 's', 'r', '' }, + meths.buf_get_lines(0, 0, -1, true)) +end) diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua index 5d5be2e807..bc9517aa60 100644 --- a/test/functional/ui/screen_basic_spec.lua +++ b/test/functional/ui/screen_basic_spec.lua @@ -4,7 +4,6 @@ local spawn, set_session, clear = helpers.spawn, helpers.set_session, helpers.cl local feed, command = helpers.feed, helpers.command local insert = helpers.insert local eq = helpers.eq -local eval = helpers.eval local funcs, meths = helpers.funcs, helpers.meths describe('screen', function() @@ -64,34 +63,6 @@ local function screen_tests(linegrid) } ) end) - describe(':suspend', function() - it('is forwarded to the UI', function() - local function check() - eq(true, screen.suspended) - end - - command('let g:ev = []') - command('autocmd VimResume * :call add(g:ev, "r")') - command('autocmd VimSuspend * :call add(g:ev, "s")') - - eq(false, screen.suspended) - command('suspend') - eq({ 's', 'r' }, eval('g:ev')) - - screen:expect(check) - screen.suspended = false - - feed('<c-z>') - eq({ 's', 'r', 's', 'r' }, eval('g:ev')) - - screen:expect(check) - screen.suspended = false - - command('suspend') - eq({ 's', 'r', 's', 'r', 's', 'r' }, eval('g:ev')) - end) - end) - describe('bell/visual bell', function() it('is forwarded to the UI', function() feed('<left>') |