forked from aniani/vim
patch 8.1.2106: no tests for dragging the mouse beyond the window
Problem: No tests for dragging the mouse beyond the window. Solution: Add a test. (Dominique Pelle, closes #5004)
This commit is contained in:
parent
2886dcceba
commit
b4367b7fb6
@ -166,12 +166,12 @@ func Test_xterm_mouse_ctrl_click()
|
||||
call MouseCtrlLeftClick(row, col)
|
||||
call MouseLeftRelease(row, col)
|
||||
call assert_match('usr_02.txt$', bufname('%'), msg)
|
||||
call assert_equal('*usr_02.txt*', expand('<cWORD>'))
|
||||
call assert_equal('*usr_02.txt*', expand('<cWORD>'), msg)
|
||||
|
||||
call MouseCtrlRightClick(row, col)
|
||||
call MouseRightRelease(row, col)
|
||||
call assert_match('help.txt$', bufname('%'), msg)
|
||||
call assert_equal('|usr_02.txt|', expand('<cWORD>'))
|
||||
call assert_equal('|usr_02.txt|', expand('<cWORD>'), msg)
|
||||
|
||||
helpclose
|
||||
endfor
|
||||
@ -267,6 +267,93 @@ func Test_1xterm_mouse_wheel()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" Test that dragging beyond the window (at the bottom and at the top)
|
||||
" scrolls window content by the number of of lines beyond the window.
|
||||
func Test_term_mouse_drag_beyond_window()
|
||||
let save_mouse = &mouse
|
||||
let save_term = &term
|
||||
let save_ttymouse = &ttymouse
|
||||
call test_override('no_query_mouse', 1)
|
||||
set mouse=a term=xterm
|
||||
let col = 1
|
||||
call setline(1, range(1, 100))
|
||||
|
||||
" Split into 3 windows, and go into the middle window
|
||||
" so we test dragging mouse below and above the window.
|
||||
2split
|
||||
wincmd j
|
||||
2split
|
||||
|
||||
for ttymouse_val in s:ttymouse_values + s:ttymouse_dec
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
exe 'set ttymouse=' .. ttymouse_val
|
||||
|
||||
" Line #10 at the top.
|
||||
norm! 10zt
|
||||
redraw
|
||||
call assert_equal(10, winsaveview().topline, msg)
|
||||
call assert_equal(2, winheight(0), msg)
|
||||
|
||||
let row = 4
|
||||
call MouseLeftClick(row, col)
|
||||
call assert_equal(10, winsaveview().topline, msg)
|
||||
|
||||
" Drag downwards. We're still in the window so topline should
|
||||
" not change yet.
|
||||
let row += 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(10, winsaveview().topline, msg)
|
||||
|
||||
" We now leave the window at the bottom, so the window content should
|
||||
" scroll by 1 line, then 2 lines (etc) as we drag further away.
|
||||
let row += 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(11, winsaveview().topline, msg)
|
||||
|
||||
let row += 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(13, winsaveview().topline, msg)
|
||||
|
||||
" Now drag upwards.
|
||||
let row -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(14, winsaveview().topline, msg)
|
||||
|
||||
" We're now back in the window so the topline should not change.
|
||||
let row -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(14, winsaveview().topline, msg)
|
||||
|
||||
let row -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(14, winsaveview().topline, msg)
|
||||
|
||||
" We now leave the window at the top so the window content should
|
||||
" scroll by 1 line, then 2, then 3 (etc) in the opposite direction.
|
||||
let row -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(13, winsaveview().topline, msg)
|
||||
|
||||
let row -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(11, winsaveview().topline, msg)
|
||||
|
||||
let row -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(8, winsaveview().topline, msg)
|
||||
|
||||
call MouseLeftRelease(row, col)
|
||||
call assert_equal(8, winsaveview().topline, msg)
|
||||
call assert_equal(2, winheight(0), msg)
|
||||
endfor
|
||||
|
||||
let &mouse = save_mouse
|
||||
let &term = save_term
|
||||
let &ttymouse = save_ttymouse
|
||||
call test_override('no_query_mouse', 0)
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_term_mouse_drag_window_separator()
|
||||
let save_mouse = &mouse
|
||||
let save_term = &term
|
||||
|
@ -753,6 +753,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2106,
|
||||
/**/
|
||||
2105,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user