Patch 8.2.0275
Problem: Some Ex code not covered by tests.
Solution: Add test cases. (Yegappan Lakshmanan, closes #5659)
Files: src/testdir/test_arglist.vim, src/testdir/test_autocmd.vim,
src/testdir/test_excmd.vim, src/testdir/test_quickfix.vim,
src/testdir/test_search.vim, src/testdir/test_swap.vim,
src/testdir/test_window_cmd.vim
*** ../vim-8.2.0274/src/testdir/test_arglist.vim 2020-02-11
22:03:43.038846226 +0100
--- src/testdir/test_arglist.vim 2020-02-18 21:49:18.555111485 +0100
***************
*** 519,524 ****
--- 519,538 ----
call term_sendkeys(buf, ":quit\n")
call WaitForAssert({-> assert_match('^E173:', term_getline(buf, 6))})
call StopVimInTerminal(buf)
+
+ " Try :confirm quit with unedited files in arglist
+ let buf = RunVimInTerminal('', {'rows': 6})
+ call term_sendkeys(buf, ":set nomore\n")
+ call term_sendkeys(buf, ":args a b c\n")
+ call term_sendkeys(buf, ":confirm quit\n")
+ call WaitForAssert({-> assert_match('^\[Y\]es, (N)o: *$',
+ \ term_getline(buf, 6))})
+ call term_sendkeys(buf, "N")
+ call term_sendkeys(buf, ":confirm quit\n")
+ call WaitForAssert({-> assert_match('^\[Y\]es, (N)o: *$',
+ \ term_getline(buf, 6))})
+ call term_sendkeys(buf, "Y")
+ call StopVimInTerminal(buf)
endfunc
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0274/src/testdir/test_autocmd.vim 2020-02-17
21:33:26.266098800 +0100
--- src/testdir/test_autocmd.vim 2020-02-18 21:49:18.563111458 +0100
***************
*** 2358,2361 ****
--- 2358,2385 ----
setglobal spellfile=
endfunc
+ " Test closing a window or editing another buffer from a FileChangedRO handler
+ " in a readonly buffer
+ func Test_FileChangedRO_winclose()
+ augroup FileChangedROTest
+ au!
+ autocmd FileChangedRO * quit
+ augroup END
+ new
+ set readonly
+ call assert_fails('normal i', 'E788:')
+ close
+ augroup! FileChangedROTest
+
+ augroup FileChangedROTest
+ au!
+ autocmd FileChangedRO * edit Xfile
+ augroup END
+ new
+ set readonly
+ call assert_fails('normal i', 'E788:')
+ close
+ augroup! FileChangedROTest
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0274/src/testdir/test_excmd.vim 2020-02-17 21:33:26.266098800
+0100
--- src/testdir/test_excmd.vim 2020-02-18 21:49:18.563111458 +0100
***************
*** 238,243 ****
--- 238,259 ----
call assert_equal(['foo4'], readfile('foo'))
call assert_equal(['bar2'], readfile('bar'))
+ " Test for closing a window with a modified buffer
+ let buf = RunVimInTerminal('', {'rows': 20})
+ call term_sendkeys(buf, ":set nomore\n")
+ call term_sendkeys(buf, ":new\n")
+ call term_sendkeys(buf, ":call setline(1, 'abc')\n")
+ call term_sendkeys(buf, ":confirm close\n")
+ call WaitForAssert({-> assert_match('^\[Y\]es, (N)o, (C)ancel: *$',
+ \ term_getline(buf, 20))}, 1000)
+ call term_sendkeys(buf, "C")
+ call term_sendkeys(buf, ":confirm close\n")
+ call WaitForAssert({-> assert_match('^\[Y\]es, (N)o, (C)ancel: *$',
+ \ term_getline(buf, 20))}, 1000)
+ call term_sendkeys(buf, "N")
+ call term_sendkeys(buf, ":quit\n")
+ call StopVimInTerminal(buf)
+
call delete('foo')
call delete('bar')
endfunc
*** ../vim-8.2.0274/src/testdir/test_quickfix.vim 2020-02-16
13:33:52.051371829 +0100
--- src/testdir/test_quickfix.vim 2020-02-18 21:49:18.567111444 +0100
***************
*** 4195,4200 ****
--- 4195,4214 ----
call assert_equal(0, getloclist(0, {'winid' : 0}).winid)
new | only
+ " Using :split or :vsplit from a quickfix window should behave like a :new
+ " or a :vnew command
+ copen
+ split
+ call assert_equal(3, winnr('$'))
+ let l = getwininfo()
+ call assert_equal([0, 0, 1], [l[0].quickfix, l[1].quickfix, l[2].quickfix])
+ close
+ copen
+ vsplit
+ let l = getwininfo()
+ call assert_equal([0, 0, 1], [l[0].quickfix, l[1].quickfix, l[2].quickfix])
+ new | only
+
call delete('Xtestfile1')
call delete('Xtestfile2')
endfunc
*** ../vim-8.2.0274/src/testdir/test_search.vim 2020-02-11 22:03:43.038846226
+0100
--- src/testdir/test_search.vim 2020-02-18 21:49:18.567111444 +0100
***************
*** 1515,1518 ****
--- 1515,1545 ----
call delete('Xresult')
endfunc
+ " Test for searching a pattern that is not present with 'nowrapscan'
+ func Test_search_pat_not_found()
+ new
+ set nowrapscan
+ let @/ = '1abcxyz2'
+ call assert_fails('normal n', 'E385:')
+ call assert_fails('normal N', 'E384:')
+ set wrapscan&
+ close
+ endfunc
+
+ " Test for v:searchforward variable
+ func Test_searchforward_var()
+ new
+ call setline(1, ['foo', '', 'foo'])
+ call cursor(2, 1)
+ let @/ = 'foo'
+ let v:searchforward = 0
+ normal N
+ call assert_equal(3, line('.'))
+ call cursor(2, 1)
+ let v:searchforward = 1
+ normal N
+ call assert_equal(1, line('.'))
+ close!
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0274/src/testdir/test_swap.vim 2019-10-10 16:40:31.000000000
+0200
--- src/testdir/test_swap.vim 2020-02-18 21:49:18.567111444 +0100
***************
*** 277,283 ****
autocmd SwapExists * let v:swapchoice = 'r'
augroup END
-
" Create a valid swapfile by editing a file with a special extension.
split Xtest.scr
call setline(1, ['one', 'two', 'three'])
--- 277,282 ----
***************
*** 309,311 ****
--- 308,352 ----
augroup END
augroup! test_swap_recover_ext
endfunc
+
+ " Test for closing a split window automatically when a swap file is detected
+ " and 'Q' is selected in the confirmation prompt.
+ func Test_swap_split_win()
+ autocmd! SwapExists
+ augroup test_swap_splitwin
+ autocmd!
+ autocmd SwapExists * let v:swapchoice = 'q'
+ augroup END
+
+ " Create a valid swapfile by editing a file with a special extension.
+ split Xtest.scr
+ call setline(1, ['one', 'two', 'three'])
+ write " file is written, not modified
+ write " write again to make sure the swapfile is created
+ " read the swapfile as a Blob
+ let swapfile_name = swapname('%')
+ let swapfile_bytes = readfile(swapfile_name, 'B')
+
+ " Close and delete the file and recreate the swap file.
+ quit
+ call delete('Xtest.scr')
+ call writefile(swapfile_bytes, swapfile_name)
+ " Split edit the file again. This should fail to open the window
+ try
+ split Xtest.scr
+ catch
+ " E308 should be caught, not E306.
+ call assert_exception('E308:') " Original file may have been changed
+ endtry
+ call assert_equal(1, winnr('$'))
+
+ call delete('Xtest.scr')
+ call delete(swapfile_name)
+
+ augroup test_swap_splitwin
+ autocmd!
+ augroup END
+ augroup! test_swap_splitwin
+ endfunc
+
+ " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0274/src/testdir/test_window_cmd.vim 2020-02-17
21:33:26.270098788 +0100
--- src/testdir/test_window_cmd.vim 2020-02-18 21:49:18.567111444 +0100
***************
*** 965,968 ****
--- 965,976 ----
call assert_fails('winpos 10', 'E466:')
endfunc
+ " Test for +cmd in a :split command
+ func Test_split_cmd()
+ split +set\ readonly
+ call assert_equal(1, &readonly)
+ call assert_equal(2, winnr('$'))
+ close
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.0274/src/version.c 2020-02-18 21:32:55.854340478 +0100
--- src/version.c 2020-02-18 21:50:28.238882470 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 275,
/**/
--
>From "know your smileys":
=):-) Uncle Sam
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/202002182055.01IKtApR012194%40masaka.moolenaar.net.