patch 7.4.2098
Problem: Text object tests are old style.
Solution: Turn them into new style tests. (James McCoy, closes #941)
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 11cc934..4e4f43b 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -108,7 +108,6 @@
test_search_mbyte.out \
test_signs.out \
test_tagcase.out \
- test_textobjects.out \
test_utf8.out \
test_wordcount.out \
test_writefile.out
@@ -187,6 +186,7 @@
test_ruby.res \
test_stat.res \
test_syntax.res \
+ test_textobjects.res \
test_usercommands.res \
test_viminfo.res \
test_viml.res \
diff --git a/src/testdir/test_textobjects.in b/src/testdir/test_textobjects.in
deleted file mode 100644
index dc48efc..0000000
--- a/src/testdir/test_textobjects.in
+++ /dev/null
@@ -1,40 +0,0 @@
-Tests for text-objects vim: set ft=vim :
-
-STARTTEST
-:so small.vim
-:if !has('textobjects') | e! test.ok | wq! test.out | endif
-:set nocp viminfo+=nviminfo
-:"
-:function SelectionOut(data)
-: new
-: call setline(1, a:data)
-: call setreg('"', '')
-: normal! ggfrmavi)y
-: $put =getreg('\"')
-: call setreg('"', '')
-: normal! `afbmavi)y
-: $put =getreg('\"')
-: call setreg('"', '')
-: normal! `afgmavi)y
-: $put =getreg('\"')
-: %yank a
-: q!
-: $put =getreg('a')
-:endfunction
-:"
-:$put ='# Test for vi) without cpo-M'
-:set cpo-=M
-:call SelectionOut('(red \(blue) green)')
-:"
-:$put ='# Test for vi) with cpo-M #1'
-:set cpo+=M
-:call SelectionOut('(red \(blue) green)')
-:"
-:$put ='# Test for vi) with cpo-M #2'
-:set cpo+=M
-:call SelectionOut('(red (blue\) green)')
-:/^Results/,$w test.out
-:qa!
-ENDTEST
-
-Results of text-objects
diff --git a/src/testdir/test_textobjects.ok b/src/testdir/test_textobjects.ok
deleted file mode 100644
index b670c7d..0000000
--- a/src/testdir/test_textobjects.ok
+++ /dev/null
@@ -1,16 +0,0 @@
-Results of text-objects
-# Test for vi) without cpo-M
-(red \(blue) green)
-red \(blue
-red \(blue
-
-# Test for vi) with cpo-M #1
-(red \(blue) green)
-red \(blue) green
-blue
-red \(blue) green
-# Test for vi) with cpo-M #2
-(red (blue\) green)
-red (blue\) green
-blue\
-red (blue\) green
diff --git a/src/testdir/test_textobjects.vim b/src/testdir/test_textobjects.vim
new file mode 100644
index 0000000..630ae5d
--- /dev/null
+++ b/src/testdir/test_textobjects.vim
@@ -0,0 +1,43 @@
+" Test for textobjects
+
+if !has('textobjects')
+ finish
+endif
+
+function! CpoM(line, useM, expected)
+ new
+
+ if a:useM
+ set cpoptions+=M
+ else
+ set cpoptions-=M
+ endif
+
+ call setline(1, a:line)
+
+ call setreg('"', '')
+ normal! ggfrmavi)y
+ call assert_equal(getreg('"'), a:expected[0])
+
+ call setreg('"', '')
+ normal! `afbmavi)y
+ call assert_equal(getreg('"'), a:expected[1])
+
+ call setreg('"', '')
+ normal! `afgmavi)y
+ call assert_equal(getreg('"'), a:expected[2])
+
+ q!
+endfunction
+
+function! Test_inner_block_without_cpo_M()
+ call CpoM('(red \(blue) green)', 0, ['red \(blue', 'red \(blue', ''])
+endfunction
+
+function! Test_inner_block_with_cpo_M_left_backslash()
+ call CpoM('(red \(blue) green)', 1, ['red \(blue) green', 'blue', 'red \(blue) green'])
+endfunction
+
+function! Test_inner_block_with_cpo_M_right_backslash()
+ call CpoM('(red (blue\) green)', 1, ['red (blue\) green', 'blue\', 'red (blue\) green'])
+endfunction