changeset 21004:0650d220f742 v8.2.1053

patch 8.2.1053: insufficient testing for 'statusline' and 'tabline' Commit: https://github.com/vim/vim/commit/832adf9bb8cd39d8e982d8a35ed8a6d39b974494 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jun 25 19:01:36 2020 +0200 patch 8.2.1053: insufficient testing for 'statusline' and 'tabline' Problem: Insufficient testing for 'statusline' and 'tabline'. Solution: Add more tests. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/6333)
author Bram Moolenaar <Bram@vim.org>
date Thu, 25 Jun 2020 19:15:25 +0200
parents fd0cff8d489b
children 3f0abea9bed2
files src/testdir/test_autocmd.vim src/testdir/test_statusline.vim src/testdir/test_tabline.vim src/version.c
diffstat 4 files changed, 81 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -2585,7 +2585,7 @@ func Test_autocmd_window()
   edit one.txt
   tabnew two.txt
   let g:blist = []
-  augroup aucmd_win_test
+  augroup aucmd_win_test1
     au!
     au BufEnter * call add(g:blist, [expand('<afile>'),
           \ win_gettype(bufwinnr(expand('<afile>')))])
@@ -2594,10 +2594,29 @@ func Test_autocmd_window()
   doautoall BufEnter
   call assert_equal([['one.txt', 'autocmd'], ['two.txt', '']], g:blist)
 
-  augroup aucmd_win_test
+  augroup aucmd_win_test1
     au!
   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!
 endfunc
 
--- a/src/testdir/test_statusline.vim
+++ b/src/testdir/test_statusline.vim
@@ -1,10 +1,7 @@
 " Test 'statusline'
 "
 " Not tested yet:
-"   %a
 "   %N
-"   %T
-"   %X
 
 source view_util.vim
 source check.vim
@@ -105,6 +102,18 @@ func Test_statusline()
   set statusline=%F
   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 ",HLP".
   set statusline=%h,%H
@@ -423,3 +432,5 @@ func Test_statusline_removed_group()
   call StopVimInTerminal(buf)
   call delete('XTest_statusline')
 endfunc
+
+" vim: shiftwidth=2 sts=2 expandtab
--- a/src/testdir/test_tabline.vim
+++ b/src/testdir/test_tabline.vim
@@ -70,3 +70,46 @@ func Test_redrawtabline()
   let &showtabline = showtabline_save
   au! Bufadd
 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
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1053,
+/**/
     1052,
 /**/
     1051,