diff src/testdir/test_writefile.vim @ 12624:ae2802b6bf7d v8.0.1190

patch 8.0.1190: unusable after opening new window in BufWritePre event commit https://github.com/vim/vim/commit/2c33d7bb69c4c2c5b0e39b03cc4b0c04cfdfbb0b Author: Bram Moolenaar <Bram@vim.org> Date: Sat Oct 14 16:06:20 2017 +0200 patch 8.0.1190: unusable after opening new window in BufWritePre event Problem: Vim becomes unusable after opening new window in BufWritePre event. Solution: Call not_exiting(). (Martin Tournoij, closes #2205) Also for "2q" when a help window is open. Add a test.
author Christian Brabandt <cb@256bit.org>
date Sat, 14 Oct 2017 16:15:04 +0200
parents 16ccaedce025
children ffdf2e4b5d9a
line wrap: on
line diff
--- a/src/testdir/test_writefile.vim
+++ b/src/testdir/test_writefile.vim
@@ -49,3 +49,47 @@ func Test_writefile_fails_conversion()
   bwipe!
   set backup& writebackup&
 endfunc
+
+func SetFlag(timer)
+  let g:flag = 1
+endfunc
+
+func Test_write_quit_split()
+  " Prevent exiting by splitting window on file write.
+  augroup testgroup
+    autocmd BufWritePre * split
+  augroup END
+  e! Xfile
+  call setline(1, 'nothing')
+  wq
+
+  if has('timers')
+    " timer will not run if "exiting" is still set
+    let g:flag = 0
+    call timer_start(1, 'SetFlag')
+    sleep 50m
+    call assert_equal(1, g:flag)
+    unlet g:flag
+  endif
+  au! testgroup
+  bwipe Xfile
+  call delete('Xfile')
+endfunc
+
+func Test_nowrite_quit_split()
+  " Prevent exiting by opening a help window.
+  e! Xfile
+  help
+  wincmd w
+  exe winnr() . 'q'
+
+  if has('timers')
+    " timer will not run if "exiting" is still set
+    let g:flag = 0
+    call timer_start(1, 'SetFlag')
+    sleep 50m
+    call assert_equal(1, g:flag)
+    unlet g:flag
+  endif
+  bwipe Xfile
+endfunc