blob: bd2729d3e3b45c58ba5c5dfcce602abad5446ffc [file] [log] [blame]
Bram Moolenaar905dd902019-04-07 14:21:47 +02001" Tests for decoding escape sequences sent by the terminal.
2
3" This only works for Unix in a terminal
4if has('gui_running') || !has('unix')
5 finish
6endif
7
8func Test_xterm_mouse_click()
9 new
10 let save_mouse = &mouse
11 let save_term = &term
12 let save_ttymouse = &ttymouse
13 set mouse=a
14 set term=xterm
15 call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer'])
16 redraw
17
18 " Xterm mouse click
19 set ttymouse=xterm
20 let button = 0x20 " left down
21 let row = 2 + 32
22 let col = 6 + 32
23 call feedkeys("\<Esc>[M" .. list2str([button, col, row]), 'Lx!')
24
25 let button = 0x23 " release
26 call feedkeys("\<Esc>[M" .. list2str([button, col, row]), 'Lx!')
27
28 call assert_equal([0, 2, 6, 0], getpos('.'))
29
30 " SGR mouse click
31 set ttymouse=sgr
32 let button = 0 " left down
33 let row = 3
34 let col = 9
35 call feedkeys(printf("\<Esc>[<%d;%d;%dM", button, col, row), 'Lx!')
36
37 let button = 3 " release
38 call feedkeys(printf("\<Esc>[<%d;%d;%dm", button, col, row), 'Lx!')
39
40 call assert_equal([0, 3, 9, 0], getpos('.'))
41
42 let &mouse = save_mouse
43 let &term = save_term
44 let &ttymouse = save_ttymouse
45 bwipe!
46endfunc
47