vim-patch:8.2.2916: operators are not fully tested

Problem:    Operators are not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#8290)
2ac7184d34
This commit is contained in:
Jan Edmund Lazo 2021-05-31 21:35:44 -04:00
parent 2f79caa02d
commit c3ac9c13df
No known key found for this signature in database
GPG Key ID: 64915E6E9F735B15
2 changed files with 124 additions and 0 deletions

View File

@ -2883,3 +2883,35 @@ func Test_normal_gk()
bw!
set cpoptions& number& numberwidth&
endfunc
" Some commands like yy, cc, dd, >>, << and !! accept a count after
" typing the first letter of the command.
func Test_normal_count_after_operator()
new
setlocal shiftwidth=4 tabstop=8 autoindent
call setline(1, ['one', 'two', 'three', 'four', 'five'])
let @a = ''
normal! j"ay4y
call assert_equal("two\nthree\nfour\nfive\n", @a)
normal! 3G>2>
call assert_equal(['one', 'two', ' three', ' four', 'five'],
\ getline(1, '$'))
exe "normal! 3G0c2cred\nblue"
call assert_equal(['one', 'two', ' red', ' blue', 'five'],
\ getline(1, '$'))
exe "normal! gg<8<"
call assert_equal(['one', 'two', 'red', 'blue', 'five'],
\ getline(1, '$'))
exe "normal! ggd3d"
call assert_equal(['blue', 'five'], getline(1, '$'))
call setline(1, range(1, 4))
call feedkeys("gg!3!\<C-B>\"\<CR>", 'xt')
call assert_equal('".,.+2!', @:)
call feedkeys("gg!1!\<C-B>\"\<CR>", 'xt')
call assert_equal('".!', @:)
call feedkeys("gg!9!\<C-B>\"\<CR>", 'xt')
call assert_equal('".,$!', @:)
bw!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -762,7 +762,99 @@ func Test_visual_block_mode()
\ 'axyzqqqqefgmnoklm',
\ 'abcdqqqqijklm'], getline(1, 5))
" Test from ':help v_b_I_example'
%d _
setlocal tabstop=8 shiftwidth=4
let lines =<< trim END
abcdefghijklmnopqrstuvwxyz
abc defghijklmnopqrstuvwxyz
abcdef ghi jklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
END
call setline(1, lines)
exe "normal ggfo\<C-V>3jISTRING"
let expected =<< trim END
abcdefghijklmnSTRINGopqrstuvwxyz
abc STRING defghijklmnopqrstuvwxyz
abcdef ghi STRING jklmnopqrstuvwxyz
abcdefghijklmnSTRINGopqrstuvwxyz
END
call assert_equal(expected, getline(1, '$'))
" Test from ':help v_b_A_example'
%d _
let lines =<< trim END
abcdefghijklmnopqrstuvwxyz
abc defghijklmnopqrstuvwxyz
abcdef ghi jklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
END
call setline(1, lines)
exe "normal ggfo\<C-V>3j$ASTRING"
let expected =<< trim END
abcdefghijklmnopqrstuvwxyzSTRING
abc defghijklmnopqrstuvwxyzSTRING
abcdef ghi jklmnopqrstuvwxyzSTRING
abcdefghijklmnopqrstuvwxyzSTRING
END
call assert_equal(expected, getline(1, '$'))
" Test from ':help v_b_<_example'
%d _
let lines =<< trim END
abcdefghijklmnopqrstuvwxyz
abc defghijklmnopqrstuvwxyz
abcdef ghi jklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
END
call setline(1, lines)
exe "normal ggfo\<C-V>3j3l<.."
let expected =<< trim END
abcdefghijklmnopqrstuvwxyz
abc defghijklmnopqrstuvwxyz
abcdef ghi jklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
END
call assert_equal(expected, getline(1, '$'))
" Test from ':help v_b_>_example'
%d _
let lines =<< trim END
abcdefghijklmnopqrstuvwxyz
abc defghijklmnopqrstuvwxyz
abcdef ghi jklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
END
call setline(1, lines)
exe "normal ggfo\<C-V>3j>.."
let expected =<< trim END
abcdefghijklmn opqrstuvwxyz
abc defghijklmnopqrstuvwxyz
abcdef ghi jklmnopqrstuvwxyz
abcdefghijklmn opqrstuvwxyz
END
call assert_equal(expected, getline(1, '$'))
" Test from ':help v_b_r_example'
%d _
let lines =<< trim END
abcdefghijklmnopqrstuvwxyz
abc defghijklmnopqrstuvwxyz
abcdef ghi jklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
END
call setline(1, lines)
exe "normal ggfo\<C-V>5l3jrX"
let expected =<< trim END
abcdefghijklmnXXXXXXuvwxyz
abc XXXXXXhijklmnopqrstuvwxyz
abcdef ghi XXXXXX jklmnopqrstuvwxyz
abcdefghijklmnXXXXXXuvwxyz
END
call assert_equal(expected, getline(1, '$'))
bwipe!
set tabstop& shiftwidth&
endfunc
" Test block-insert using cursor keys for movement