Mercurial > vim
comparison src/testdir/test_termcodes.vim @ 16481:8428e0edba1b v8.1.1244
patch 8.1.1244: no tests for CTRL-mouse-click
commit https://github.com/vim/vim/commit/1ee36d6ff5bc51a1ecb5631c3e5bb632b5d1bcfc
Author: Bram Moolenaar <Bram@vim.org>
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 01 May 2019 23:15:05 +0200 |
parents | fbc0b3b38c79 |
children | a4732cdcfaaf |
comparison
equal
deleted
inserted
replaced
16480:036443b6c6be | 16481:8428e0edba1b |
---|---|
30 | 30 |
31 func MouseMiddleClick(row, col) | 31 func MouseMiddleClick(row, col) |
32 call TerminalEscapeCode(0x21, 1, a:row, a:col, 'M') | 32 call TerminalEscapeCode(0x21, 1, a:row, a:col, 'M') |
33 endfunc | 33 endfunc |
34 | 34 |
35 func MouseCtrlLeftClick(row, col) | |
36 let ctrl = 0x10 | |
37 call TerminalEscapeCode(0x20 + ctrl, 0 + ctrl, a:row, a:col, 'M') | |
38 endfunc | |
39 | |
40 func MouseCtrlRightClick(row, col) | |
41 let ctrl = 0x10 | |
42 call TerminalEscapeCode(0x22 + ctrl, 2 + ctrl, a:row, a:col, 'M') | |
43 endfunc | |
44 | |
35 func MouseLeftRelease(row, col) | 45 func MouseLeftRelease(row, col) |
36 call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') | 46 call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') |
37 endfunc | 47 endfunc |
38 | 48 |
39 func MouseMiddleRelease(row, col) | 49 func MouseMiddleRelease(row, col) |
40 call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') | 50 call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') |
41 endfunc | 51 endfunc |
42 | 52 |
53 func MouseRightRelease(row, col) | |
54 call TerminalEscapeCode(0x23, 3, a:row, a:col, 'm') | |
55 endfunc | |
56 | |
43 func MouseLeftDrag(row, col) | 57 func MouseLeftDrag(row, col) |
44 call TerminalEscapeCode(0x43, 0x20, a:row, a:col, 'M') | 58 call TerminalEscapeCode(0x43, 0x20, a:row, a:col, 'M') |
45 endfunc | 59 endfunc |
46 | 60 |
47 func MouseWheelUp(row, col) | 61 func MouseWheelUp(row, col) |
60 set mouse=a term=xterm | 74 set mouse=a term=xterm |
61 call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer']) | 75 call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer']) |
62 | 76 |
63 for ttymouse_val in ['xterm2', 'sgr'] | 77 for ttymouse_val in ['xterm2', 'sgr'] |
64 let msg = 'ttymouse=' .. ttymouse_val | 78 let msg = 'ttymouse=' .. ttymouse_val |
65 exe 'set ttymouse=' . ttymouse_val | 79 exe 'set ttymouse=' .. ttymouse_val |
66 go | 80 go |
67 call assert_equal([0, 1, 1, 0], getpos('.'), msg) | 81 call assert_equal([0, 1, 1, 0], getpos('.'), msg) |
68 let row = 2 | 82 let row = 2 |
69 let col = 6 | 83 let col = 6 |
70 call MouseLeftClick(row, col) | 84 call MouseLeftClick(row, col) |
76 let &term = save_term | 90 let &term = save_term |
77 let &ttymouse = save_ttymouse | 91 let &ttymouse = save_ttymouse |
78 bwipe! | 92 bwipe! |
79 endfunc | 93 endfunc |
80 | 94 |
95 " Test that <C-LeftMouse> jumps to help tag and <C-RightMouse> jumps back. | |
96 func Test_xterm_mouse_ctrl_click() | |
97 let save_mouse = &mouse | |
98 let save_term = &term | |
99 let save_ttymouse = &ttymouse | |
100 set mouse=a term=xterm | |
101 | |
102 for ttymouse_val in ['xterm2', 'sgr'] | |
103 let msg = 'ttymouse=' .. ttymouse_val | |
104 exe 'set ttymouse=' .. ttymouse_val | |
105 help | |
106 /usr_02.txt | |
107 norm! zt | |
108 let row = 1 | |
109 let col = 1 | |
110 call MouseCtrlLeftClick(row, col) | |
111 call MouseLeftRelease(row, col) | |
112 call assert_match('usr_02.txt$', bufname('%'), msg) | |
113 call assert_equal('*usr_02.txt*', expand('<cWORD>')) | |
114 | |
115 call MouseCtrlRightClick(row, col) | |
116 call MouseLeftRelease(row, col) | |
117 call assert_match('help.txt$', bufname('%'), msg) | |
118 call assert_equal('|usr_02.txt|', expand('<cWORD>')) | |
119 | |
120 helpclose | |
121 endfor | |
122 | |
123 let &mouse = save_mouse | |
124 let &term = save_term | |
125 let &ttymouse = save_ttymouse | |
126 endfunc | |
127 | |
81 func Test_xterm_mouse_middle_click() | 128 func Test_xterm_mouse_middle_click() |
82 if !WorkingClipboard() | 129 if !WorkingClipboard() |
83 throw 'Skipped: No working clipboard' | 130 throw 'Skipped: No working clipboard' |
84 endif | 131 endif |
85 | 132 |
91 let @* = 'abc' | 138 let @* = 'abc' |
92 set mouse=a term=xterm | 139 set mouse=a term=xterm |
93 | 140 |
94 for ttymouse_val in ['xterm2', 'sgr'] | 141 for ttymouse_val in ['xterm2', 'sgr'] |
95 let msg = 'ttymouse=' .. ttymouse_val | 142 let msg = 'ttymouse=' .. ttymouse_val |
96 exe 'set ttymouse=' . ttymouse_val | 143 exe 'set ttymouse=' .. ttymouse_val |
97 call setline(1, ['123456789', '123456789']) | 144 call setline(1, ['123456789', '123456789']) |
98 | 145 |
99 " Middle-click in the middle of the line pastes text where clicked. | 146 " Middle-click in the middle of the line pastes text where clicked. |
100 let row = 1 | 147 let row = 1 |
101 let col = 6 | 148 let col = 6 |
132 set mouse=a term=xterm | 179 set mouse=a term=xterm |
133 call setline(1, range(1, 100)) | 180 call setline(1, range(1, 100)) |
134 | 181 |
135 for ttymouse_val in ['xterm2', 'sgr'] | 182 for ttymouse_val in ['xterm2', 'sgr'] |
136 let msg = 'ttymouse=' .. ttymouse_val | 183 let msg = 'ttymouse=' .. ttymouse_val |
137 exe 'set ttymouse=' . ttymouse_val | 184 exe 'set ttymouse=' .. ttymouse_val |
138 go | 185 go |
139 call assert_equal(1, line('w0'), msg) | 186 call assert_equal(1, line('w0'), msg) |
140 call assert_equal([0, 1, 1, 0], getpos('.'), msg) | 187 call assert_equal([0, 1, 1, 0], getpos('.'), msg) |
141 | 188 |
142 call MouseWheelDown(1, 1) | 189 call MouseWheelDown(1, 1) |
168 let save_ttymouse = &ttymouse | 215 let save_ttymouse = &ttymouse |
169 set mouse=a term=xterm | 216 set mouse=a term=xterm |
170 | 217 |
171 for ttymouse_val in ['xterm2', 'sgr'] | 218 for ttymouse_val in ['xterm2', 'sgr'] |
172 let msg = 'ttymouse=' .. ttymouse_val | 219 let msg = 'ttymouse=' .. ttymouse_val |
173 exe 'set ttymouse=' . ttymouse_val | 220 exe 'set ttymouse=' .. ttymouse_val |
174 | 221 |
175 " Split horizontally and test dragging the horizontal window separator. | 222 " Split horizontally and test dragging the horizontal window separator. |
176 split | 223 split |
177 let rowseparator = winheight(0) + 1 | 224 let rowseparator = winheight(0) + 1 |
178 let row = rowseparator | 225 let row = rowseparator |
225 let save_laststatus = &laststatus | 272 let save_laststatus = &laststatus |
226 set mouse=a term=xterm laststatus=2 | 273 set mouse=a term=xterm laststatus=2 |
227 | 274 |
228 for ttymouse_val in ['xterm2', 'sgr'] | 275 for ttymouse_val in ['xterm2', 'sgr'] |
229 let msg = 'ttymouse=' .. ttymouse_val | 276 let msg = 'ttymouse=' .. ttymouse_val |
230 exe 'set ttymouse=' . ttymouse_val | 277 exe 'set ttymouse=' .. ttymouse_val |
231 | 278 |
232 call assert_equal(1, &cmdheight, msg) | 279 call assert_equal(1, &cmdheight, msg) |
233 let rowstatusline = winheight(0) + 1 | 280 let rowstatusline = winheight(0) + 1 |
234 let row = rowstatusline | 281 let row = rowstatusline |
235 let col = 1 | 282 let col = 1 |
266 set mouse=a term=xterm | 313 set mouse=a term=xterm |
267 let row = 1 | 314 let row = 1 |
268 | 315 |
269 for ttymouse_val in ['xterm2', 'sgr'] | 316 for ttymouse_val in ['xterm2', 'sgr'] |
270 let msg = 'ttymouse=' .. ttymouse_val | 317 let msg = 'ttymouse=' .. ttymouse_val |
271 exe 'set ttymouse=' . ttymouse_val | 318 exe 'set ttymouse=' .. ttymouse_val |
272 e Xfoo | 319 e Xfoo |
273 tabnew Xbar | 320 tabnew Xbar |
274 | 321 |
275 let a = split(execute(':tabs'), "\n") | 322 let a = split(execute(':tabs'), "\n") |
276 call assert_equal(['Tab page 1', | 323 call assert_equal(['Tab page 1', |
318 if ttymouse_val ==# 'xterm2' && col > 223 | 365 if ttymouse_val ==# 'xterm2' && col > 223 |
319 " When 'ttymouse' is 'xterm2', row/col bigger than 223 are not supported. | 366 " When 'ttymouse' is 'xterm2', row/col bigger than 223 are not supported. |
320 continue | 367 continue |
321 endif | 368 endif |
322 let msg = 'ttymouse=' .. ttymouse_val | 369 let msg = 'ttymouse=' .. ttymouse_val |
323 exe 'set ttymouse=' . ttymouse_val | 370 exe 'set ttymouse=' .. ttymouse_val |
324 e Xtab1 | 371 e Xtab1 |
325 tabnew Xtab2 | 372 tabnew Xtab2 |
326 tabnew Xtab3 | 373 tabnew Xtab3 |
327 tabn 2 | 374 tabn 2 |
328 | 375 |
360 set mouse=a term=xterm mousetime=1 | 407 set mouse=a term=xterm mousetime=1 |
361 let row = 1 | 408 let row = 1 |
362 | 409 |
363 for ttymouse_val in ['xterm2', 'sgr'] | 410 for ttymouse_val in ['xterm2', 'sgr'] |
364 let msg = 'ttymouse=' .. ttymouse_val | 411 let msg = 'ttymouse=' .. ttymouse_val |
365 exe 'set ttymouse=' . ttymouse_val | 412 exe 'set ttymouse=' .. ttymouse_val |
366 e Xtab1 | 413 e Xtab1 |
367 tabnew Xtab2 | 414 tabnew Xtab2 |
368 | 415 |
369 let a = split(execute(':tabs'), "\n") | 416 let a = split(execute(':tabs'), "\n") |
370 call assert_equal(['Tab page 1', | 417 call assert_equal(['Tab page 1', |
409 let row = 1 | 456 let row = 1 |
410 let col = 10 | 457 let col = 10 |
411 | 458 |
412 for ttymouse_val in ['xterm2', 'sgr'] | 459 for ttymouse_val in ['xterm2', 'sgr'] |
413 let msg = 'ttymouse=' .. ttymouse_val | 460 let msg = 'ttymouse=' .. ttymouse_val |
414 exe 'set ttymouse=' . ttymouse_val | 461 exe 'set ttymouse=' .. ttymouse_val |
415 e Xtab1 | 462 e Xtab1 |
416 tabnew Xtab2 | 463 tabnew Xtab2 |
417 | 464 |
418 let a = split(execute(':tabs'), "\n") | 465 let a = split(execute(':tabs'), "\n") |
419 call assert_equal(['Tab page 1', | 466 call assert_equal(['Tab page 1', |