]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline' v8.2.1053
authorBram Moolenaar <Bram@vim.org>
Thu, 25 Jun 2020 17:01:36 +0000 (19:01 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 25 Jun 2020 17:01:36 +0000 (19:01 +0200)
Problem:    Insufficient testing for 'statusline' and 'tabline'.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6333)

src/testdir/test_autocmd.vim
src/testdir/test_statusline.vim
src/testdir/test_tabline.vim
src/version.c

index e8f513a055891c7cf4d44370ed10e5482d54f8a4..d7328c3e0a5a553f02fbe26f73893b1c207b8486 100644 (file)
@@ -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
 
index 708686b0be87a007a1338c9c0c424eb5abebf609..f73998a67002bf21d6e2a2c47c324409c04d68be 100644 (file)
@@ -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
index 383d23984cf2bde107902b3e4802df795b322c8e..eff95082cc57a14bfcd86f461620d006e79976de 100644 (file)
@@ -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
index b85dc2936d291c2b623e2b6ea2d6164f57c2fdba..c1957e41a6e72bc89dd22ab08bbdf83af444a968 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1053,
 /**/
     1052,
 /**/