summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-04-13 22:13:23 +0200
committerBram Moolenaar <Bram@vim.org>2019-04-13 22:13:23 +0200
commit39f76c6ac0f5e07a0e608ddf920a67702ec83824 (patch)
treee2e2a4aeea507040f4ca7f029d046a3cf040159d
parent9c35d05f45e545825a15da07cc2f1c893c3789ee (diff)
downloadvim-git-39f76c6ac0f5e07a0e608ddf920a67702ec83824.tar.gz
patch 8.1.1167: no test for closing tab by click in tablinev8.1.1167
Problem: No test for closing tab by click in tabline. Solution: Add a test. Also fix that dragging window separator could fail in a large terminal. (Dominique Pelle, closes #4253)
-rw-r--r--src/testdir/test_termcodes.vim95
-rw-r--r--src/version.c2
2 files changed, 71 insertions, 26 deletions
diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim
index 9a8fe155f..958436cb4 100644
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -119,40 +119,38 @@ func Test_xterm_mouse_drag_window_separator()
let row = rowseparator
let col = 1
- if ttymouse_val ==# 'xterm' && row > 223
- " When 'ttymouse' is 'xterm', row/col bigger than 223 are not supported.
- continue
+ " When 'ttymouse' is 'xterm', row/col bigger than 223 are not supported.
+ if ttymouse_val !=# 'xterm' || row <= 223
+ call MouseLeftClick(row, col)
+ let row -= 1
+ call MouseLeftDrag(row, col)
+ call assert_equal(rowseparator - 1, winheight(0) + 1)
+ let row += 1
+ call MouseLeftDrag(row, col)
+ call assert_equal(rowseparator, winheight(0) + 1)
+ call MouseLeftRelease(row, col)
+ call assert_equal(rowseparator, winheight(0) + 1)
endif
-
- call MouseLeftClick(row, col)
-
- let row -= 1
- call MouseLeftDrag(row, col)
- call assert_equal(rowseparator - 1, winheight(0) + 1)
- let row += 1
- call MouseLeftDrag(row, col)
- call assert_equal(rowseparator, winheight(0) + 1)
- call MouseLeftRelease(row, col)
- call assert_equal(rowseparator, winheight(0) + 1)
-
bwipe!
" Split vertically and test dragging the vertical window separator.
vsplit
let colseparator = winwidth(0) + 1
-
let row = 1
let col = colseparator
- call MouseLeftClick(row, col)
- let col -= 1
- call MouseLeftDrag(row, col)
- call assert_equal(colseparator - 1, winwidth(0) + 1)
- let col += 1
- call MouseLeftDrag(row, col)
- call assert_equal(colseparator, winwidth(0) + 1)
- call MouseLeftRelease(row, col)
- call assert_equal(colseparator, winwidth(0) + 1)
+ " When 'ttymouse' is 'xterm', row/col bigger than 223 are not supported.
+ if ttymouse_val !=# 'xterm' || col <= 223
+ call MouseLeftClick(row, col)
+ let col -= 1
+ call MouseLeftDrag(row, col)
+ call assert_equal(colseparator - 1, winwidth(0) + 1)
+ let col += 1
+ call MouseLeftDrag(row, col)
+ call assert_equal(colseparator, winwidth(0) + 1)
+ call MouseLeftRelease(row, col)
+ call assert_equal(colseparator, winwidth(0) + 1)
+ endif
bwipe!
endfor
@@ -221,7 +219,7 @@ func Test_xterm_mouse_click_tab()
" Test clicking on tab names in the tabline at the top.
let col = 2
- redraw!
+ redraw
call MouseLeftClick(row, col)
call MouseLeftRelease(row, col)
let a = split(execute(':tabs'), "\n")
@@ -246,3 +244,48 @@ func Test_xterm_mouse_click_tab()
let &term = save_term
let &ttymouse = save_ttymouse
endfunc
+
+func Test_xterm_mouse_click_X_to_close_tab()
+ let save_mouse = &mouse
+ let save_term = &term
+ let save_ttymouse = &ttymouse
+ set mouse=a term=xterm
+ let row = 1
+ let col = &columns
+
+ for ttymouse_val in ['xterm', 'sgr']
+ if ttymouse_val ==# 'xterm' && col > 223
+ " When 'ttymouse' is 'xterm', row/col bigger than 223 are not supported.
+ continue
+ endif
+ exe 'set ttymouse=' . ttymouse_val
+ e Xtab1
+ tabnew Xtab2
+ tabnew Xtab3
+ tabn 2
+
+ let a = split(execute(':tabs'), "\n")
+ call assert_equal(['Tab page 1',
+ \ ' Xtab1',
+ \ 'Tab page 2',
+ \ '> Xtab2',
+ \ 'Tab page 3',
+ \ ' Xtab3'], a)
+
+ " Click on "X" in tabline to close current tab i.e. Xtab2.
+ redraw
+ call MouseLeftClick(row, col)
+ call MouseLeftRelease(row, col)
+ let a = split(execute(':tabs'), "\n")
+ call assert_equal(['Tab page 1',
+ \ ' Xtab1',
+ \ 'Tab page 2',
+ \ '> Xtab3'], a)
+
+ %bwipe!
+ endfor
+
+ let &mouse = save_mouse
+ let &term = save_term
+ let &ttymouse = save_ttymouse
+endfunc
diff --git a/src/version.c b/src/version.c
index cd7bb3f56..a12bd0945 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1167,
+/**/
1166,
/**/
1165,