mirror of
https://github.com/vim/vim.git
synced 2025-09-28 04:24:06 -04:00
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Problem: Insufficient testing for 'statusline' and 'tabline'. Solution: Add more tests. (Yegappan Lakshmanan, closes #6333)
This commit is contained in:
@@ -2585,7 +2585,7 @@ func Test_autocmd_window()
|
|||||||
edit one.txt
|
edit one.txt
|
||||||
tabnew two.txt
|
tabnew two.txt
|
||||||
let g:blist = []
|
let g:blist = []
|
||||||
augroup aucmd_win_test
|
augroup aucmd_win_test1
|
||||||
au!
|
au!
|
||||||
au BufEnter * call add(g:blist, [expand('<afile>'),
|
au BufEnter * call add(g:blist, [expand('<afile>'),
|
||||||
\ win_gettype(bufwinnr(expand('<afile>')))])
|
\ win_gettype(bufwinnr(expand('<afile>')))])
|
||||||
@@ -2594,10 +2594,29 @@ func Test_autocmd_window()
|
|||||||
doautoall BufEnter
|
doautoall BufEnter
|
||||||
call assert_equal([['one.txt', 'autocmd'], ['two.txt', '']], g:blist)
|
call assert_equal([['one.txt', 'autocmd'], ['two.txt', '']], g:blist)
|
||||||
|
|
||||||
augroup aucmd_win_test
|
augroup aucmd_win_test1
|
||||||
au!
|
au!
|
||||||
augroup END
|
augroup END
|
||||||
augroup! aucmd_win_test
|
augroup! aucmd_win_test1
|
||||||
|
%bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for trying to close the temporary window used for executing an autocmd
|
||||||
|
func Test_close_autocmd_window()
|
||||||
|
%bw!
|
||||||
|
edit one.txt
|
||||||
|
tabnew two.txt
|
||||||
|
augroup aucmd_win_test2
|
||||||
|
au!
|
||||||
|
au BufEnter * if expand('<afile>') == 'one.txt' | 1close | endif
|
||||||
|
augroup END
|
||||||
|
|
||||||
|
call assert_fails('doautoall BufEnter', 'E813:')
|
||||||
|
|
||||||
|
augroup aucmd_win_test2
|
||||||
|
au!
|
||||||
|
augroup END
|
||||||
|
augroup! aucmd_win_test2
|
||||||
%bw!
|
%bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
" Test 'statusline'
|
" Test 'statusline'
|
||||||
"
|
"
|
||||||
" Not tested yet:
|
" Not tested yet:
|
||||||
" %a
|
|
||||||
" %N
|
" %N
|
||||||
" %T
|
|
||||||
" %X
|
|
||||||
|
|
||||||
source view_util.vim
|
source view_util.vim
|
||||||
source check.vim
|
source check.vim
|
||||||
@@ -105,6 +102,18 @@ func Test_statusline()
|
|||||||
set statusline=%F
|
set statusline=%F
|
||||||
call assert_match('/testdir/Xstatusline\s*$', s:get_statusline())
|
call assert_match('/testdir/Xstatusline\s*$', s:get_statusline())
|
||||||
|
|
||||||
|
" Test for min and max width with %(. For some reason, if this test is moved
|
||||||
|
" after the below test for the help buffer flag, then the code to truncate
|
||||||
|
" the string is not executed.
|
||||||
|
set statusline=%015(%f%)
|
||||||
|
call assert_match('^ Xstatusline\s*$', s:get_statusline())
|
||||||
|
set statusline=%.6(%f%)
|
||||||
|
call assert_match('^<sline\s*$', s:get_statusline())
|
||||||
|
set statusline=%14f
|
||||||
|
call assert_match('^ Xstatusline\s*$', s:get_statusline())
|
||||||
|
set statusline=%.4L
|
||||||
|
call assert_match('^10>3\s*$', s:get_statusline())
|
||||||
|
|
||||||
" %h: Help buffer flag, text is "[help]".
|
" %h: Help buffer flag, text is "[help]".
|
||||||
" %H: Help buffer flag, text is ",HLP".
|
" %H: Help buffer flag, text is ",HLP".
|
||||||
set statusline=%h,%H
|
set statusline=%h,%H
|
||||||
@@ -423,3 +432,5 @@ func Test_statusline_removed_group()
|
|||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
call delete('XTest_statusline')
|
call delete('XTest_statusline')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -70,3 +70,46 @@ func Test_redrawtabline()
|
|||||||
let &showtabline = showtabline_save
|
let &showtabline = showtabline_save
|
||||||
au! Bufadd
|
au! Bufadd
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for the "%T" and "%X" flags in the 'tabline' option
|
||||||
|
func MyTabLine()
|
||||||
|
let s = ''
|
||||||
|
for i in range(tabpagenr('$'))
|
||||||
|
" set the tab page number (for mouse clicks)
|
||||||
|
let s .= '%' . (i + 1) . 'T'
|
||||||
|
|
||||||
|
" the label is made by MyTabLabel()
|
||||||
|
let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
|
||||||
|
endfor
|
||||||
|
|
||||||
|
" after the last tab fill with TabLineFill and reset tab page nr
|
||||||
|
let s .= '%T'
|
||||||
|
|
||||||
|
" right-align the label to close the current tab page
|
||||||
|
if tabpagenr('$') > 1
|
||||||
|
let s .= '%=%Xclose'
|
||||||
|
endif
|
||||||
|
|
||||||
|
return s
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func MyTabLabel(n)
|
||||||
|
let buflist = tabpagebuflist(a:n)
|
||||||
|
let winnr = tabpagewinnr(a:n)
|
||||||
|
return bufname(buflist[winnr - 1])
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_tabline_flags()
|
||||||
|
if has('gui')
|
||||||
|
set guioptions-=e
|
||||||
|
endif
|
||||||
|
set tabline=%!MyTabLine()
|
||||||
|
edit Xtabline1
|
||||||
|
tabnew Xtabline2
|
||||||
|
redrawtabline
|
||||||
|
call assert_match('^ Xtabline1 Xtabline2\s\+close$', Screenline(1))
|
||||||
|
set tabline=
|
||||||
|
%bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1053,
|
||||||
/**/
|
/**/
|
||||||
1052,
|
1052,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user