# HG changeset patch # User Bram Moolenaar # Date 1556745305 -7200 # Node ID 8428e0edba1b7a4a85c68e5a6c8ae0eeccf99e28 # Parent 036443b6c6be1932e4018bec74cb946c4dab3243 patch 8.1.1244: no tests for CTRL-mouse-click commit https://github.com/vim/vim/commit/1ee36d6ff5bc51a1ecb5631c3e5bb632b5d1bcfc Author: Bram Moolenaar Date: Wed May 1 23:13:56 2019 +0200 patch 8.1.1244: no tests for CTRL-mouse-click Problem: No tests for CTRL-mouse-click. Solution: Add a few tests. (Dominique Pelle, closes https://github.com/vim/vim/issues/4323) diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim --- a/src/testdir/test_termcodes.vim +++ b/src/testdir/test_termcodes.vim @@ -32,6 +32,16 @@ func MouseMiddleClick(row, col) call TerminalEscapeCode(0x21, 1, a:row, a:col, 'M') endfunc +func MouseCtrlLeftClick(row, col) + let ctrl = 0x10 + call TerminalEscapeCode(0x20 + ctrl, 0 + ctrl, a:row, a:col, 'M') +endfunc + +func MouseCtrlRightClick(row, col) + let ctrl = 0x10 + call TerminalEscapeCode(0x22 + ctrl, 2 + ctrl, a:row, a:col, 'M') +endfunc + func MouseLeftRelease(row, col) call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') endfunc @@ -40,6 +50,10 @@ func MouseMiddleRelease(row, col) call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') endfunc +func MouseRightRelease(row, col) + call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') +endfunc + func MouseLeftDrag(row, col) call TerminalEscapeCode(0x43, 0x20, a:row, a:col, 'M') endfunc @@ -62,7 +76,7 @@ func Test_xterm_mouse_left_click() for ttymouse_val in ['xterm2', 'sgr'] let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val go call assert_equal([0, 1, 1, 0], getpos('.'), msg) let row = 2 @@ -78,6 +92,39 @@ func Test_xterm_mouse_left_click() bwipe! endfunc +" Test that jumps to help tag and jumps back. +func Test_xterm_mouse_ctrl_click() + let save_mouse = &mouse + let save_term = &term + let save_ttymouse = &ttymouse + set mouse=a term=xterm + + for ttymouse_val in ['xterm2', 'sgr'] + let msg = 'ttymouse=' .. ttymouse_val + exe 'set ttymouse=' .. ttymouse_val + help + /usr_02.txt + norm! zt + let row = 1 + let col = 1 + call MouseCtrlLeftClick(row, col) + call MouseLeftRelease(row, col) + call assert_match('usr_02.txt$', bufname('%'), msg) + call assert_equal('*usr_02.txt*', expand('')) + + call MouseCtrlRightClick(row, col) + call MouseLeftRelease(row, col) + call assert_match('help.txt$', bufname('%'), msg) + call assert_equal('|usr_02.txt|', expand('')) + + helpclose + endfor + + let &mouse = save_mouse + let &term = save_term + let &ttymouse = save_ttymouse +endfunc + func Test_xterm_mouse_middle_click() if !WorkingClipboard() throw 'Skipped: No working clipboard' @@ -93,7 +140,7 @@ func Test_xterm_mouse_middle_click() for ttymouse_val in ['xterm2', 'sgr'] let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val call setline(1, ['123456789', '123456789']) " Middle-click in the middle of the line pastes text where clicked. @@ -134,7 +181,7 @@ func Test_xterm_mouse_wheel() for ttymouse_val in ['xterm2', 'sgr'] let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val go call assert_equal(1, line('w0'), msg) call assert_equal([0, 1, 1, 0], getpos('.'), msg) @@ -170,7 +217,7 @@ func Test_xterm_mouse_drag_window_separa for ttymouse_val in ['xterm2', 'sgr'] let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val " Split horizontally and test dragging the horizontal window separator. split @@ -227,7 +274,7 @@ func Test_xterm_mouse_drag_statusline() for ttymouse_val in ['xterm2', 'sgr'] let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val call assert_equal(1, &cmdheight, msg) let rowstatusline = winheight(0) + 1 @@ -268,7 +315,7 @@ func Test_xterm_mouse_click_tab() for ttymouse_val in ['xterm2', 'sgr'] let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val e Xfoo tabnew Xbar @@ -320,7 +367,7 @@ func Test_xterm_mouse_click_X_to_close_t continue endif let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val e Xtab1 tabnew Xtab2 tabnew Xtab3 @@ -362,7 +409,7 @@ func Test_xterm_mouse_drag_to_move_tab() for ttymouse_val in ['xterm2', 'sgr'] let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val e Xtab1 tabnew Xtab2 @@ -411,7 +458,7 @@ func Test_xterm_mouse_double_click_to_cr for ttymouse_val in ['xterm2', 'sgr'] let msg = 'ttymouse=' .. ttymouse_val - exe 'set ttymouse=' . ttymouse_val + exe 'set ttymouse=' .. ttymouse_val e Xtab1 tabnew Xtab2 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -768,6 +768,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1244, +/**/ 1243, /**/ 1242,