annotate src/testdir/test_termcodes.vim @ 16487:a4732cdcfaaf v8.1.1247

patch 8.1.1247: urxvt mouse codes are not tested commit https://github.com/vim/vim/commit/d0621d85a6ceb17e1e6fb17415c3f94a755aaafa Author: Bram Moolenaar <Bram@vim.org> Date: Thu May 2 21:12:19 2019 +0200 patch 8.1.1247: urxvt mouse codes are not tested Problem: Urxvt mouse codes are not tested. Solution: Also set 'ttymouse' to "urxvt" in the termcodes test.
author Bram Moolenaar <Bram@vim.org>
date Thu, 02 May 2019 21:15:05 +0200
parents 8428e0edba1b
children 42910f306377
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16263
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1 " Tests for decoding escape sequences sent by the terminal.
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
3 " This only works for Unix in a terminal
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
4 if has('gui_running') || !has('unix')
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
5 finish
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
6 endif
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
7
16437
fbc0b3b38c79 patch 8.1.1223: middle mouse click test fails without a clipboard
Bram Moolenaar <Bram@vim.org>
parents: 16423
diff changeset
8 source shared.vim
fbc0b3b38c79 patch 8.1.1223: middle mouse click test fails without a clipboard
Bram Moolenaar <Bram@vim.org>
parents: 16423
diff changeset
9
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
10 " xterm2 and sgr always work, urxvt is optional.
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
11 let s:test_ttymouse = ['xterm2', 'sgr']
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
12 if has('mouse_urxvt')
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
13 call add(s:test_ttymouse, 'urxvt')
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
14 endif
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
15
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
16 " Helper function to emit a terminal escape code.
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
17 func TerminalEscapeCode(code, row, col, m)
16352
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
18 if &ttymouse ==# 'xterm2'
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
19 " need to use byte encoding here.
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
20 let str = list2str([a:code + 0x20, a:col + 0x20, a:row + 0x20])
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
21 if has('iconv')
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
22 let bytes = iconv(str, 'utf-8', 'latin1')
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
23 else
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
24 " Hopefully the numbers are not too big.
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
25 let bytes = str
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
26 endif
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
27 call feedkeys("\<Esc>[M" .. bytes, 'Lx!')
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
28 elseif &ttymouse ==# 'sgr'
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
29 call feedkeys(printf("\<Esc>[<%d;%d;%d%s", a:code, a:col, a:row, a:m), 'Lx!')
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
30 elseif &ttymouse ==# 'urxvt'
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
31 call feedkeys(printf("\<Esc>[%d;%d;%dM", a:code + 0x20, a:col, a:row), 'Lx!')
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
32 endif
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
33 endfunc
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
34
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
35 func MouseLeftClick(row, col)
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
36 call TerminalEscapeCode(0, a:row, a:col, 'M')
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
37 endfunc
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
38
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
39 func MouseMiddleClick(row, col)
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
40 call TerminalEscapeCode(1, a:row, a:col, 'M')
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
41 endfunc
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
42
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
43 func MouseCtrlLeftClick(row, col)
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
44 let ctrl = 0x10
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
45 call TerminalEscapeCode(0 + ctrl, a:row, a:col, 'M')
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
46 endfunc
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
47
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
48 func MouseCtrlRightClick(row, col)
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
49 let ctrl = 0x10
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
50 call TerminalEscapeCode(2 + ctrl, a:row, a:col, 'M')
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
51 endfunc
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
52
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
53 func MouseLeftRelease(row, col)
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
54 call TerminalEscapeCode(3, a:row, a:col, 'm')
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
55 endfunc
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
56
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
57 func MouseMiddleRelease(row, col)
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
58 call TerminalEscapeCode(3, a:row, a:col, 'm')
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
59 endfunc
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
60
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
61 func MouseRightRelease(row, col)
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
62 call TerminalEscapeCode(3, a:row, a:col, 'm')
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
63 endfunc
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
64
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
65 func MouseLeftDrag(row, col)
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
66 call TerminalEscapeCode(0x20, a:row, a:col, 'M')
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
67 endfunc
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
68
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
69 func MouseWheelUp(row, col)
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
70 call TerminalEscapeCode(0x40, a:row, a:col, 'M')
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
71 endfunc
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
72
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
73 func MouseWheelDown(row, col)
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
74 call TerminalEscapeCode(0x41, a:row, a:col, 'M')
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
75 endfunc
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
76
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
77 func Test_xterm_mouse_left_click()
16263
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
78 new
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
79 let save_mouse = &mouse
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
80 let save_term = &term
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
81 let save_ttymouse = &ttymouse
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
82 set mouse=a term=xterm
16263
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
83 call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer'])
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
84
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
85 for ttymouse_val in s:test_ttymouse
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
86 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
87 exe 'set ttymouse=' .. ttymouse_val
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
88 go
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
89 call assert_equal([0, 1, 1, 0], getpos('.'), msg)
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
90 let row = 2
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
91 let col = 6
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
92 call MouseLeftClick(row, col)
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
93 call MouseLeftRelease(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
94 call assert_equal([0, 2, 6, 0], getpos('.'), msg)
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
95 endfor
16263
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
96
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
97 let &mouse = save_mouse
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
98 let &term = save_term
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
99 let &ttymouse = save_ttymouse
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
100 bwipe!
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
101 endfunc
d3377393e3d9 patch 8.1.1136: decoding of mouse click escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
102
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
103 " Test that <C-LeftMouse> jumps to help tag and <C-RightMouse> jumps back.
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
104 func Test_xterm_mouse_ctrl_click()
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
105 let save_mouse = &mouse
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
106 let save_term = &term
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
107 let save_ttymouse = &ttymouse
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
108 set mouse=a term=xterm
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
109
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
110 for ttymouse_val in s:test_ttymouse
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
111 let msg = 'ttymouse=' .. ttymouse_val
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
112 exe 'set ttymouse=' .. ttymouse_val
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
113 help
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
114 /usr_02.txt
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
115 norm! zt
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
116 let row = 1
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
117 let col = 1
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
118 call MouseCtrlLeftClick(row, col)
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
119 call MouseLeftRelease(row, col)
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
120 call assert_match('usr_02.txt$', bufname('%'), msg)
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
121 call assert_equal('*usr_02.txt*', expand('<cWORD>'))
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
122
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
123 call MouseCtrlRightClick(row, col)
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
124 call MouseLeftRelease(row, col)
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
125 call assert_match('help.txt$', bufname('%'), msg)
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
126 call assert_equal('|usr_02.txt|', expand('<cWORD>'))
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
127
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
128 helpclose
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
129 endfor
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
130
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
131 let &mouse = save_mouse
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
132 let &term = save_term
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
133 let &ttymouse = save_ttymouse
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
134 endfunc
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
135
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
136 func Test_xterm_mouse_middle_click()
16437
fbc0b3b38c79 patch 8.1.1223: middle mouse click test fails without a clipboard
Bram Moolenaar <Bram@vim.org>
parents: 16423
diff changeset
137 if !WorkingClipboard()
fbc0b3b38c79 patch 8.1.1223: middle mouse click test fails without a clipboard
Bram Moolenaar <Bram@vim.org>
parents: 16423
diff changeset
138 throw 'Skipped: No working clipboard'
fbc0b3b38c79 patch 8.1.1223: middle mouse click test fails without a clipboard
Bram Moolenaar <Bram@vim.org>
parents: 16423
diff changeset
139 endif
fbc0b3b38c79 patch 8.1.1223: middle mouse click test fails without a clipboard
Bram Moolenaar <Bram@vim.org>
parents: 16423
diff changeset
140
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
141 new
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
142 let save_mouse = &mouse
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
143 let save_term = &term
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
144 let save_ttymouse = &ttymouse
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
145 let save_quotestar = @*
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
146 let @* = 'abc'
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
147 set mouse=a term=xterm
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
148
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
149 for ttymouse_val in s:test_ttymouse
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
150 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
151 exe 'set ttymouse=' .. ttymouse_val
16423
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
152 call setline(1, ['123456789', '123456789'])
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
153
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
154 " Middle-click in the middle of the line pastes text where clicked.
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
155 let row = 1
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
156 let col = 6
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
157 call MouseMiddleClick(row, col)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
158 call MouseMiddleRelease(row, col)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
159 call assert_equal(['12345abc6789', '123456789'], getline(1, '$'), msg)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
160
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
161 " Middle-click beyond end of the line pastes text at the end of the line.
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
162 let col = 20
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
163 call MouseMiddleClick(row, col)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
164 call MouseMiddleRelease(row, col)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
165 call assert_equal(['12345abc6789abc', '123456789'], getline(1, '$'), msg)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
166
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
167 " Middle-click beyond the last line pastes in the last line.
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
168 let row = 5
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
169 let col = 3
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
170 call MouseMiddleClick(row, col)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
171 call MouseMiddleRelease(row, col)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
172 call assert_equal(['12345abc6789abc', '12abc3456789'], getline(1, '$'), msg)
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
173 endfor
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
174
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
175 let &mouse = save_mouse
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
176 let &term = save_term
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
177 let &ttymouse = save_ttymouse
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
178 let @* = save_quotestar
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
179 bwipe!
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
180 endfunc
4182fa3b9f70 patch 8.1.1216: mouse middle click is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16352
diff changeset
181
16265
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
182 func Test_xterm_mouse_wheel()
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
183 new
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
184 let save_mouse = &mouse
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
185 let save_term = &term
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
186 let save_ttymouse = &ttymouse
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
187 set mouse=a term=xterm
16265
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
188 call setline(1, range(1, 100))
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
189
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
190 for ttymouse_val in s:test_ttymouse
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
191 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
192 exe 'set ttymouse=' .. ttymouse_val
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
193 go
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
194 call assert_equal(1, line('w0'), msg)
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
195 call assert_equal([0, 1, 1, 0], getpos('.'), msg)
16265
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
196
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
197 call MouseWheelDown(1, 1)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
198 call assert_equal(4, line('w0'), msg)
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
199 call assert_equal([0, 4, 1, 0], getpos('.'), msg)
16265
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
200
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
201 call MouseWheelDown(1, 1)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
202 call assert_equal(7, line('w0'), msg)
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
203 call assert_equal([0, 7, 1, 0], getpos('.'), msg)
16265
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
204
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
205 call MouseWheelUp(1, 1)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
206 call assert_equal(4, line('w0'), msg)
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
207 call assert_equal([0, 7, 1, 0], getpos('.'), msg)
16265
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
208
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
209 call MouseWheelUp(1, 1)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
210 call assert_equal(1, line('w0'), msg)
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
211 call assert_equal([0, 7, 1, 0], getpos('.'), msg)
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
212 endfor
16265
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
213
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
214 let &mouse = save_mouse
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
215 let &term = save_term
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
216 let &ttymouse = save_ttymouse
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
217 bwipe!
7feb5b90be5f patch 8.1.1137: xterm mouse wheel escape sequence is not tested
Bram Moolenaar <Bram@vim.org>
parents: 16263
diff changeset
218 endfunc
16275
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
219
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
220 func Test_xterm_mouse_drag_window_separator()
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
221 let save_mouse = &mouse
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
222 let save_term = &term
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
223 let save_ttymouse = &ttymouse
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
224 set mouse=a term=xterm
16275
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
225
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
226 for ttymouse_val in s:test_ttymouse
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
227 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
228 exe 'set ttymouse=' .. ttymouse_val
16275
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
229
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
230 " Split horizontally and test dragging the horizontal window separator.
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
231 split
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
232 let rowseparator = winheight(0) + 1
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
233 let row = rowseparator
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
234 let col = 1
16310
5b8b849dc3aa patch 8.1.1160: termcodes test would fail in a very big terminal
Bram Moolenaar <Bram@vim.org>
parents: 16300
diff changeset
235
16352
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
236 " When 'ttymouse' is 'xterm2', row/col bigger than 223 are not supported.
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
237 if ttymouse_val !=# 'xterm2' || row <= 223
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
238 call MouseLeftClick(row, col)
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
239 let row -= 1
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
240 call MouseLeftDrag(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
241 call assert_equal(rowseparator - 1, winheight(0) + 1, msg)
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
242 let row += 1
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
243 call MouseLeftDrag(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
244 call assert_equal(rowseparator, winheight(0) + 1, msg)
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
245 call MouseLeftRelease(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
246 call assert_equal(rowseparator, winheight(0) + 1, msg)
16310
5b8b849dc3aa patch 8.1.1160: termcodes test would fail in a very big terminal
Bram Moolenaar <Bram@vim.org>
parents: 16300
diff changeset
247 endif
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
248 bwipe!
16275
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
249
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
250 " Split vertically and test dragging the vertical window separator.
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
251 vsplit
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
252 let colseparator = winwidth(0) + 1
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
253 let row = 1
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
254 let col = colseparator
16275
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
255
16352
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
256 " When 'ttymouse' is 'xterm2', row/col bigger than 223 are not supported.
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
257 if ttymouse_val !=# 'xterm2' || col <= 223
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
258 call MouseLeftClick(row, col)
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
259 let col -= 1
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
260 call MouseLeftDrag(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
261 call assert_equal(colseparator - 1, winwidth(0) + 1, msg)
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
262 let col += 1
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
263 call MouseLeftDrag(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
264 call assert_equal(colseparator, winwidth(0) + 1, msg)
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
265 call MouseLeftRelease(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
266 call assert_equal(colseparator, winwidth(0) + 1, msg)
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
267 endif
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
268 bwipe!
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
269 endfor
16275
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
270
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
271 let &mouse = save_mouse
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
272 let &term = save_term
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
273 let &ttymouse = save_ttymouse
ed5172ae1c32 patch 8.1.1142: no test for dragging the window separators with the mouse
Bram Moolenaar <Bram@vim.org>
parents: 16265
diff changeset
274 endfunc
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
275
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
276 func Test_xterm_mouse_drag_statusline()
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
277 let save_mouse = &mouse
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
278 let save_term = &term
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
279 let save_ttymouse = &ttymouse
16320
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
280 let save_laststatus = &laststatus
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
281 set mouse=a term=xterm laststatus=2
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
282
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
283 for ttymouse_val in s:test_ttymouse
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
284 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
285 exe 'set ttymouse=' .. ttymouse_val
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
286
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
287 call assert_equal(1, &cmdheight, msg)
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
288 let rowstatusline = winheight(0) + 1
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
289 let row = rowstatusline
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
290 let col = 1
16310
5b8b849dc3aa patch 8.1.1160: termcodes test would fail in a very big terminal
Bram Moolenaar <Bram@vim.org>
parents: 16300
diff changeset
291
16352
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
292 if ttymouse_val ==# 'xterm2' && row > 223
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
293 " When 'ttymouse' is 'xterm2', row/col bigger than 223 are not supported.
16310
5b8b849dc3aa patch 8.1.1160: termcodes test would fail in a very big terminal
Bram Moolenaar <Bram@vim.org>
parents: 16300
diff changeset
294 continue
5b8b849dc3aa patch 8.1.1160: termcodes test would fail in a very big terminal
Bram Moolenaar <Bram@vim.org>
parents: 16300
diff changeset
295 endif
5b8b849dc3aa patch 8.1.1160: termcodes test would fail in a very big terminal
Bram Moolenaar <Bram@vim.org>
parents: 16300
diff changeset
296
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
297 call MouseLeftClick(row, col)
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
298 let row -= 1
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
299 call MouseLeftDrag(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
300 call assert_equal(2, &cmdheight, msg)
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
301 call assert_equal(rowstatusline - 1, winheight(0) + 1, msg)
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
302 let row += 1
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
303 call MouseLeftDrag(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
304 call assert_equal(1, &cmdheight, msg)
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
305 call assert_equal(rowstatusline, winheight(0) + 1, msg)
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
306 call MouseLeftRelease(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
307 call assert_equal(1, &cmdheight, msg)
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
308 call assert_equal(rowstatusline, winheight(0) + 1, msg)
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
309 endfor
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
310
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
311 let &mouse = save_mouse
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
312 let &term = save_term
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
313 let &ttymouse = save_ttymouse
16320
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
314 let &laststatus = save_laststatus
16300
f3d579f009d1 patch 8.1.1155: termcodes tests can be improved
Bram Moolenaar <Bram@vim.org>
parents: 16275
diff changeset
315 endfunc
16320
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
316
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
317 func Test_xterm_mouse_click_tab()
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
318 let save_mouse = &mouse
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
319 let save_term = &term
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
320 let save_ttymouse = &ttymouse
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
321 set mouse=a term=xterm
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
322 let row = 1
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
323
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
324 for ttymouse_val in s:test_ttymouse
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
325 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
326 exe 'set ttymouse=' .. ttymouse_val
16320
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
327 e Xfoo
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
328 tabnew Xbar
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
329
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
330 let a = split(execute(':tabs'), "\n")
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
331 call assert_equal(['Tab page 1',
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
332 \ ' Xfoo',
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
333 \ 'Tab page 2',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
334 \ '> Xbar'], a, msg)
16320
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
335
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
336 " Test clicking on tab names in the tabline at the top.
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
337 let col = 2
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
338 redraw
16320
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
339 call MouseLeftClick(row, col)
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
340 call MouseLeftRelease(row, col)
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
341 let a = split(execute(':tabs'), "\n")
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
342 call assert_equal(['Tab page 1',
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
343 \ '> Xfoo',
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
344 \ 'Tab page 2',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
345 \ ' Xbar'], a, msg)
16320
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
346
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
347 let col = 9
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
348 call MouseLeftClick(row, col)
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
349 call MouseLeftRelease(row, col)
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
350 let a = split(execute(':tabs'), "\n")
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
351 call assert_equal(['Tab page 1',
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
352 \ ' Xfoo',
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
353 \ 'Tab page 2',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
354 \ '> Xbar'], a, msg)
16320
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
355
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
356 %bwipe!
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
357 endfor
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
358
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
359 let &mouse = save_mouse
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
360 let &term = save_term
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
361 let &ttymouse = save_ttymouse
57e0f6b4a87d patch 8.1.1165: no test for mouse clicks in the terminal tabpage line
Bram Moolenaar <Bram@vim.org>
parents: 16310
diff changeset
362 endfunc
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
363
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
364 func Test_xterm_mouse_click_X_to_close_tab()
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
365 let save_mouse = &mouse
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
366 let save_term = &term
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
367 let save_ttymouse = &ttymouse
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
368 set mouse=a term=xterm
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
369 let row = 1
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
370 let col = &columns
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
371
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
372 for ttymouse_val in s:test_ttymouse
16352
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
373 if ttymouse_val ==# 'xterm2' && col > 223
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
374 " When 'ttymouse' is 'xterm2', row/col bigger than 223 are not supported.
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
375 continue
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
376 endif
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
377 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
378 exe 'set ttymouse=' .. ttymouse_val
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
379 e Xtab1
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
380 tabnew Xtab2
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
381 tabnew Xtab3
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
382 tabn 2
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
383
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
384 let a = split(execute(':tabs'), "\n")
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
385 call assert_equal(['Tab page 1',
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
386 \ ' Xtab1',
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
387 \ 'Tab page 2',
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
388 \ '> Xtab2',
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
389 \ 'Tab page 3',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
390 \ ' Xtab3'], a, msg)
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
391
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
392 " Click on "X" in tabline to close current tab i.e. Xtab2.
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
393 redraw
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
394 call MouseLeftClick(row, col)
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
395 call MouseLeftRelease(row, col)
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
396 let a = split(execute(':tabs'), "\n")
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
397 call assert_equal(['Tab page 1',
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
398 \ ' Xtab1',
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
399 \ 'Tab page 2',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
400 \ '> Xtab3'], a, msg)
16324
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
401
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
402 %bwipe!
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
403 endfor
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
404
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
405 let &mouse = save_mouse
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
406 let &term = save_term
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
407 let &ttymouse = save_ttymouse
6b2412d0509f patch 8.1.1167: no test for closing tab by click in tabline
Bram Moolenaar <Bram@vim.org>
parents: 16320
diff changeset
408 endfunc
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
409
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
410 func Test_xterm_mouse_drag_to_move_tab()
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
411 let save_mouse = &mouse
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
412 let save_term = &term
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
413 let save_ttymouse = &ttymouse
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
414 " Set 'mousetime' to 1 to avoid recognizing a double-click in the loop
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
415 set mouse=a term=xterm mousetime=1
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
416 let row = 1
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
417
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
418 for ttymouse_val in s:test_ttymouse
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
419 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
420 exe 'set ttymouse=' .. ttymouse_val
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
421 e Xtab1
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
422 tabnew Xtab2
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
423
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
424 let a = split(execute(':tabs'), "\n")
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
425 call assert_equal(['Tab page 1',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
426 \ ' Xtab1',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
427 \ 'Tab page 2',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
428 \ '> Xtab2'], a, msg)
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
429 redraw
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
430
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
431 " Click in tab2 and drag it to tab1.
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
432 " Check getcharmod() to verify that click is not
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
433 " interpreted as a spurious double-click.
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
434 call MouseLeftClick(row, 10)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
435 call assert_equal(0, getcharmod(), msg)
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
436 for col in [9, 8, 7, 6]
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
437 call MouseLeftDrag(row, col)
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
438 endfor
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
439 call MouseLeftRelease(row, col)
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
440 let a = split(execute(':tabs'), "\n")
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
441 call assert_equal(['Tab page 1',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
442 \ '> Xtab2',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
443 \ 'Tab page 2',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
444 \ ' Xtab1'], a, msg)
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
445
16342
06f3eb443e93 patch 8.1.1176: test for dragging a tab is flaky
Bram Moolenaar <Bram@vim.org>
parents: 16340
diff changeset
446 " brief sleep to avoid causing a double-click
06f3eb443e93 patch 8.1.1176: test for dragging a tab is flaky
Bram Moolenaar <Bram@vim.org>
parents: 16340
diff changeset
447 sleep 20m
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
448 %bwipe!
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
449 endfor
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
450
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
451 let &mouse = save_mouse
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
452 let &term = save_term
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
453 let &ttymouse = save_ttymouse
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
454 set mousetime&
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
455 endfunc
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
456
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
457 func Test_xterm_mouse_double_click_to_create_tab()
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
458 let save_mouse = &mouse
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
459 let save_term = &term
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
460 let save_ttymouse = &ttymouse
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
461 " Set 'mousetime' to a small value, so that double-click works but we don't
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
462 " have to wait long to avoid a triple-click.
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
463 set mouse=a term=xterm mousetime=100
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
464 let row = 1
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
465 let col = 10
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
466
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
467 let round = 0
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
468 for ttymouse_val in s:test_ttymouse
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
469 let msg = 'ttymouse=' .. ttymouse_val
16481
8428e0edba1b patch 8.1.1244: no tests for CTRL-mouse-click
Bram Moolenaar <Bram@vim.org>
parents: 16437
diff changeset
470 exe 'set ttymouse=' .. ttymouse_val
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
471 e Xtab1
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
472 tabnew Xtab2
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
473
16487
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
474 if round > 0
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
475 " We need to sleep, or else the first MouseLeftClick() will be
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
476 " interpreted as a spurious triple-click.
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
477 sleep 100m
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
478 endif
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
479 let round += 1
a4732cdcfaaf patch 8.1.1247: urxvt mouse codes are not tested
Bram Moolenaar <Bram@vim.org>
parents: 16481
diff changeset
480
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
481 let a = split(execute(':tabs'), "\n")
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
482 call assert_equal(['Tab page 1',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
483 \ ' Xtab1',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
484 \ 'Tab page 2',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
485 \ '> Xtab2'], a, msg)
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
486
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
487 redraw
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
488 call MouseLeftClick(row, col)
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
489 " Check getcharmod() to verify that first click is not
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
490 " interpreted as a spurious double-click.
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
491 call assert_equal(0, getcharmod(), msg)
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
492 call MouseLeftRelease(row, col)
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
493 call MouseLeftClick(row, col)
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
494 call assert_equal(32, getcharmod(), msg) " double-click
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
495 call MouseLeftRelease(row, col)
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
496 let a = split(execute(':tabs'), "\n")
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
497 call assert_equal(['Tab page 1',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
498 \ ' Xtab1',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
499 \ 'Tab page 2',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
500 \ '> [No Name]',
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
501 \ 'Tab page 3',
16346
2fb516abde42 patch 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
Bram Moolenaar <Bram@vim.org>
parents: 16342
diff changeset
502 \ ' Xtab2'], a, msg)
16340
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
503
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
504 %bwipe!
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
505 endfor
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
506
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
507 let &mouse = save_mouse
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
508 let &term = save_term
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
509 let &ttymouse = save_ttymouse
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
510 set mousetime&
2f70fc41ff7e patch 8.1.1175: no test for dragging a tab and double click for new tab
Bram Moolenaar <Bram@vim.org>
parents: 16324
diff changeset
511 endfunc
16348
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
512
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
513 func Test_xterm_mouse_click_in_fold_columns()
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
514 new
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
515 let save_mouse = &mouse
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
516 let save_term = &term
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
517 let save_ttymouse = &ttymouse
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
518 let save_foldcolumn = &foldcolumn
16352
c742c008953e patch 8.1.1181: tests for mouse clicks are a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 16348
diff changeset
519 set mouse=a term=xterm foldcolumn=3 ttymouse=xterm2
16348
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
520
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
521 " Create 2 nested folds.
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
522 call setline(1, range(1, 7))
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
523 2,6fold
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
524 norm! zR
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
525 4,5fold
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
526 call assert_equal([-1, -1, -1, 4, 4, -1, -1],
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
527 \ map(range(1, 7), 'foldclosed(v:val)'))
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
528
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
529 " Click in "+" of inner fold in foldcolumn should open it.
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
530 redraw
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
531 let row = 4
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
532 let col = 2
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
533 call MouseLeftClick(row, col)
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
534 call MouseLeftRelease(row, col)
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
535 call assert_equal([-1, -1, -1, -1, -1, -1, -1],
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
536 \ map(range(1, 7), 'foldclosed(v:val)'))
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
537
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
538 " Click in "-" of outer fold in foldcolumn should close it.
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
539 redraw
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
540 let row = 2
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
541 let col = 1
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
542 call MouseLeftClick(row, col)
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
543 call MouseLeftRelease(row, col)
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
544 call assert_equal([-1, 2, 2, 2, 2, 2, -1],
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
545 \ map(range(1, 7), 'foldclosed(v:val)'))
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
546 norm! zR
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
547
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
548 " Click in "|" of inner fold in foldcolumn should close it.
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
549 redraw
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
550 let row = 5
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
551 let col = 2
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
552 call MouseLeftClick(row, col)
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
553 call MouseLeftRelease(row, col)
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
554 call assert_equal([-1, -1, -1, 4, 4, -1, -1],
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
555 \ map(range(1, 7), 'foldclosed(v:val)'))
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
556
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
557 let &foldcolumn = save_foldcolumn
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
558 let &ttymouse = save_ttymouse
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
559 let &term = save_term
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
560 let &mouse = save_mouse
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
561 bwipe!
5f3a86ba4261 patch 8.1.1179: no test for mouse clicks in the fold column
Bram Moolenaar <Bram@vim.org>
parents: 16346
diff changeset
562 endfunc