diff src/testdir/test_visual.vim @ 12019:7d7835ab8b37 v8.0.0890

patch 8.0.0890: still many old style tests commit https://github.com/vim/vim/commit/75373f38087dd756babdbbf9f14fd4711712c5de Author: Bram Moolenaar <Bram@vim.org> Date: Mon Aug 7 22:02:30 2017 +0200 patch 8.0.0890: still many old style tests Problem: Still many old style tests. Solution: Convert several tests to new style. (Yegappan Lakshmanan)
author Christian Brabandt <cb@256bit.org>
date Mon, 07 Aug 2017 22:15:03 +0200
parents 66b677c77467
children 1fad9675d8fd
line wrap: on
line diff
--- a/src/testdir/test_visual.vim
+++ b/src/testdir/test_visual.vim
@@ -60,3 +60,34 @@ func Test_Visual_inner_quote()
   normal vki'
   bwipe!
 endfunc
+
+" Test for Visual mode not being reset causing E315 error.
+func TriggerTheProblem()
+  " At this point there is no visual selection because :call reset it.
+  " Let's restore the selection:
+  normal gv
+  '<,'>del _
+  try
+      exe "normal \<Esc>"
+  catch /^Vim\%((\a\+)\)\=:E315/
+      echom 'Snap! E315 error!'
+      let g:msg='Snap! E315 error!'
+  endtry
+endfunc
+
+func Test_visual_mode_reset()
+  set belloff=all
+  enew
+  let g:msg="Everything's fine."
+  enew
+  setl buftype=nofile
+  call append(line('$'), 'Delete this line.')
+
+  " NOTE: this has to be done by a call to a function because executing :del
+  " the ex-way will require the colon operator which resets the visual mode
+  " thus preventing the problem:
+  exe "normal! GV:call TriggerTheProblem()\<CR>"
+  call assert_equal("Everything's fine.", g:msg)
+
+  set belloff&
+endfunc