Mercurial > vim
comparison src/testdir/test_termcodes.vim @ 21325:f68b121daa47 v8.2.1213
patch 8.2.1213: mouse codes not tested sufficiently
Commit: https://github.com/vim/vim/commit/297bec07311e512ef625a48b0af8bdca8118f131
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jul 14 22:11:04 2020 +0200
patch 8.2.1213: mouse codes not tested sufficiently
Problem: Mouse codes not tested sufficiently.
Solution: Add more tests for mouse codes. (closes https://github.com/vim/vim/issues/6436)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 14 Jul 2020 22:15:05 +0200 |
parents | d0265fdadec9 |
children | e00467b9f5de |
comparison
equal
deleted
inserted
replaced
21324:e56692e9c20a | 21325:f68b121daa47 |
---|---|
108 call test_override('no_query_mouse', 0) | 108 call test_override('no_query_mouse', 0) |
109 bwipe! | 109 bwipe! |
110 endfunc | 110 endfunc |
111 | 111 |
112 " Test that <C-LeftMouse> jumps to help tag and <C-RightMouse> jumps back. | 112 " Test that <C-LeftMouse> jumps to help tag and <C-RightMouse> jumps back. |
113 func Test_xterm_mouse_ctrl_click() | 113 " Also test for g<LeftMouse> and g<RightMouse>. |
114 func Test_xterm_mouse_tagjump() | |
114 let save_mouse = &mouse | 115 let save_mouse = &mouse |
115 let save_term = &term | 116 let save_term = &term |
116 let save_ttymouse = &ttymouse | 117 let save_ttymouse = &ttymouse |
117 set mouse=a term=xterm | 118 set mouse=a term=xterm |
118 | 119 |
120 let msg = 'ttymouse=' .. ttymouse_val | 121 let msg = 'ttymouse=' .. ttymouse_val |
121 exe 'set ttymouse=' .. ttymouse_val | 122 exe 'set ttymouse=' .. ttymouse_val |
122 help | 123 help |
123 /usr_02.txt | 124 /usr_02.txt |
124 norm! zt | 125 norm! zt |
126 | |
127 " CTRL-left click to jump to a tag | |
125 let row = 1 | 128 let row = 1 |
126 let col = 1 | 129 let col = 1 |
127 call MouseCtrlLeftClick(row, col) | 130 call MouseCtrlLeftClick(row, col) |
128 call MouseLeftRelease(row, col) | 131 call MouseLeftRelease(row, col) |
129 call assert_match('usr_02.txt$', bufname('%'), msg) | 132 call assert_match('usr_02.txt$', bufname('%'), msg) |
130 call assert_equal('*usr_02.txt*', expand('<cWORD>'), msg) | 133 call assert_equal('*usr_02.txt*', expand('<cWORD>'), msg) |
131 | 134 |
135 " CTRL-right click to pop a tag | |
132 call MouseCtrlRightClick(row, col) | 136 call MouseCtrlRightClick(row, col) |
133 call MouseRightRelease(row, col) | 137 call MouseRightRelease(row, col) |
134 call assert_match('help.txt$', bufname('%'), msg) | 138 call assert_match('help.txt$', bufname('%'), msg) |
135 call assert_equal('|usr_02.txt|', expand('<cWORD>'), msg) | 139 call assert_equal('|usr_02.txt|', expand('<cWORD>'), msg) |
136 | 140 |
137 helpclose | 141 " Jump to a tag |
142 exe "normal \<C-]>" | |
143 call assert_match('usr_02.txt$', bufname('%'), msg) | |
144 call assert_equal('*usr_02.txt*', expand('<cWORD>'), msg) | |
145 | |
146 " Use CTRL-right click in insert mode to pop the tag | |
147 new | |
148 let str = 'iHello' .. MouseCtrlRightClickCode(row, col) | |
149 \ .. MouseRightReleaseCode(row, col) .. "\<C-C>" | |
150 call assert_fails('call feedkeys(str, "Lx!")', 'E37:') | |
151 close! | |
152 | |
153 " CTRL-right click with a count | |
154 let str = "4" .. MouseCtrlRightClickCode(row, col) | |
155 \ .. MouseRightReleaseCode(row, col) | |
156 call assert_fails('call feedkeys(str, "Lx!")', 'E555:') | |
157 call assert_match('help.txt$', bufname('%'), msg) | |
158 call assert_equal(1, line('.'), msg) | |
159 | |
160 " g<LeftMouse> to jump to a tag | |
161 /usr_02.txt | |
162 norm! zt | |
163 call test_setmouse(row, col) | |
164 exe "normal g\<LeftMouse>" | |
165 call assert_match('usr_02.txt$', bufname('%'), msg) | |
166 call assert_equal('*usr_02.txt*', expand('<cWORD>'), msg) | |
167 | |
168 " g<RightMouse> to pop to a tag | |
169 call test_setmouse(row, col) | |
170 exe "normal g\<RightMouse>" | |
171 call assert_match('help.txt$', bufname('%'), msg) | |
172 call assert_equal('|usr_02.txt|', expand('<cWORD>'), msg) | |
173 | |
174 %bw! | |
138 endfor | 175 endfor |
139 | 176 |
140 let &mouse = save_mouse | 177 let &mouse = save_mouse |
141 let &term = save_term | 178 let &term = save_term |
142 let &ttymouse = save_ttymouse | 179 let &ttymouse = save_ttymouse |
149 let save_mouse = &mouse | 186 let save_mouse = &mouse |
150 let save_term = &term | 187 let save_term = &term |
151 let save_ttymouse = &ttymouse | 188 let save_ttymouse = &ttymouse |
152 call test_override('no_query_mouse', 1) | 189 call test_override('no_query_mouse', 1) |
153 let save_quotestar = @* | 190 let save_quotestar = @* |
154 let @* = 'abc' | 191 let save_quoteplus = @+ |
155 set mouse=a term=xterm | 192 set mouse=a term=xterm |
156 | 193 |
157 for ttymouse_val in g:Ttymouse_values + g:Ttymouse_dec | 194 for ttymouse_val in g:Ttymouse_values + g:Ttymouse_dec |
158 let msg = 'ttymouse=' .. ttymouse_val | 195 let msg = 'ttymouse=' .. ttymouse_val |
159 exe 'set ttymouse=' .. ttymouse_val | 196 exe 'set ttymouse=' .. ttymouse_val |
160 call setline(1, ['123456789', '123456789']) | 197 call setline(1, ['123456789', '123456789']) |
198 let @* = 'abc' | |
161 | 199 |
162 " Middle-click in the middle of the line pastes text where clicked. | 200 " Middle-click in the middle of the line pastes text where clicked. |
163 let row = 1 | 201 let row = 1 |
164 let col = 6 | 202 let col = 6 |
165 call MouseMiddleClick(row, col) | 203 call MouseMiddleClick(row, col) |
176 let row = 5 | 214 let row = 5 |
177 let col = 3 | 215 let col = 3 |
178 call MouseMiddleClick(row, col) | 216 call MouseMiddleClick(row, col) |
179 call MouseMiddleRelease(row, col) | 217 call MouseMiddleRelease(row, col) |
180 call assert_equal(['12345abc6789abc', '12abc3456789'], getline(1, '$'), msg) | 218 call assert_equal(['12345abc6789abc', '12abc3456789'], getline(1, '$'), msg) |
219 | |
220 " Middle mouse click in operator pending mode beeps | |
221 call assert_beeps('exe "normal c\<MiddleMouse>"') | |
222 | |
223 " Clicking middle mouse in visual mode, yanks the selection and pastes the | |
224 " clipboard contents | |
225 let save_clipboard = &clipboard | |
226 set clipboard= | |
227 let @" = '' | |
228 call cursor(1, 1) | |
229 call feedkeys("v3l" .. | |
230 \ MouseMiddleClickCode(2, 7) .. MouseMiddleReleaseCode(2, 7), 'Lx!') | |
231 call assert_equal(['12345abc6789abc', '12abc3abc456789'], | |
232 \ getline(1, '$'), msg) | |
233 call assert_equal('1234', @") | |
234 let &clipboard = save_clipboard | |
235 | |
236 " Clicking middle mouse in select mode, replaces the selected text with | |
237 " the clipboard contents | |
238 let @+ = 'xyz' | |
239 call cursor(1, 3) | |
240 exe "normal gh\<Right>\<Right>\<MiddleMouse>" | |
241 call assert_equal(['12xyzabc6789abc', '12abc3abc456789'], | |
242 \ getline(1, '$'), msg) | |
181 endfor | 243 endfor |
182 | 244 |
183 let &mouse = save_mouse | 245 let &mouse = save_mouse |
184 let &term = save_term | 246 let &term = save_term |
185 let &ttymouse = save_ttymouse | 247 let &ttymouse = save_ttymouse |
186 call test_override('no_query_mouse', 0) | 248 call test_override('no_query_mouse', 0) |
187 let @* = save_quotestar | 249 let @* = save_quotestar |
250 let @+ = save_quotestar | |
188 bwipe! | 251 bwipe! |
252 endfunc | |
253 | |
254 " If clipboard is not working, then clicking the middle mouse button in visual | |
255 " mode, will copy and paste the selected text. | |
256 func Test_term_mouse_middle_click_no_clipboard() | |
257 if has('clipboard_working') | |
258 throw 'Skipped: clipboard support works' | |
259 return | |
260 endif | |
261 new | |
262 let save_mouse = &mouse | |
263 let save_term = &term | |
264 let save_ttymouse = &ttymouse | |
265 call test_override('no_query_mouse', 1) | |
266 set mouse=a term=xterm | |
267 | |
268 for ttymouse_val in g:Ttymouse_values + g:Ttymouse_dec | |
269 let msg = 'ttymouse=' .. ttymouse_val | |
270 exe 'set ttymouse=' .. ttymouse_val | |
271 call setline(1, ['123456789', '123456789']) | |
272 | |
273 " Clicking middle mouse in visual mode, yanks the selection and pastes it | |
274 call cursor(1, 1) | |
275 call feedkeys("v3l" .. | |
276 \ MouseMiddleClickCode(2, 7) .. MouseMiddleReleaseCode(2, 7), 'Lx!') | |
277 call assert_equal(['123456789', '1234561234789'], | |
278 \ getline(1, '$'), msg) | |
279 endfor | |
280 | |
281 call test_override('no_query_mouse', 0) | |
282 let &ttymouse = save_ttymouse | |
283 let &term = save_term | |
284 let &mouse = save_mouse | |
285 close! | |
286 endfunc | |
287 | |
288 func Test_term_mouse_middle_click_insert_mode() | |
289 CheckFeature clipboard_working | |
290 | |
291 new | |
292 let save_mouse = &mouse | |
293 let save_term = &term | |
294 let save_ttymouse = &ttymouse | |
295 call test_override('no_query_mouse', 1) | |
296 set mouse=a term=xterm | |
297 | |
298 for ttymouse_val in g:Ttymouse_values + g:Ttymouse_dec | |
299 let msg = 'ttymouse=' .. ttymouse_val | |
300 exe 'set ttymouse=' .. ttymouse_val | |
301 call setline(1, ['123456789', '123456789']) | |
302 let @* = 'abc' | |
303 | |
304 " Middle-click in inesrt mode doesn't move the cursor but inserts the | |
305 " contents of aregister | |
306 call cursor(1, 4) | |
307 call feedkeys('i' .. | |
308 \ MouseMiddleClickCode(2, 7) .. MouseMiddleReleaseCode(2, 7) .. | |
309 \ "\<C-C>", 'Lx!') | |
310 call assert_equal(['123abc456789', '123456789'], | |
311 \ getline(1, '$'), msg) | |
312 call assert_equal([1, 6], [line('.'), col('.')]) | |
313 | |
314 " Middle-click in replace mode | |
315 call cursor(1, 1) | |
316 call feedkeys('$R' .. | |
317 \ MouseMiddleClickCode(2, 7) .. MouseMiddleReleaseCode(2, 7) .. | |
318 \ "\<C-C>", 'Lx!') | |
319 call assert_equal(['123abc45678abc', '123456789'], | |
320 \ getline(1, '$'), msg) | |
321 call assert_equal([1, 14], [line('.'), col('.')]) | |
322 endfor | |
323 | |
324 let &mouse = save_mouse | |
325 let &term = save_term | |
326 let &ttymouse = save_ttymouse | |
327 call test_override('no_query_mouse', 0) | |
328 close! | |
329 endfunc | |
330 | |
331 " Test for switching window using mouse in insert mode | |
332 func Test_term_mouse_switch_win_insert_mode() | |
333 5new | |
334 let save_mouse = &mouse | |
335 let save_term = &term | |
336 let save_ttymouse = &ttymouse | |
337 call test_override('no_query_mouse', 1) | |
338 set mouse=a term=xterm ttymouse=xterm2 | |
339 | |
340 call feedkeys('ivim' .. | |
341 \ MouseLeftClickCode(8, 6) .. MouseLeftReleaseCode(8, 6) .. | |
342 \ "\<C-C>", 'Lx!') | |
343 call assert_equal(2, winnr()) | |
344 wincmd w | |
345 call assert_equal('n', mode()) | |
346 call assert_equal(['vim'], getline(1, '$')) | |
347 | |
348 let &mouse = save_mouse | |
349 let &term = save_term | |
350 let &ttymouse = save_ttymouse | |
351 call test_override('no_query_mouse', 0) | |
352 close! | |
353 endfunc | |
354 | |
355 " Test for using the mouse to increaes the height of the cmdline window | |
356 func Test_mouse_cmdwin_resize() | |
357 let save_mouse = &mouse | |
358 let save_term = &term | |
359 let save_ttymouse = &ttymouse | |
360 call test_override('no_query_mouse', 1) | |
361 set mouse=a term=xterm ttymouse=xterm2 | |
362 5new | |
363 redraw! | |
364 | |
365 let h = 0 | |
366 let row = &lines - &cmdwinheight - 2 | |
367 call feedkeys("q:" .. | |
368 \ MouseLeftClickCode(row, 1) .. | |
369 \ MouseLeftDragCode(row - 1, 1) .. | |
370 \ MouseLeftReleaseCode(row - 2, 1) .. | |
371 \ "alet h = \<C-R>=winheight(0)\<CR>\<CR>", 'Lx!') | |
372 call assert_equal(&cmdwinheight + 2, h) | |
373 | |
374 let &mouse = save_mouse | |
375 let &term = save_term | |
376 let &ttymouse = save_ttymouse | |
377 call test_override('no_query_mouse', 0) | |
378 close! | |
189 endfunc | 379 endfunc |
190 | 380 |
191 " TODO: for unclear reasons this test fails if it comes after | 381 " TODO: for unclear reasons this test fails if it comes after |
192 " Test_xterm_mouse_ctrl_click() | 382 " Test_xterm_mouse_ctrl_click() |
193 func Test_1xterm_mouse_wheel() | 383 func Test_1xterm_mouse_wheel() |
835 let &ttymouse = save_ttymouse | 1025 let &ttymouse = save_ttymouse |
836 let @* = '' | 1026 let @* = '' |
837 call test_override('no_query_mouse', 0) | 1027 call test_override('no_query_mouse', 0) |
838 endfunc | 1028 endfunc |
839 | 1029 |
1030 " Test for making sure S-Middlemouse doesn't do anything | |
1031 func Test_term_mouse_shift_middle_click() | |
1032 new | |
1033 let save_mouse = &mouse | |
1034 let save_term = &term | |
1035 let save_ttymouse = &ttymouse | |
1036 call test_override('no_query_mouse', 1) | |
1037 set mouse=a term=xterm ttymouse=xterm2 mousemodel= | |
1038 | |
1039 call test_setmouse(1, 1) | |
1040 exe "normal \<S-MiddleMouse>" | |
1041 call assert_equal([''], getline(1, '$')) | |
1042 call assert_equal(1, winnr()) | |
1043 | |
1044 let &mouse = save_mouse | |
1045 let &term = save_term | |
1046 let &ttymouse = save_ttymouse | |
1047 set mousemodel& | |
1048 call test_override('no_query_mouse', 0) | |
1049 close! | |
1050 endfunc | |
1051 | |
1052 " Test for using mouse in visual mode | |
1053 func Test_term_mouse_visual_mode() | |
1054 new | |
1055 let save_mouse = &mouse | |
1056 let save_term = &term | |
1057 let save_ttymouse = &ttymouse | |
1058 call test_override('no_query_mouse', 1) | |
1059 set term=xterm ttymouse=xterm2 | |
1060 | |
1061 " If visual mode is not present in 'mouse', then left click should not | |
1062 " do anything in visal mode. | |
1063 call setline(1, ['one two three four']) | |
1064 set mouse=nci | |
1065 call cursor(1, 5) | |
1066 let @" = '' | |
1067 call feedkeys("ve" | |
1068 \ .. MouseLeftClickCode(1, 15) .. MouseLeftReleaseCode(1, 15) | |
1069 \ .. 'y', 'Lx!') | |
1070 call assert_equal(5, col('.')) | |
1071 call assert_equal('two', @") | |
1072 | |
1073 " Pressing right click in visual mode should change the visual selection | |
1074 " if 'mousemodel' doesn't contain popup. | |
1075 " Right click after the visual selection | |
1076 set mousemodel= | |
1077 set mouse=a | |
1078 call test_setmouse(1, 13) | |
1079 exe "normal 5|ve\<RightMouse>y" | |
1080 call assert_equal('two three', @") | |
1081 call assert_equal(5, col('.')) | |
1082 | |
1083 " Right click before the visual selection | |
1084 call test_setmouse(1, 9) | |
1085 exe "normal 15|ve\<RightMouse>y" | |
1086 call assert_equal('three four', @") | |
1087 call assert_equal(9, col('.')) | |
1088 | |
1089 " Multi-line selection. Right click in the middle of thse selection | |
1090 call setline(1, ["one", "two", "three", "four", "five", "six"]) | |
1091 call test_setmouse(3, 1) | |
1092 exe "normal ggVG\<RightMouse>y" | |
1093 call assert_equal(3, line("'<")) | |
1094 call test_setmouse(4, 1) | |
1095 exe "normal ggVG\<RightMouse>y" | |
1096 call assert_equal(4, line("'>")) | |
1097 | |
1098 set mousemodel& | |
1099 let &mouse = save_mouse | |
1100 let &term = save_term | |
1101 let &ttymouse = save_ttymouse | |
1102 call test_override('no_query_mouse', 0) | |
1103 close! | |
1104 endfunc | |
1105 | |
840 " Test for displaying the popup menu using the right mouse click | 1106 " Test for displaying the popup menu using the right mouse click |
841 func Test_mouse_popup_menu() | 1107 func Test_term_mouse_popup_menu() |
842 CheckFeature menu | 1108 CheckFeature menu |
843 new | 1109 new |
844 call setline(1, 'popup menu test') | 1110 call setline(1, 'popup menu test') |
845 let save_mouse = &mouse | 1111 let save_mouse = &mouse |
846 let save_term = &term | 1112 let save_term = &term |
866 let &term = save_term | 1132 let &term = save_term |
867 let &ttymouse = save_ttymouse | 1133 let &ttymouse = save_ttymouse |
868 let &mousemodel = save_mousemodel | 1134 let &mousemodel = save_mousemodel |
869 call test_override('no_query_mouse', 0) | 1135 call test_override('no_query_mouse', 0) |
870 close! | 1136 close! |
1137 endfunc | |
1138 | |
1139 " Test for 'mousemodel' set to popup_setpos to move the cursor where the popup | |
1140 " menu is displayed. | |
1141 func Test_term_mouse_popup_menu_setpos() | |
1142 CheckFeature menu | |
1143 5new | |
1144 call setline(1, ['the dish ran away with the spoon', | |
1145 \ 'the cow jumped over the moon' ]) | |
1146 let save_mouse = &mouse | |
1147 let save_term = &term | |
1148 let save_ttymouse = &ttymouse | |
1149 let save_mousemodel = &mousemodel | |
1150 call test_override('no_query_mouse', 1) | |
1151 set mouse=a term=xterm mousemodel=popup_setpos | |
1152 | |
1153 nmenu PopUp.foo :let g:menustr = 'foo'<CR> | |
1154 nmenu PopUp.bar :let g:menustr = 'bar'<CR> | |
1155 nmenu PopUp.baz :let g:menustr = 'baz'<CR> | |
1156 vmenu PopUp.foo y:<C-U>let g:menustr = 'foo'<CR> | |
1157 vmenu PopUp.bar y:<C-U>let g:menustr = 'bar'<CR> | |
1158 vmenu PopUp.baz y:<C-U>let g:menustr = 'baz'<CR> | |
1159 | |
1160 for ttymouse_val in g:Ttymouse_values | |
1161 exe 'set ttymouse=' .. ttymouse_val | |
1162 let g:menustr = '' | |
1163 call cursor(1, 1) | |
1164 call feedkeys(MouseRightClickCode(1, 5) | |
1165 \ .. MouseRightReleaseCode(1, 5) .. "\<Down>\<Down>\<CR>", "x") | |
1166 call assert_equal('bar', g:menustr) | |
1167 call assert_equal([1, 5], [line('.'), col('.')]) | |
1168 | |
1169 " Test for right click in visual mode inside the selection | |
1170 let @" = '' | |
1171 call cursor(1, 10) | |
1172 call feedkeys('vee' .. MouseRightClickCode(1, 12) | |
1173 \ .. MouseRightReleaseCode(1, 12) .. "\<Down>\<CR>", "x") | |
1174 call assert_equal([1, 10], [line('.'), col('.')]) | |
1175 call assert_equal('ran away', @") | |
1176 | |
1177 " Test for right click in visual mode before the selection | |
1178 let @" = '' | |
1179 call cursor(1, 10) | |
1180 call feedkeys('vee' .. MouseRightClickCode(1, 2) | |
1181 \ .. MouseRightReleaseCode(1, 2) .. "\<Down>\<CR>", "x") | |
1182 call assert_equal([1, 2], [line('.'), col('.')]) | |
1183 call assert_equal('', @") | |
1184 | |
1185 " Test for right click in visual mode after the selection | |
1186 let @" = '' | |
1187 call cursor(1, 10) | |
1188 call feedkeys('vee' .. MouseRightClickCode(1, 20) | |
1189 \ .. MouseRightReleaseCode(1, 20) .. "\<Down>\<CR>", "x") | |
1190 call assert_equal([1, 20], [line('.'), col('.')]) | |
1191 call assert_equal('', @") | |
1192 | |
1193 " Test for right click in block-wise visual mode inside the selection | |
1194 let @" = '' | |
1195 call cursor(1, 16) | |
1196 call feedkeys("\<C-V>j3l" .. MouseRightClickCode(2, 17) | |
1197 \ .. MouseRightReleaseCode(2, 17) .. "\<Down>\<CR>", "x") | |
1198 call assert_equal([1, 16], [line('.'), col('.')]) | |
1199 call assert_equal("\<C-V>4", getregtype('"')) | |
1200 | |
1201 " Test for right click in block-wise visual mode outside the selection | |
1202 let @" = '' | |
1203 call cursor(1, 16) | |
1204 call feedkeys("\<C-V>j3l" .. MouseRightClickCode(2, 2) | |
1205 \ .. MouseRightReleaseCode(2, 2) .. "\<Down>\<CR>", "x") | |
1206 call assert_equal([2, 2], [line('.'), col('.')]) | |
1207 call assert_equal('v', getregtype('"')) | |
1208 call assert_equal('', @") | |
1209 | |
1210 " Try clicking on the status line | |
1211 let @" = '' | |
1212 call cursor(1, 10) | |
1213 call feedkeys('vee' .. MouseRightClickCode(6, 2) | |
1214 \ .. MouseRightReleaseCode(6, 2) .. "\<Down>\<CR>", "x") | |
1215 call assert_equal([1, 10], [line('.'), col('.')]) | |
1216 call assert_equal('ran away', @") | |
1217 | |
1218 " Try clicking outside the window | |
1219 let @" = '' | |
1220 call cursor(7, 2) | |
1221 call feedkeys('vee' .. MouseRightClickCode(7, 2) | |
1222 \ .. MouseRightReleaseCode(7, 2) .. "\<Down>\<CR>", "x") | |
1223 call assert_equal(2, winnr()) | |
1224 call assert_equal('', @") | |
1225 wincmd w | |
1226 endfor | |
1227 | |
1228 unmenu PopUp | |
1229 let &mouse = save_mouse | |
1230 let &term = save_term | |
1231 let &ttymouse = save_ttymouse | |
1232 let &mousemodel = save_mousemodel | |
1233 call test_override('no_query_mouse', 0) | |
1234 close! | |
1235 endfunc | |
1236 | |
1237 " Test for searching for the word under the cursor using Shift-Right or | |
1238 " Shift-Left click. | |
1239 func Test_term_mouse_search() | |
1240 new | |
1241 let save_mouse = &mouse | |
1242 let save_term = &term | |
1243 let save_ttymouse = &ttymouse | |
1244 call test_override('no_query_mouse', 1) | |
1245 set mouse=a term=xterm ttymouse=xterm2 | |
1246 set mousemodel= | |
1247 | |
1248 " In normal mode, Shift-Left or Shift-Right click should search for the word | |
1249 " under the cursor. | |
1250 call setline(1, ['one two three four', 'four three two one']) | |
1251 call test_setmouse(1, 4) | |
1252 exe "normal \<S-LeftMouse>" | |
1253 call assert_equal([2, 12], [line('.'), col('.')]) | |
1254 call test_setmouse(2, 16) | |
1255 exe "normal \<S-RightMouse>" | |
1256 call assert_equal([1, 1], [line('.'), col('.')]) | |
1257 | |
1258 " In visual mode, Shift-Left or Shift-Right click should search for the word | |
1259 " under the cursor and extend the selection. | |
1260 call test_setmouse(1, 4) | |
1261 exe "normal 4|ve\<S-LeftMouse>y" | |
1262 call assert_equal([2, 12], [line("'>"), col("'>")]) | |
1263 call test_setmouse(2, 16) | |
1264 exe "normal 2G16|ve\<S-RightMouse>y" | |
1265 call assert_equal([1, 1], [line("'<"), col("'<")]) | |
1266 | |
1267 set mousemodel& | |
1268 let &mouse = save_mouse | |
1269 let &term = save_term | |
1270 let &ttymouse = save_ttymouse | |
1271 call test_override('no_query_mouse', 0) | |
1272 close! | |
1273 endfunc | |
1274 | |
1275 " Test for selecting an entry in the quickfix/location list window using the | |
1276 " mouse. | |
1277 func Test_term_mouse_quickfix_window() | |
1278 let save_mouse = &mouse | |
1279 let save_term = &term | |
1280 let save_ttymouse = &ttymouse | |
1281 call test_override('no_query_mouse', 1) | |
1282 set mouse=a term=xterm ttymouse=xterm2 | |
1283 set mousemodel= | |
1284 | |
1285 cgetexpr "Xfile1:1:L1" | |
1286 copen 5 | |
1287 call test_setmouse(&lines - 7, 1) | |
1288 exe "normal \<2-LeftMouse>" | |
1289 call assert_equal('Xfile1', @%) | |
1290 %bw! | |
1291 | |
1292 lgetexpr "Xfile2:1:L1" | |
1293 lopen 5 | |
1294 call test_setmouse(&lines - 7, 1) | |
1295 exe "normal \<2-LeftMouse>" | |
1296 call assert_equal('Xfile2', @%) | |
1297 %bw! | |
1298 | |
1299 set mousemodel& | |
1300 let &mouse = save_mouse | |
1301 let &term = save_term | |
1302 let &ttymouse = save_ttymouse | |
1303 call test_override('no_query_mouse', 0) | |
871 endfunc | 1304 endfunc |
872 | 1305 |
873 " This only checks if the sequence is recognized. | 1306 " This only checks if the sequence is recognized. |
874 func Test_term_rgb_response() | 1307 func Test_term_rgb_response() |
875 set t_RF=x | 1308 set t_RF=x |