diff src/testdir/test_termcodes.vim @ 16320:57e0f6b4a87d v8.1.1165

patch 8.1.1165: no test for mouse clicks in the terminal tabpage line commit https://github.com/vim/vim/commit/ca57ab54d759a3e265b19bbe31b57dfed00bbdd0 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Apr 13 14:53:16 2019 +0200 patch 8.1.1165: no test for mouse clicks in the terminal tabpage line Problem: No test for mouse clicks in the terminal tabpage line. Solution: Add a test. (Dominique Pelle, closes https://github.com/vim/vim/issues/4247). Also init TabPageIdxs[], in case it's used before a redraw.
author Bram Moolenaar <Bram@vim.org>
date Sat, 13 Apr 2019 15:00:05 +0200
parents 5b8b849dc3aa
children 6b2412d0509f
line wrap: on
line diff
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -165,7 +165,8 @@ func Test_xterm_mouse_drag_statusline()
   let save_mouse = &mouse
   let save_term = &term
   let save_ttymouse = &ttymouse
-  set mouse=a term=xterm
+  let save_laststatus = &laststatus
+  set mouse=a term=xterm laststatus=2
 
   for ttymouse_val in ['xterm', 'sgr']
     exe 'set ttymouse=' . ttymouse_val
@@ -197,4 +198,51 @@ func Test_xterm_mouse_drag_statusline()
   let &mouse = save_mouse
   let &term = save_term
   let &ttymouse = save_ttymouse
+  let &laststatus = save_laststatus
 endfunc
+
+func Test_xterm_mouse_click_tab()
+  let save_mouse = &mouse
+  let save_term = &term
+  let save_ttymouse = &ttymouse
+  set mouse=a term=xterm
+  let row = 1
+
+  for ttymouse_val in ['xterm', 'sgr']
+    exe 'set ttymouse=' . ttymouse_val
+    e Xfoo
+    tabnew Xbar
+
+    let a = split(execute(':tabs'), "\n")
+    call assert_equal(['Tab page 1',
+        \              '    Xfoo',
+        \              'Tab page 2',
+        \              '>   Xbar'], a)
+
+    " Test clicking on tab names in the tabline at the top.
+    let col = 2
+    redraw!
+    call MouseLeftClick(row, col)
+    call MouseLeftRelease(row, col)
+    let a = split(execute(':tabs'), "\n")
+    call assert_equal(['Tab page 1',
+        \              '>   Xfoo',
+        \              'Tab page 2',
+        \              '    Xbar'], a)
+
+    let col = 9
+    call MouseLeftClick(row, col)
+    call MouseLeftRelease(row, col)
+    let a = split(execute(':tabs'), "\n")
+    call assert_equal(['Tab page 1',
+        \              '    Xfoo',
+        \              'Tab page 2',
+        \              '>   Xbar'], a)
+
+    %bwipe!
+  endfor
+
+  let &mouse = save_mouse
+  let &term = save_term
+  let &ttymouse = save_ttymouse
+endfunc