0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.0134: some map functionality not covered by tests

Problem:    Some map functionality not covered by tests.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5504)
This commit is contained in:
Bram Moolenaar 2020-01-20 20:41:42 +01:00
parent 98a336dd49
commit 8ba6bb7c94
3 changed files with 82 additions and 0 deletions

View File

@ -42,6 +42,11 @@ function Test_maparg()
map abc y<S-char-114>y map abc y<S-char-114>y
call assert_equal("yRy", maparg('abc')) call assert_equal("yRy", maparg('abc'))
omap { w
let d = maparg('{', 'o', 0, 1)
call assert_equal(['{', 'w', 'o'], [d.lhs, d.rhs, d.mode])
ounmap {
map abc <Nop> map abc <Nop>
call assert_equal("<Nop>", maparg('abc')) call assert_equal("<Nop>", maparg('abc'))
unmap abc unmap abc
@ -102,3 +107,5 @@ function Test_range_map()
execute "normal a\uf040\<Esc>" execute "normal a\uf040\<Esc>"
call assert_equal("abcd", getline(1)) call assert_equal("abcd", getline(1))
endfunction endfunction
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -492,3 +492,76 @@ func Test_expr_map_restore_cursor()
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
call delete('XtestExprMap') call delete('XtestExprMap')
endfunc endfunc
" Test for mapping errors
func Test_map_error()
call assert_fails('unmap', 'E474:')
call assert_fails("exe 'map ' .. repeat('a', 51) .. ' :ls'", 'E474:')
call assert_fails('unmap abc', 'E31:')
call assert_fails('unabbr abc', 'E24:')
call assert_equal('', maparg(''))
call assert_fails('echo maparg("abc", [])', 'E730:')
" unique map
map ,w /[#&!]<CR>
call assert_fails("map <unique> ,w /[#&!]<CR>", 'E227:')
" unique buffer-local map
call assert_fails("map <buffer> <unique> ,w /[.,;]<CR>", 'E225:')
unmap ,w
" unique abbreviation
abbr SP special
call assert_fails("abbr <unique> SP special", 'E226:')
" unique buffer-local map
call assert_fails("abbr <buffer> <unique> SP special", 'E224:')
unabbr SP
call assert_fails('mapclear abc', 'E474:')
call assert_fails('abclear abc', 'E474:')
endfunc
" Test for <special> key mapping
func Test_map_special()
new
let old_cpo = &cpo
set cpo+=<
imap <F12> Blue
call feedkeys("i\<F12>", "x")
call assert_equal("<F12>", getline(1))
call feedkeys("ddi<F12>", "x")
call assert_equal("Blue", getline(1))
iunmap <F12>
imap <special> <F12> Green
call feedkeys("ddi\<F12>", "x")
call assert_equal("Green", getline(1))
call feedkeys("ddi<F12>", "x")
call assert_equal("<F12>", getline(1))
iunmap <special> <F12>
let &cpo = old_cpo
%bwipe!
endfunc
" Test for hasmapto()
func Test_hasmapto()
call assert_equal(0, hasmapto('/^\k\+ ('))
call assert_equal(0, hasmapto('/^\k\+ (', 'n'))
nmap ,f /^\k\+ (<CR>
call assert_equal(1, hasmapto('/^\k\+ ('))
call assert_equal(1, hasmapto('/^\k\+ (', 'n'))
call assert_equal(0, hasmapto('/^\k\+ (', 'v'))
call assert_equal(0, hasmapto('/^\k\+ (', 'n', 1))
endfunc
" Test for command-line completion of maps
func Test_mapcomplete()
call assert_equal(['<buffer>', '<expr>', '<nowait>', '<script>',
\ '<silent>', '<special>', '<unique>'],
\ getcompletion('', 'mapping'))
call assert_equal([], getcompletion(',d', 'mapping'))
call feedkeys(":abbr! \<C-A>\<C-B>\"\<CR>", 'tx')
call assert_match("abbr! \x01", @:)
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@ -742,6 +742,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 */
/**/
134,
/**/ /**/
133, 133,
/**/ /**/