diff src/testdir/test_swap.vim @ 19487:0aba9ef12488 v8.2.0301

patch 8.2.0301: insufficient testing for exception handling Commit: https://github.com/vim/vim/commit/b654103ad1e379348616f354272db86804ab4bdb Author: Bram Moolenaar <Bram@vim.org> Date: Sat Feb 22 21:21:27 2020 +0100 patch 8.2.0301: insufficient testing for exception handling Problem: Insufficient testing for exception handling and the "attention" prompt. Solution: Add test cases. (Yegappan Lakshmanan, closes #5681)
author Bram Moolenaar <Bram@vim.org>
date Sat, 22 Feb 2020 21:30:04 +0100
parents 8f8a5a15d00a
children 42e4083429a7
line wrap: on
line diff
--- a/src/testdir/test_swap.vim
+++ b/src/testdir/test_swap.vim
@@ -1,6 +1,7 @@
 " Tests for the swap feature
 
 source shared.vim
+source term_util.vim
 
 func s:swapname()
   return trim(execute('swapname'))
@@ -349,4 +350,29 @@ func Test_swap_split_win()
   augroup! test_swap_splitwin
 endfunc
 
+" Test for selecting 'q' in the attention prompt
+func Test_swap_prompt_splitwin()
+  if !CanRunVimInTerminal()
+    throw 'Skipped: cannot run vim in terminal'
+  endif
+  call writefile(['foo bar'], 'Xfile1')
+  edit Xfile1
+  let buf = RunVimInTerminal('', {'rows': 20})
+  call term_sendkeys(buf, ":set nomore\n")
+  call term_sendkeys(buf, ":set noruler\n")
+  call term_sendkeys(buf, ":split Xfile1\n")
+  call term_wait(buf)
+  call WaitForAssert({-> assert_match('^\[O\]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort: $', term_getline(buf, 20))})
+  call term_sendkeys(buf, "q")
+  call term_wait(buf)
+  call term_sendkeys(buf, ":")
+  call WaitForAssert({-> assert_match('^:$', term_getline(buf, 20))})
+  call term_sendkeys(buf, "echomsg winnr('$')\<CR>")
+  call term_wait(buf)
+  call WaitForAssert({-> assert_match('^1$', term_getline(buf, 20))})
+  call StopVimInTerminal(buf)
+  %bwipe!
+  call delete('Xfile1')
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab