forked from aniani/vim
patch 8.2.2643: various code not covered by tests
Problem: Various code not covered by tests. Solution: Add a few more test. (Yegappan Lakshmanan, closes #7995)
This commit is contained in:
@@ -411,6 +411,33 @@ func Test_edit_13()
|
|||||||
bwipe!
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for autoindent removing indent when insert mode is stopped. Some parts
|
||||||
|
" of the code is exercised only when interactive mode is used. So use Vim in a
|
||||||
|
" terminal.
|
||||||
|
func Test_autoindent_remove_indent()
|
||||||
|
CheckRunVimInTerminal
|
||||||
|
let buf = RunVimInTerminal('-N Xfile', {'rows': 6, 'cols' : 20})
|
||||||
|
call TermWait(buf)
|
||||||
|
call term_sendkeys(buf, ":set autoindent\n")
|
||||||
|
" leaving insert mode in a new line with indent added by autoindent, should
|
||||||
|
" remove the indent.
|
||||||
|
call term_sendkeys(buf, "i\<Tab>foo\<CR>\<Esc>")
|
||||||
|
" Need to delay for sometime, otherwise the code in getchar.c will not be
|
||||||
|
" exercised.
|
||||||
|
call TermWait(buf, 50)
|
||||||
|
" when a line is wrapped and the cursor is at the start of the second line,
|
||||||
|
" leaving insert mode, should move the cursor back to the first line.
|
||||||
|
call term_sendkeys(buf, "o" .. repeat('x', 20) .. "\<Esc>")
|
||||||
|
" Need to delay for sometime, otherwise the code in getchar.c will not be
|
||||||
|
" exercised.
|
||||||
|
call TermWait(buf, 50)
|
||||||
|
call term_sendkeys(buf, ":w\n")
|
||||||
|
call TermWait(buf)
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
call assert_equal(["\tfoo", '', repeat('x', 20)], readfile('Xfile'))
|
||||||
|
call delete('Xfile')
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_edit_CR()
|
func Test_edit_CR()
|
||||||
" Test for <CR> in insert mode
|
" Test for <CR> in insert mode
|
||||||
" basically only in quickfix mode ist tested, the rest
|
" basically only in quickfix mode ist tested, the rest
|
||||||
|
@@ -1431,7 +1431,7 @@ func Test_input_func()
|
|||||||
call assert_equal('item1 item2 item3', c)
|
call assert_equal('item1 item2 item3', c)
|
||||||
|
|
||||||
" Test for using special characters as default input
|
" Test for using special characters as default input
|
||||||
call feedkeys(":let c = input('name? ', \"x\<BS>y\")\<CR>\<CR>", 'xt')
|
call feedkeys(":let c = input('name? ', \"x\\<BS>y\")\<CR>\<CR>", 'xt')
|
||||||
call assert_equal('y', c)
|
call assert_equal('y', c)
|
||||||
|
|
||||||
" Test for using <CR> as default input
|
" Test for using <CR> as default input
|
||||||
|
@@ -1389,4 +1389,14 @@ func Test_map_cmdkey_redo()
|
|||||||
ounmap i-
|
ounmap i-
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for using <script> with a map to remap characters in rhs
|
||||||
|
func Test_script_local_remap()
|
||||||
|
new
|
||||||
|
inoremap <buffer> <SID>xyz mno
|
||||||
|
inoremap <buffer> <script> abc st<SID>xyzre
|
||||||
|
normal iabc
|
||||||
|
call assert_equal('stmnore', getline(1))
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -2314,4 +2314,38 @@ func Test_Keycode_Translation()
|
|||||||
endfor
|
endfor
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for terminal keycodes that doesn't have termcap entries
|
||||||
|
func Test_special_term_keycodes()
|
||||||
|
new
|
||||||
|
" Test for <xHome>, <S-xHome> and <C-xHome>
|
||||||
|
" send <K_SPECIAL> <KS_EXTRA> keycode
|
||||||
|
call feedkeys("i\<C-K>\x80\xfd\x3f\n", 'xt')
|
||||||
|
" send <K_SPECIAL> <KS_MODIFIER> bitmap <K_SPECIAL> <KS_EXTRA> keycode
|
||||||
|
call feedkeys("i\<C-K>\x80\xfc\x2\x80\xfd\x3f\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfc\x4\x80\xfd\x3f\n", 'xt')
|
||||||
|
" Test for <xEnd>, <S-xEnd> and <C-xEnd>
|
||||||
|
call feedkeys("i\<C-K>\x80\xfd\x3d\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfc\x2\x80\xfd\x3d\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfc\x4\x80\xfd\x3d\n", 'xt')
|
||||||
|
" Test for <zHome>, <S-zHome> and <C-zHome>
|
||||||
|
call feedkeys("i\<C-K>\x80\xfd\x40\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfc\x2\x80\xfd\x40\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfc\x4\x80\xfd\x40\n", 'xt')
|
||||||
|
" Test for <zEnd>, <S-zEnd> and <C-zEnd>
|
||||||
|
call feedkeys("i\<C-K>\x80\xfd\x3e\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfc\x2\x80\xfd\x3e\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfc\x4\x80\xfd\x3e\n", 'xt')
|
||||||
|
" Test for <xUp>, <xDown>, <xLeft> and <xRight>
|
||||||
|
call feedkeys("i\<C-K>\x80\xfd\x41\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfd\x42\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfd\x43\n", 'xt')
|
||||||
|
call feedkeys("i\<C-K>\x80\xfd\x44\n", 'xt')
|
||||||
|
call assert_equal(['<Home>', '<S-Home>', '<C-Home>',
|
||||||
|
\ '<End>', '<S-End>', '<C-End>',
|
||||||
|
\ '<Home>', '<S-Home>', '<C-Home>',
|
||||||
|
\ '<End>', '<S-End>', '<C-End>',
|
||||||
|
\ '<Up>', '<Down>', '<Left>', '<Right>', ''], getline(1, '$'))
|
||||||
|
bw!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -747,4 +747,13 @@ func Test_redo_repeat_numbered_register()
|
|||||||
bwipe!
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for redo in insert mode using CTRL-O with multibyte characters
|
||||||
|
func Test_redo_multibyte_in_insert_mode()
|
||||||
|
new
|
||||||
|
call feedkeys("a\<C-K>ft", 'xt')
|
||||||
|
call feedkeys("uiHe\<C-O>.llo", 'xt')
|
||||||
|
call assert_equal("He\ufb05llo", getline(1))
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2643,
|
||||||
/**/
|
/**/
|
||||||
2642,
|
2642,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user