diff src/testdir/test_tabline.vim @ 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 325e4a8ba1b6
children 53ff4dfe6e11
line wrap: on
line diff
--- 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