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',