mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:partial:8.1.1155: termcodes tests can be improved
Problem: Termcodes tests can be improved.
Solution: Add helper functions to simplify tests. Dragging statusline for
xterm and sgr. (Dominique Pelle, closes vim/vim#4237)
3fbd2d7c31
Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
parent
521e039f27
commit
a44c8a3783
@ -1,5 +1,9 @@
|
||||
" Helper functions for generating mouse events
|
||||
|
||||
let g:Ttymouse_values = ['sgr']
|
||||
let g:Ttymouse_dec = []
|
||||
let g:Ttymouse_netterm = []
|
||||
|
||||
func MouseLeftClick(row, col)
|
||||
call nvim_input_mouse('left', 'press', '', 0, a:row - 1, a:col - 1)
|
||||
call getchar(1)
|
||||
|
@ -163,7 +163,7 @@ endfunc
|
||||
" Test double/triple/quadruple click to start 'select' mode
|
||||
func Test_term_mouse_multiple_clicks_to_select_mode()
|
||||
let save_mouse = &mouse
|
||||
" let save_term = &term
|
||||
let save_term = &term
|
||||
" let save_ttymouse = &ttymouse
|
||||
" call test_override('no_query_mouse', 1)
|
||||
" set mouse=a term=xterm mousetime=200
|
||||
@ -171,10 +171,9 @@ func Test_term_mouse_multiple_clicks_to_select_mode()
|
||||
set selectmode=mouse
|
||||
new
|
||||
|
||||
" for ttymouse_val in g:Ttymouse_values + g:Ttymouse_dec
|
||||
" let msg = 'ttymouse=' .. ttymouse_val
|
||||
" exe 'set ttymouse=' .. ttymouse_val
|
||||
let msg = ''
|
||||
for ttymouse_val in g:Ttymouse_values + g:Ttymouse_dec
|
||||
let msg = 'ttymouse=' .. ttymouse_val
|
||||
" exe 'set ttymouse=' .. ttymouse_val
|
||||
|
||||
" Single-click and drag should 'select' the characters
|
||||
call setline(1, ['foo [foo bar] foo', 'foo'])
|
||||
@ -247,7 +246,7 @@ func Test_term_mouse_multiple_clicks_to_select_mode()
|
||||
call assert_equal("\<c-s>", mode(), msg)
|
||||
norm! x
|
||||
call assert_equal(['axaa', 'bxbb'], getline(1, '$'), msg)
|
||||
" endfor
|
||||
endfor
|
||||
|
||||
let &mouse = save_mouse
|
||||
" let &term = save_term
|
||||
|
@ -1,4 +1,161 @@
|
||||
|
||||
source check.vim
|
||||
" CheckNotGui
|
||||
" CheckUnix
|
||||
|
||||
source shared.vim
|
||||
source mouse.vim
|
||||
source view_util.vim
|
||||
source term_util.vim
|
||||
|
||||
func Test_xterm_mouse_click()
|
||||
new
|
||||
let save_mouse = &mouse
|
||||
let save_term = &term
|
||||
" let save_ttymouse = &ttymouse
|
||||
" set mouse=a term=xterm
|
||||
set mouse=a
|
||||
call setline(1, ['line 1', 'line 2', 'line 3 is a bit longer'])
|
||||
for ttymouse_val in ['sgr']
|
||||
" exe 'set ttymouse=' . ttymouse_val
|
||||
go
|
||||
call assert_equal([0, 1, 1, 0], getpos('.'))
|
||||
let row = 2
|
||||
let col = 6
|
||||
call MouseLeftClick(row, col)
|
||||
call MouseLeftRelease(row, col)
|
||||
call assert_equal([0, 2, 6, 0], getpos('.'))
|
||||
endfor
|
||||
|
||||
let &mouse = save_mouse
|
||||
" let &term = save_term
|
||||
" let &ttymouse = save_ttymouse
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_xterm_mouse_wheel()
|
||||
new
|
||||
let save_mouse = &mouse
|
||||
let save_term = &term
|
||||
" let save_ttymouse = &ttymouse
|
||||
" set mouse=a term=xterm
|
||||
set mouse=a
|
||||
call setline(1, range(1, 100))
|
||||
|
||||
for ttymouse_val in ['sgr']
|
||||
" exe 'set ttymouse=' . ttymouse_val
|
||||
go
|
||||
call assert_equal(1, line('w0'))
|
||||
call assert_equal([0, 1, 1, 0], getpos('.'))
|
||||
|
||||
call MouseWheelDown(1, 1)
|
||||
call assert_equal(4, line('w0'))
|
||||
call assert_equal([0, 4, 1, 0], getpos('.'))
|
||||
|
||||
call MouseWheelDown(1, 1)
|
||||
call assert_equal(7, line('w0'))
|
||||
call assert_equal([0, 7, 1, 0], getpos('.'))
|
||||
|
||||
call MouseWheelUp(1, 1)
|
||||
call assert_equal(4, line('w0'))
|
||||
call assert_equal([0, 7, 1, 0], getpos('.'))
|
||||
|
||||
call MouseWheelUp(1, 1)
|
||||
call assert_equal(1, line('w0'))
|
||||
call assert_equal([0, 7, 1, 0], getpos('.'))
|
||||
endfor
|
||||
|
||||
let &mouse = save_mouse
|
||||
" let &term = save_term
|
||||
" let &ttymouse = save_ttymouse
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_xterm_mouse_drag_window_separator()
|
||||
let save_mouse = &mouse
|
||||
let save_term = &term
|
||||
" let save_ttymouse = &ttymouse
|
||||
" set mouse=a term=xterm
|
||||
set mouse=a
|
||||
|
||||
for ttymouse_val in ['sgr']
|
||||
" exe 'set ttymouse=' . ttymouse_val
|
||||
|
||||
" Split horizontally and test dragging the horizontal window separator.
|
||||
split
|
||||
let rowseparator = winheight(0) + 1
|
||||
let row = rowseparator
|
||||
let col = 1
|
||||
call MouseLeftClick(row, col)
|
||||
|
||||
let row -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(rowseparator - 1, winheight(0) + 1)
|
||||
let row += 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(rowseparator, winheight(0) + 1)
|
||||
call MouseLeftRelease(row, col)
|
||||
call assert_equal(rowseparator, winheight(0) + 1)
|
||||
|
||||
bwipe!
|
||||
|
||||
" Split vertically and test dragging the vertical window separator.
|
||||
vsplit
|
||||
let colseparator = winwidth(0) + 1
|
||||
|
||||
let row = 1
|
||||
let col = colseparator
|
||||
call MouseLeftClick(row, col)
|
||||
let col -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(colseparator - 1, winwidth(0) + 1)
|
||||
let col += 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(colseparator, winwidth(0) + 1)
|
||||
call MouseLeftRelease(row, col)
|
||||
call assert_equal(colseparator, winwidth(0) + 1)
|
||||
|
||||
bwipe!
|
||||
endfor
|
||||
|
||||
let &mouse = save_mouse
|
||||
" let &term = save_term
|
||||
" let &ttymouse = save_ttymouse
|
||||
endfunc
|
||||
|
||||
func Test_xterm_mouse_drag_statusline()
|
||||
let save_mouse = &mouse
|
||||
let save_term = &term
|
||||
" let save_ttymouse = &ttymouse
|
||||
" set mouse=a term=xterm
|
||||
set mouse=a
|
||||
|
||||
for ttymouse_val in ['sgr']
|
||||
" exe 'set ttymouse=' . ttymouse_val
|
||||
|
||||
call assert_equal(1, &cmdheight)
|
||||
let rowstatusline = winheight(0) + 1
|
||||
let row = rowstatusline
|
||||
let col = 1
|
||||
call MouseLeftClick(row, col)
|
||||
let row -= 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(2, &cmdheight)
|
||||
call assert_equal(rowstatusline - 1, winheight(0) + 1)
|
||||
let row += 1
|
||||
call MouseLeftDrag(row, col)
|
||||
call assert_equal(1, &cmdheight)
|
||||
call assert_equal(rowstatusline, winheight(0) + 1)
|
||||
call MouseLeftRelease(row, col)
|
||||
call assert_equal(1, &cmdheight)
|
||||
call assert_equal(rowstatusline, winheight(0) + 1)
|
||||
endfor
|
||||
|
||||
let &mouse = save_mouse
|
||||
" let &term = save_term
|
||||
" let &ttymouse = save_ttymouse
|
||||
endfunc
|
||||
|
||||
" Test for translation of special key codes (<xF1>, <xF2>, etc.)
|
||||
func Test_Keycode_Translation()
|
||||
let keycodes = [
|
||||
|
Loading…
Reference in New Issue
Block a user