]> granicus.if.org Git - vim/commitdiff
patch 8.1.2067: no tests for SafeState and SafeStateAgain v8.1.2067
authorBram Moolenaar <Bram@vim.org>
Sun, 22 Sep 2019 19:50:09 +0000 (21:50 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 22 Sep 2019 19:50:09 +0000 (21:50 +0200)
Problem:    No tests for SafeState and SafeStateAgain.
Solution:   Add tests.

src/testdir/test_autocmd.vim
src/version.c

index 0979bb4a159340ccb9feac6ba1101efd88d0f580..c3d3bbbd102f5ecb72d87898e2989359556be22f 100644 (file)
@@ -2,6 +2,7 @@
 
 source shared.vim
 source check.vim
+source term_util.vim
 
 func s:cleanup_buffers() abort
   for bnr in range(1, bufnr('$'))
@@ -2225,3 +2226,33 @@ func Test_throw_in_BufWritePre()
   bwipe!
   au! throwing
 endfunc
+
+func Test_autocmd_SafeState()
+  CheckRunVimInTerminal
+
+  let lines =<< trim END
+       let g:safe = 0
+       let g:again = ''
+       au SafeState * let g:safe += 1
+       au SafeStateAgain * let g:again ..= 'x'
+       func CallTimer()
+         call timer_start(10, {id -> execute('let g:again ..= "t"')})
+       endfunc
+  END
+  call writefile(lines, 'XSafeState')
+  let buf = RunVimInTerminal('-S XSafeState', #{rows: 6})
+
+  call term_sendkeys(buf, ":echo g:safe\<CR>")
+  call WaitForAssert({-> assert_match('^2 ', term_getline(buf, 6))}, 1000)
+
+  call term_sendkeys(buf, ":echo g:again\<CR>")
+  call WaitForAssert({-> assert_match('^xxxx', term_getline(buf, 6))}, 1000)
+
+  call term_sendkeys(buf, ":let g:again = ''\<CR>:call CallTimer()\<CR>")
+  call term_wait(buf)
+  call term_sendkeys(buf, ":echo g:again\<CR>")
+  call WaitForAssert({-> assert_match('xtx', term_getline(buf, 6))}, 1000)
+
+  call StopVimInTerminal(buf)
+  call delete('XSafeState')
+endfunc
index 2b2474f301fb518ac66a38bd3fa6b15bbfba9ae2..d163fbaa4d9ac530304983d081574e503b14c6a2 100644 (file)
@@ -757,6 +757,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2067,
 /**/
     2066,
 /**/