summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_autocmd.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-04-20 20:18:23 +0200
committerBram Moolenaar <Bram@vim.org>2016-04-20 20:18:23 +0200
commit40b1b5443c88fab77f1f7c6f9e801f7ffdb7e0a8 (patch)
tree59056726cfbcd9afe1b71eab0db0f30ac61856f4 /src/testdir/test_autocmd.vim
parent245c41070c7f37d52be43cce0cb140bd3ade6c7e (diff)
patch 7.4.1759v7.4.1759
Problem: When using feedkeys() in a timer the inserted characters are not used right away. Solution: Break the wait loop when characters have been added to typebuf. use this for testing CursorHoldI.
Diffstat (limited to 'src/testdir/test_autocmd.vim')
-rw-r--r--src/testdir/test_autocmd.vim27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 12c984888e..d3e0981025 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -6,3 +6,30 @@ func Test_vim_did_enter()
" This script will never reach the main loop, can't check if v:vim_did_enter
" becomes one.
endfunc
+
+if !has('timers')
+ finish
+endif
+
+func ExitInsertMode(id)
+ call feedkeys("\<Esc>")
+endfunc
+
+func Test_cursorhold_insert()
+ let g:triggered = 0
+ au CursorHoldI * let g:triggered += 1
+ set updatetime=20
+ call timer_start(100, 'ExitInsertMode')
+ call feedkeys('a', 'x!')
+ call assert_equal(1, g:triggered)
+endfunc
+
+func Test_cursorhold_insert_ctrl_x()
+ let g:triggered = 0
+ au CursorHoldI * let g:triggered += 1
+ set updatetime=20
+ call timer_start(100, 'ExitInsertMode')
+ " CursorHoldI does not trigger after CTRL-X
+ call feedkeys("a\<C-X>", 'x!')
+ call assert_equal(0, g:triggered)
+endfunc