aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir/test_tabline.vim
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-07-10 15:56:42 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-07-10 16:15:17 +0800
commitfe2b281292b61add9042591c6dd1d08205ecd9c1 (patch)
treebd00efac79578d999b1a57d7028cc0d97c36c6d6 /src/nvim/testdir/test_tabline.vim
parent59355653f625373453238d615fd0f5924ccb60ff (diff)
downloadrneovim-fe2b281292b61add9042591c6dd1d08205ecd9c1.tar.gz
rneovim-fe2b281292b61add9042591c6dd1d08205ecd9c1.tar.bz2
rneovim-fe2b281292b61add9042591c6dd1d08205ecd9c1.zip
vim-patch:8.2.1053: insufficient testing for 'statusline' and 'tabline'
Problem: Insufficient testing for 'statusline' and 'tabline'. Solution: Add more tests. (Yegappan Lakshmanan, closes vim/vim#6333) https://github.com/vim/vim/commit/832adf9bb8cd39d8e982d8a35ed8a6d39b974494
Diffstat (limited to 'src/nvim/testdir/test_tabline.vim')
-rw-r--r--src/nvim/testdir/test_tabline.vim41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_tabline.vim b/src/nvim/testdir/test_tabline.vim
index f299c971b7..e58a412c5a 100644
--- a/src/nvim/testdir/test_tabline.vim
+++ b/src/nvim/testdir/test_tabline.vim
@@ -72,6 +72,47 @@ func Test_redrawtabline()
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
+
function EmptyTabname()
return ""
endfunction