diff options
-rw-r--r-- | test/old/testdir/mouse.vim | 4 | ||||
-rw-r--r-- | test/old/testdir/test_selectmode.vim | 11 | ||||
-rw-r--r-- | test/old/testdir/test_termcodes.vim | 157 |
3 files changed, 166 insertions, 6 deletions
diff --git a/test/old/testdir/mouse.vim b/test/old/testdir/mouse.vim index 119f4725cf..a3b0ddd008 100644 --- a/test/old/testdir/mouse.vim +++ b/test/old/testdir/mouse.vim @@ -1,5 +1,9 @@ " Helper functions for generating mouse events +let g:Ttymouse_values = ['sgr'] +let g:Ttymouse_dec = [] +let g:Ttymouse_netterm = [] + func MouseLeftClick(row, col) call nvim_input_mouse('left', 'press', '', 0, a:row - 1, a:col - 1) call getchar(1) diff --git a/test/old/testdir/test_selectmode.vim b/test/old/testdir/test_selectmode.vim index c72e345efd..d1afd5204f 100644 --- a/test/old/testdir/test_selectmode.vim +++ b/test/old/testdir/test_selectmode.vim @@ -163,7 +163,7 @@ endfunc " Test double/triple/quadruple click to start 'select' mode func Test_term_mouse_multiple_clicks_to_select_mode() let save_mouse = &mouse - " let save_term = &term + let save_term = &term " let save_ttymouse = &ttymouse " call test_override('no_query_mouse', 1) " set mouse=a term=xterm mousetime=200 @@ -171,10 +171,9 @@ func Test_term_mouse_multiple_clicks_to_select_mode() set selectmode=mouse new - " for ttymouse_val in g:Ttymouse_values + g:Ttymouse_dec - " let msg = 'ttymouse=' .. ttymouse_val - " exe 'set ttymouse=' .. ttymouse_val - let msg = '' + for ttymouse_val in g:Ttymouse_values + g:Ttymouse_dec + let msg = 'ttymouse=' .. ttymouse_val + " exe 'set ttymouse=' .. ttymouse_val " Single-click and drag should 'select' the characters call setline(1, ['foo [foo bar] foo', 'foo']) @@ -247,7 +246,7 @@ func Test_term_mouse_multiple_clicks_to_select_mode() call assert_equal("\<c-s>", mode(), msg) norm! x call assert_equal(['axaa', 'bxbb'], getline(1, '$'), msg) - " endfor + endfor let &mouse = save_mouse " let &term = save_term diff --git a/test/old/testdir/test_termcodes.vim b/test/old/testdir/test_termcodes.vim index 99bc2d1d37..8587659334 100644 --- a/test/old/testdir/test_termcodes.vim +++ b/test/old/testdir/test_termcodes.vim @@ -1,4 +1,161 @@ +source check.vim +" CheckNotGui +" CheckUnix + +source shared.vim +source mouse.vim +source view_util.vim +source term_util.vim + +func Test_xterm_mouse_click() + new + let save_mouse = &mouse + let save_term = &term + " let save_ttymouse = &ttymouse + " set mouse=a term=xterm + set mouse=a + call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer']) + for ttymouse_val in ['sgr'] + " exe 'set ttymouse=' . ttymouse_val + go + call assert_equal([0, 1, 1, 0], getpos('.')) + let row = 2 + let col = 6 + call MouseLeftClick(row, col) + call MouseLeftRelease(row, col) + call assert_equal([0, 2, 6, 0], getpos('.')) + endfor + + let &mouse = save_mouse + " let &term = save_term + " let &ttymouse = save_ttymouse + bwipe! +endfunc + +func Test_xterm_mouse_wheel() + new + let save_mouse = &mouse + let save_term = &term + " let save_ttymouse = &ttymouse + " set mouse=a term=xterm + set mouse=a + call setline(1, range(1, 100)) + + for ttymouse_val in ['sgr'] + " exe 'set ttymouse=' . ttymouse_val + go + call assert_equal(1, line('w0')) + call assert_equal([0, 1, 1, 0], getpos('.')) + + call MouseWheelDown(1, 1) + call assert_equal(4, line('w0')) + call assert_equal([0, 4, 1, 0], getpos('.')) + + call MouseWheelDown(1, 1) + call assert_equal(7, line('w0')) + call assert_equal([0, 7, 1, 0], getpos('.')) + + call MouseWheelUp(1, 1) + call assert_equal(4, line('w0')) + call assert_equal([0, 7, 1, 0], getpos('.')) + + call MouseWheelUp(1, 1) + call assert_equal(1, line('w0')) + call assert_equal([0, 7, 1, 0], getpos('.')) + endfor + + let &mouse = save_mouse + " let &term = save_term + " let &ttymouse = save_ttymouse + bwipe! +endfunc + +func Test_xterm_mouse_drag_window_separator() + let save_mouse = &mouse + let save_term = &term + " let save_ttymouse = &ttymouse + " set mouse=a term=xterm + set mouse=a + + for ttymouse_val in ['sgr'] + " exe 'set ttymouse=' . ttymouse_val + + " Split horizontally and test dragging the horizontal window separator. + split + let rowseparator = winheight(0) + 1 + let row = rowseparator + let col = 1 + 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) + + bwipe! + endfor + + let &mouse = save_mouse + " let &term = save_term + " let &ttymouse = save_ttymouse +endfunc + +func Test_xterm_mouse_drag_statusline() + let save_mouse = &mouse + let save_term = &term + " let save_ttymouse = &ttymouse + " set mouse=a term=xterm + set mouse=a + + for ttymouse_val in ['sgr'] + " exe 'set ttymouse=' . ttymouse_val + + call assert_equal(1, &cmdheight) + let rowstatusline = winheight(0) + 1 + let row = rowstatusline + let col = 1 + call MouseLeftClick(row, col) + let row -= 1 + call MouseLeftDrag(row, col) + call assert_equal(2, &cmdheight) + call assert_equal(rowstatusline - 1, winheight(0) + 1) + let row += 1 + call MouseLeftDrag(row, col) + call assert_equal(1, &cmdheight) + call assert_equal(rowstatusline, winheight(0) + 1) + call MouseLeftRelease(row, col) + call assert_equal(1, &cmdheight) + call assert_equal(rowstatusline, winheight(0) + 1) + endfor + + let &mouse = save_mouse + " let &term = save_term + " let &ttymouse = save_ttymouse +endfunc + " Test for translation of special key codes (<xF1>, <xF2>, etc.) func Test_Keycode_Translation() let keycodes = [ |