aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/autocmd/termxx_spec.lua (renamed from test/functional/autocmd/termclose_spec.lua)37
1 files changed, 35 insertions, 2 deletions
diff --git a/test/functional/autocmd/termclose_spec.lua b/test/functional/autocmd/termxx_spec.lua
index 50bcf1af5a..b12c24b58d 100644
--- a/test/functional/autocmd/termclose_spec.lua
+++ b/test/functional/autocmd/termxx_spec.lua
@@ -9,8 +9,7 @@ local ok = helpers.ok
local feed = helpers.feed
local iswin = helpers.iswin
-
-describe('TermClose event', function()
+describe('autocmd TermClose', function()
before_each(function()
clear()
nvim('set_option', 'shell', nvim_dir .. '/shell-test')
@@ -92,3 +91,37 @@ describe('TermClose event', function()
feed('<c-c>:qa!<cr>')
end)
end)
+
+it('autocmd TermEnter, TermLeave', function()
+ clear()
+ command('let g:evs = []')
+ command('autocmd TermOpen * call add(g:evs, ["TermOpen", mode()])')
+ command('autocmd TermClose * call add(g:evs, ["TermClose", mode()])')
+ command('autocmd TermEnter * call add(g:evs, ["TermEnter", mode()])')
+ command('autocmd TermLeave * call add(g:evs, ["TermLeave", mode()])')
+ command('terminal')
+
+ feed('i')
+ eq({ {'TermOpen', 'n'}, {'TermEnter', 't'}, }, eval('g:evs'))
+ feed([[<C-\><C-n>]])
+ feed('A')
+ eq({ {'TermOpen', 'n'}, {'TermEnter', 't'}, {'TermLeave', 'n'}, {'TermEnter', 't'}, }, eval('g:evs'))
+
+ -- TermLeave is also triggered by :quit.
+ command('split foo')
+ command('wincmd w')
+ feed('i')
+ command('q!')
+ eq(
+ {
+ {'TermOpen', 'n'},
+ {'TermEnter', 't'},
+ {'TermLeave', 'n'},
+ {'TermEnter', 't'},
+ {'TermLeave', 'n'},
+ {'TermEnter', 't'},
+ {'TermClose', 't'},
+ {'TermLeave', 'n'},
+ },
+ eval('g:evs'))
+end)