mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.1.0331: insufficient test coverage for :mkview and :loadview
Problem: Insufficient test coverage for :mkview and :loadview.
Solution: Add tests. (Dominique Pelle, closes vim/vim#3385)
627cb6a6b3
This commit is contained in:
parent
f62d4865d8
commit
5c9cd009e1
@ -151,5 +151,86 @@ func Test_mksession_one_buffer_two_windows()
|
||||
call delete('Xtest_mks.out')
|
||||
endfunc
|
||||
|
||||
" Test :mkview with a file argument.
|
||||
func Test_mkview_file()
|
||||
" Create a view with line number and a fold.
|
||||
help :mkview
|
||||
set number
|
||||
norm! V}zf
|
||||
let pos = getpos('.')
|
||||
let linefoldclosed1 = foldclosed('.')
|
||||
mkview! Xview
|
||||
set nonumber
|
||||
norm! zrj
|
||||
" We can close the help window, as mkview with a file name should
|
||||
" generate a command to edit the file.
|
||||
helpclose
|
||||
|
||||
source Xview
|
||||
call assert_equal(1, &number)
|
||||
call assert_match('\*:mkview\*$', getline('.'))
|
||||
call assert_equal(pos, getpos('.'))
|
||||
call assert_equal(linefoldclosed1, foldclosed('.'))
|
||||
|
||||
" Creating a view again with the same file name should fail (file
|
||||
" already exists). But with a !, the previous view should be
|
||||
" overwritten without error.
|
||||
help :loadview
|
||||
call assert_fails('mkview Xview', 'E189:')
|
||||
call assert_match('\*:loadview\*$', getline('.'))
|
||||
mkview! Xview
|
||||
call assert_match('\*:loadview\*$', getline('.'))
|
||||
|
||||
call delete('Xview')
|
||||
bwipe
|
||||
endfunc
|
||||
|
||||
" Test :mkview and :loadview with a custom 'viewdir'.
|
||||
func Test_mkview_loadview_with_viewdir()
|
||||
set viewdir=Xviewdir
|
||||
|
||||
help :mkview
|
||||
set number
|
||||
norm! V}zf
|
||||
let pos = getpos('.')
|
||||
let linefoldclosed1 = foldclosed('.')
|
||||
mkview 1
|
||||
set nonumber
|
||||
norm! zrj
|
||||
|
||||
loadview 1
|
||||
|
||||
" The directory Xviewdir/ should have been created and the view
|
||||
" should be stored in that directory.
|
||||
call assert_equal('Xviewdir/' .
|
||||
\ substitute(
|
||||
\ substitute(
|
||||
\ expand('%:p'), '/', '=+', 'g'), ':', '=-', 'g') . '=1.vim',
|
||||
\ glob('Xviewdir/*'))
|
||||
call assert_equal(1, &number)
|
||||
call assert_match('\*:mkview\*$', getline('.'))
|
||||
call assert_equal(pos, getpos('.'))
|
||||
call assert_equal(linefoldclosed1, foldclosed('.'))
|
||||
|
||||
call delete('Xviewdir', 'rf')
|
||||
set viewdir&
|
||||
helpclose
|
||||
endfunc
|
||||
|
||||
func Test_mkview_no_file_name()
|
||||
new
|
||||
" :mkview or :mkview {nr} should fail in a unnamed buffer.
|
||||
call assert_fails('mkview', 'E32:')
|
||||
call assert_fails('mkview 1', 'E32:')
|
||||
|
||||
" :mkview {file} should succeed in a unnamed buffer.
|
||||
mkview Xview
|
||||
help
|
||||
source Xview
|
||||
call assert_equal('', bufname('%'))
|
||||
|
||||
call delete('Xview')
|
||||
%bwipe
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
Loading…
Reference in New Issue
Block a user