From 7591116acffc45b5880c49244646651badac1629 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 21 Jul 2020 19:44:47 +0200 Subject: patch 8.2.1260: there is no good test for CursorHold Problem: There is no good test for CursorHold. Solution: Add a test. Remove duplicated test. (Yegappan Lakshmanan, closes #6503 --- src/testdir/test_autocmd.vim | 29 +++++++++++++++++++++++++++++ src/testdir/test_buffer.vim | 9 --------- src/testdir/test_normal.vim | 18 ------------------ 3 files changed, 29 insertions(+), 27 deletions(-) (limited to 'src/testdir') diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index c167ed951b..70fbe01c0f 100644 --- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -19,6 +19,35 @@ func Test_vim_did_enter() " becomes one. endfunc +" Test for the CursorHold autocmd +func Test_CursorHold_autocmd() + CheckRunVimInTerminal + call writefile(['one', 'two', 'three'], 'Xfile') + let before =<< trim END + set updatetime=10 + au CursorHold * call writefile([line('.')], 'Xoutput', 'a') + END + call writefile(before, 'Xinit') + let buf = RunVimInTerminal('-S Xinit Xfile', {}) + call term_wait(buf) + call term_sendkeys(buf, "gg") + call term_wait(buf) + sleep 50m + call term_sendkeys(buf, "j") + call term_wait(buf) + sleep 50m + call term_sendkeys(buf, "j") + call term_wait(buf) + sleep 50m + call StopVimInTerminal(buf) + + call assert_equal(['1', '2', '3'], readfile('Xoutput')[-3:-1]) + + call delete('Xinit') + call delete('Xoutput') + call delete('Xfile') +endfunc + if has('timers') func ExitInsertMode(id) diff --git a/src/testdir/test_buffer.vim b/src/testdir/test_buffer.vim index c8f6c5a696..e54b6338cb 100644 --- a/src/testdir/test_buffer.vim +++ b/src/testdir/test_buffer.vim @@ -67,15 +67,6 @@ func Test_bunload_with_offset() call assert_fails('1,4bunload', 'E16:') call assert_fails(',100bunload', 'E16:') - " Use a try-catch for this test. When assert_fails() is used for this - " test, the command fails with E515: instead of E90: - let caught_E90 = 0 - try - $bunload - catch /E90:/ - let caught_E90 = 1 - endtry - call assert_equal(1, caught_E90) call assert_fails('$bunload', 'E90:') endfunc diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim index 68aae534eb..58c9ece68c 100644 --- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -2506,24 +2506,6 @@ func Test_normal47_visual_buf_wipe() set nomodified endfunc -func Test_normal47_autocmd() - " disabled, does not seem to be possible currently - throw "Skipped: not possible to test cursorhold autocmd while waiting for input in normal_cmd" - new - call append(0, repeat('-',20)) - au CursorHold * call feedkeys('2l', '') - 1 - set updatetime=20 - " should delete 12 chars (d12l) - call feedkeys('d1', '!') - call assert_equal('--------', getline(1)) - - " clean up - au! CursorHold - set updatetime=4000 - bw! -endfunc - func Test_normal48_wincmd() new exe "norm! \c" -- cgit v1.2.3