Mercurial > vim
changeset 9867:86f73f026a9a v7.4.2208
commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 14 15:32:11 2016 +0200
patch 7.4.2208
Problem: Test for mappings is old style.
Solution: Convert the test to new style.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 14 Aug 2016 15:45:05 +0200 |
parents | a6874bce6264 |
children | f10f5819f3e6 |
files | src/Makefile src/testdir/Make_all.mak src/testdir/test_alot.vim src/testdir/test_mapping.in src/testdir/test_mapping.ok src/testdir/test_mapping.vim src/version.c |
diffstat | 7 files changed, 104 insertions(+), 96 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Makefile +++ b/src/Makefile @@ -2028,7 +2028,6 @@ test1 \ test_listchars \ test_listlbr \ test_listlbr_utf8 \ - test_mapping \ test_marks \ test_nested_function \ test_search_mbyte \ @@ -2094,6 +2093,7 @@ test_arglist \ test_largefile \ test_lispwords \ test_man \ + test_mapping \ test_match \ test_matchadd_conceal \ test_matchadd_conceal_utf8 \
--- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -98,7 +98,6 @@ SCRIPTS_ALL = \ test_insertcount.out \ test_listchars.out \ test_listlbr.out \ - test_mapping.out \ test_marks.out \ test_nested_function.out \ test_search_mbyte.out \
--- a/src/testdir/test_alot.vim +++ b/src/testdir/test_alot.vim @@ -23,6 +23,7 @@ source test_lambda.vim source test_lispwords.vim source test_match.vim source test_menu.vim +source test_mapping.vim source test_messages.vim source test_partial.vim source test_popup.vim
deleted file mode 100644 --- a/src/testdir/test_mapping.in +++ /dev/null @@ -1,72 +0,0 @@ -Test for mappings and abbreviations - -STARTTEST -:so small.vim -:so mbyte.vim -:set encoding=utf-8 -: " abbreviations with р (0x80) should work -:inoreab чкпр vim -GAчкпр - -:" mapping of ctrl-c in Insert mode -:set cpo-=< cpo-=k -:inoremap <c-c> <ctrl-c> -:cnoremap <c-c> dummy -:cunmap <c-c> -GA -TEST2: CTRL-C |A| - -:unmap <c-c> -:unmap! <c-c> -:" -:" mapping of ctrl-c in Visual mode -:vnoremap <c-c> :<C-u>$put ='vmap works' -GV -:vunmap <c-c> -:" -:" langmap should not get remapped in insert mode -:inoremap { FAIL_ilangmap -:set langmap=+{ langnoremap -o+ -:" Insert-mode expr mapping with langmap -:inoremap <expr> { "FAIL_iexplangmap" -o+ -:" langmap should not get remapped in Command-line mode -:cnoremap { FAIL_clangmap -:call append(line('$'), '+') -:cunmap { -:" Command-line mode expr mapping with langmap -:cnoremap <expr> { "FAIL_cexplangmap" -:call append(line('$'), '+') -:cunmap { -:" -:" issue #212 (feedkeys insert mapping at current position) -:nnoremap . :call feedkeys(".", "in")<cr> -:/^a b -0qqdw.ifooqj0@q:unmap . - -:" <c-g>U<cursor> works only within a single line -:imapclear -:imap ( ()<c-g>U<left> -G2oki -Test1: text with a (here some more textk. -:" test undo -G2oki -Test2: text wit a (here some more text [und undo]uk.u -:" -:imapclear -:set whichwrap=<,>,[,] -G3o2k -:exe ":norm! iTest3: text with a (parenthesis here\<C-G>U\<Right>new line here\<esc>\<up>\<up>." - - - -:/^test/,$w! test.out -:qa! -ENDTEST - -test starts here: - -a b c d -a b c d -
deleted file mode 100644 --- a/src/testdir/test_mapping.ok +++ /dev/null @@ -1,22 +0,0 @@ -test starts here: - -fooc d -fooc d -vim -TEST2: CTRL-C |<ctrl-c>A| - -vmap works -+ -+ -+ -+ - -Test1: text with a (here some more text) -Test1: text with a (here some more text) - - -Test2: text wit a (here some more text [und undo]) - -new line here -Test3: text with a (parenthesis here -new line here
new file mode 100644 --- /dev/null +++ b/src/testdir/test_mapping.vim @@ -0,0 +1,100 @@ +" Tests for mappings and abbreviations + +if !has('multi_byte') + finish +endif + +func Test_abbreviation() + " abbreviation with 0x80 should work + inoreab чкпр vim + call feedkeys("Goчкпр \<Esc>", "xt") + call assert_equal('vim ', getline('$')) + iunab чкпр + set nomodified +endfunc + +func Test_map_ctrl_c_insert() + " mapping of ctrl-c in Insert mode + set cpo-=< cpo-=k + inoremap <c-c> <ctrl-c> + cnoremap <c-c> dummy + cunmap <c-c> + call feedkeys("GoTEST2: CTRL-C |\<C-C>A|\<Esc>", "xt") + call assert_equal('TEST2: CTRL-C |<ctrl-c>A|', getline('$')) + unmap! <c-c> + set nomodified +endfunc + +func Test_map_ctrl_c_visual() + " mapping of ctrl-c in Visual mode + vnoremap <c-c> :<C-u>$put ='vmap works' + call feedkeys("GV\<C-C>\<CR>", "xt") + call assert_equal('vmap works', getline('$')) + vunmap <c-c> + set nomodified +endfunc + +func Test_map_langmap() + " langmap should not get remapped in insert mode + inoremap { FAIL_ilangmap + set langmap=+{ langnoremap + call feedkeys("Go+\<Esc>", "xt") + call assert_equal('+', getline('$')) + + " Insert-mode expr mapping with langmap + inoremap <expr> { "FAIL_iexplangmap" + call feedkeys("Go+\<Esc>", "xt") + call assert_equal('+', getline('$')) + iunmap <expr> { + + " langmap should not get remapped in Command-line mode + cnoremap { FAIL_clangmap + call feedkeys(":call append(line('$'), '+')\<CR>", "xt") + call assert_equal('+', getline('$')) + cunmap { + + " Command-line mode expr mapping with langmap + cnoremap <expr> { "FAIL_cexplangmap" + call feedkeys(":call append(line('$'), '+')\<CR>", "xt") + call assert_equal('+', getline('$')) + cunmap { + set nomodified +endfunc + +func Test_map_feedkeys() + " issue #212 (feedkeys insert mapping at current position) + nnoremap . :call feedkeys(".", "in")<cr> + call setline('$', ['a b c d', 'a b c d']) + $-1 + call feedkeys("0qqdw.ifoo\<Esc>qj0@q\<Esc>", "xt") + call assert_equal(['fooc d', 'fooc d'], getline(line('$') - 1, line('$'))) + unmap . + set nomodified +endfunc + +func Test_map_cursor() + " <c-g>U<cursor> works only within a single line + imapclear + imap ( ()<c-g>U<left> + call feedkeys("G2o\<Esc>ki\<CR>Test1: text with a (here some more text\<Esc>k.", "xt") + call assert_equal('Test1: text with a (here some more text)', getline(line('$') - 2)) + call assert_equal('Test1: text with a (here some more text)', getline(line('$') - 1)) + + " test undo + call feedkeys("G2o\<Esc>ki\<CR>Test2: text wit a (here some more text [und undo]\<C-G>u\<Esc>k.u", "xt") + call assert_equal('', getline(line('$') - 2)) + call assert_equal('Test2: text wit a (here some more text [und undo])', getline(line('$') - 1)) + set nomodified + imapclear +endfunc + +" This isn't actually testing a mapping, but similar use of CTRL-G U as above. +func Test_break_undo() + :set whichwrap=<,>,[,] + call feedkeys("G4o2k", "xt") + exe ":norm! iTest3: text with a (parenthesis here\<C-G>U\<Right>new line here\<esc>\<up>\<up>." + call assert_equal('new line here', getline(line('$') - 3)) + call assert_equal('Test3: text with a (parenthesis here', getline(line('$') - 2)) + call assert_equal('new line here', getline(line('$') - 1)) + set nomodified +endfunc