0
0
mirror of https://github.com/vim/vim.git synced 2025-07-24 10:45:12 -04:00

patch 9.0.0422: not enough testing of the :all command

Problem:    Not enough testing of the :all command.
Solution:   Add more testing. (Yegappan Lakshmanan, closes #11091)
This commit is contained in:
Yegappan Lakshmanan 2022-09-09 11:27:59 +01:00 committed by Bram Moolenaar
parent 5bc13453b2
commit 0dc2fd307f
2 changed files with 128 additions and 0 deletions

View File

@ -610,4 +610,130 @@ func Test_clear_arglist_in_all()
au! *
endfunc
" Test for the :all command
func Test_all_command()
%argdelete
" :all command should not close windows with files in the argument list,
" but can rearrange the windows.
args Xargnew1 Xargnew2
%bw!
edit Xargold1
split Xargnew1
let Xargnew1_winid = win_getid()
split Xargold2
split Xargnew2
let Xargnew2_winid = win_getid()
split Xargold3
all
call assert_equal(2, winnr('$'))
call assert_equal([Xargnew1_winid, Xargnew2_winid],
\ [win_getid(1), win_getid(2)])
call assert_equal([bufnr('Xargnew1'), bufnr('Xargnew2')],
\ [winbufnr(1), winbufnr(2)])
" :all command should close windows for files which are not in the
" argument list in the current tab page.
%bw!
edit Xargold1
split Xargold2
tabedit Xargold3
split Xargold4
tabedit Xargold5
tabfirst
all
call assert_equal(3, tabpagenr('$'))
call assert_equal([bufnr('Xargnew1'), bufnr('Xargnew2')], tabpagebuflist(1))
call assert_equal([bufnr('Xargold4'), bufnr('Xargold3')], tabpagebuflist(2))
call assert_equal([bufnr('Xargold5')], tabpagebuflist(3))
" :tab all command should close windows for files which are not in the
" argument list across all the tab pages.
%bw!
edit Xargold1
split Xargold2
tabedit Xargold3
split Xargold4
tabedit Xargold5
tabfirst
args Xargnew1 Xargnew2
tab all
call assert_equal(2, tabpagenr('$'))
call assert_equal([bufnr('Xargnew1')], tabpagebuflist(1))
call assert_equal([bufnr('Xargnew2')], tabpagebuflist(2))
" If a count is specified, then :all should open only that many windows.
%bw!
args Xargnew1 Xargnew2 Xargnew3 Xargnew4 Xargnew5
all 3
call assert_equal(3, winnr('$'))
call assert_equal([bufnr('Xargnew1'), bufnr('Xargnew2'), bufnr('Xargnew3')],
\ [winbufnr(1), winbufnr(2), winbufnr(3)])
" The :all command should not open more than 'tabpagemax' tab pages.
" If there are more files, then they should be opened in the last tab page.
%bw!
set tabpagemax=3
tab all
call assert_equal(3, tabpagenr('$'))
call assert_equal([bufnr('Xargnew1')], tabpagebuflist(1))
call assert_equal([bufnr('Xargnew2')], tabpagebuflist(2))
call assert_equal([bufnr('Xargnew3'), bufnr('Xargnew4'), bufnr('Xargnew5')],
\ tabpagebuflist(3))
set tabpagemax&
" Without the 'hidden' option, modified buffers should not be closed.
args Xargnew1 Xargnew2
%bw!
edit Xargtemp1
call setline(1, 'temp buffer 1')
split Xargtemp2
call setline(1, 'temp buffer 2')
all
call assert_equal(4, winnr('$'))
call assert_equal([bufnr('Xargtemp2'), bufnr('Xargtemp1'), bufnr('Xargnew1'),
\ bufnr('Xargnew2')],
\ [winbufnr(1), winbufnr(2), winbufnr(3), winbufnr(4)])
" With the 'hidden' option set, both modified and unmodified buffers in
" closed windows should be hidden.
set hidden
all
call assert_equal(2, winnr('$'))
call assert_equal([bufnr('Xargnew1'), bufnr('Xargnew2')],
\ [winbufnr(1), winbufnr(2)])
call assert_equal([1, 1, 0, 0], [getbufinfo('Xargtemp1')[0].hidden,
\ getbufinfo('Xargtemp2')[0].hidden,
\ getbufinfo('Xargnew1')[0].hidden,
\ getbufinfo('Xargnew2')[0].hidden])
set nohidden
" When 'winheight' is set to a large value, :all should open only one
" window.
args Xargnew1 Xargnew2 Xargnew3 Xargnew4 Xargnew5
%bw!
set winheight=9999
call assert_fails('all', 'E36:')
call assert_equal([1, bufnr('Xargnew1')], [winnr('$'), winbufnr(1)])
set winheight&
" When 'winwidth' is set to a large value, :vert all should open only one
" window.
%bw!
set winwidth=9999
call assert_fails('vert all', 'E36:')
call assert_equal([1, bufnr('Xargnew1')], [winnr('$'), winbufnr(1)])
set winwidth&
" empty argument list tests
%bw!
%argdelete
call assert_equal('', execute('args'))
all
call assert_equal(1, winnr('$'))
%argdelete
%bw!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -703,6 +703,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
422,
/**/
421,
/**/