0
0
mirror of https://github.com/vim/vim.git synced 2025-11-01 10:07:16 -04:00

patch 8.2.1022: various parts of code not covered by tests

Problem:    Various parts of code not covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6300)
This commit is contained in:
Bram Moolenaar
2020-06-20 16:05:32 +02:00
parent a190548e91
commit 845e0ee594
15 changed files with 330 additions and 11 deletions

View File

@@ -401,6 +401,14 @@ func Test_edit_13()
call assert_equal("", getline(2))
call assert_equal(" baz", getline(3))
set autoindent&
" pressing <C-U> to erase line should keep the indent with 'autoindent'
set backspace=2 autoindent
%d
exe "normal i\tone\<CR>three\<C-U>two"
call assert_equal(["\tone", "\ttwo"], getline(1, '$'))
set backspace& autoindent&
bwipe!
endfunc
@@ -1301,9 +1309,7 @@ endfunc
func Test_edit_rightleft()
" Cursor in rightleft mode moves differently
if !exists("+rightleft")
return
endif
CheckFeature rightleft
call NewWindow(10, 20)
call setline(1, ['abc', 'def', 'ghi'])
call cursor(1, 2)
@@ -1348,6 +1354,13 @@ func Test_edit_rightleft()
\" ihg",
\" ~"]
call assert_equal(join(expect, "\n"), join(lines, "\n"))
%d _
call test_override('redraw_flag', 1)
call test_override('char_avail', 1)
call feedkeys("a\<C-V>x41", "xt")
redraw!
call assert_equal(repeat(' ', 19) .. 'A', Screenline(1))
call test_override('ALL', 0)
set norightleft
bw!
endfunc
@@ -1683,4 +1696,103 @@ func Test_edit_file_no_read_perm()
call delete('Xfile')
endfunc
" Pressing escape in 'insertmode' should beep
func Test_edit_insertmode_esc_beeps()
new
set insertmode
call assert_beeps("call feedkeys(\"one\<Esc>\", 'xt')")
set insertmode&
" unsupported CTRL-G command should beep in insert mode.
call assert_beeps("normal i\<C-G>l")
close!
endfunc
" Test for 'hkmap' and 'hkmapp'
func Test_edit_hkmap()
CheckFeature rightleft
if has('win32') && !has('gui')
" Test fails on the MS-Windows terminal version
return
endif
new
set revins hkmap
let str = 'abcdefghijklmnopqrstuvwxyz'
let str ..= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
let str ..= '`/'',.;'
call feedkeys('i' .. str, 'xt')
let expected = "óõú,.;"
let expected ..= "ZYXWVUTSRQPONMLKJIHGFEDCBA"
let expected ..= "æèñ'äåàãø/ôíîöêìçïéòë÷âáðù"
call assert_equal(expected, getline(1))
%d
set revins hkmap hkmapp
let str = 'abcdefghijklmnopqrstuvwxyz'
let str ..= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
call feedkeys('i' .. str, 'xt')
let expected = "õYXWVUTSRQóOïíLKJIHGFEDêBA"
let expected ..= "öòXùåèúæø'ôñðîì÷çéäâóǟãëáà"
call assert_equal(expected, getline(1))
set revins& hkmap& hkmapp&
close!
endfunc
" Test for 'allowrevins' and using CTRL-_ in insert mode
func Test_edit_allowrevins()
CheckFeature rightleft
new
set allowrevins
call feedkeys("iABC\<C-_>DEF\<C-_>GHI", 'xt')
call assert_equal('ABCFEDGHI', getline(1))
set allowrevins&
close!
endfunc
" Test for inserting a register in insert mode using CTRL-R
func Test_edit_insert_reg()
new
let g:Line = ''
func SaveFirstLine()
let g:Line = Screenline(1)
return 'r'
endfunc
inoremap <expr> <buffer> <F2> SaveFirstLine()
call test_override('redraw_flag', 1)
call test_override('char_avail', 1)
let @r = 'sample'
call feedkeys("a\<C-R>=SaveFirstLine()\<CR>", "xt")
call assert_equal('"', g:Line)
call test_override('ALL', 0)
close!
endfunc
" When a character is inserted at the last position of the last line in a
" window, the window contents should be scrolled one line up. If the top line
" is part of a fold, then the entire fold should be scrolled up.
func Test_edit_lastline_scroll()
new
let h = winheight(0)
let lines = ['one', 'two', 'three']
let lines += repeat(['vim'], h - 4)
call setline(1, lines)
call setline(h, repeat('x', winwidth(0) - 1))
call feedkeys("GAx", 'xt')
redraw!
call assert_equal(h - 1, winline())
call assert_equal(2, line('w0'))
" scroll with a fold
1,2fold
normal gg
call setline(h + 1, repeat('x', winwidth(0) - 1))
call feedkeys("GAx", 'xt')
redraw!
call assert_equal(h - 1, winline())
call assert_equal(3, line('w0'))
close!
endfunc
" vim: shiftwidth=2 sts=2 expandtab