0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

patch 8.1.1167: no test for closing tab by click in tabline

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)
This commit is contained in:
Bram Moolenaar
2019-04-13 22:13:23 +02:00
parent 9c35d05f45
commit 39f76c6ac0
2 changed files with 71 additions and 26 deletions

View File

@@ -119,13 +119,9 @@ 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
endif
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)
@@ -134,15 +130,17 @@ func Test_xterm_mouse_drag_window_separator()
call assert_equal(rowseparator, winheight(0) + 1)
call MouseLeftRelease(row, col)
call assert_equal(rowseparator, winheight(0) + 1)
endif
bwipe!
" Split vertically and test dragging the vertical window separator.
vsplit
let colseparator = winwidth(0) + 1
let row = 1
let col = colseparator
" 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)
@@ -152,7 +150,7 @@ func Test_xterm_mouse_drag_window_separator()
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

View File

@@ -771,6 +771,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1167,
/**/
1166,
/**/