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
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2208,
+/**/
     2207,
 /**/
     2206,