patch 8.0.1447: still too many old style tests

Problem:    Still too many old style tests.
Solution:   Turn a few tests into new style. (Yegappan Lakshmanan,
            closes #2509)
diff --git a/src/testdir/test_textformat.vim b/src/testdir/test_textformat.vim
index 999566c..377f761 100644
--- a/src/testdir/test_textformat.vim
+++ b/src/testdir/test_textformat.vim
@@ -166,3 +166,289 @@
   setl ai& tw& fo& si& comments&
   enew!
 endfunc
+
+" Tests for :right, :center and :left on text with embedded TAB.
+func Test_format_align()
+  enew!
+  set tw=65
+
+  " :left alignment
+  call append(0, [
+	      \ "	test for :left",
+	      \ "	  a		a",
+	      \ "	    fa		a",
+	      \ "	  dfa		a",
+	      \ "	        sdfa		a",
+	      \ "	  asdfa		a",
+	      \ "	        xasdfa		a",
+	      \ "asxxdfa		a",
+	      \ ])
+  %left
+  call assert_equal([
+	      \ "test for :left",
+	      \ "a		a",
+	      \ "fa		a",
+	      \ "dfa		a",
+	      \ "sdfa		a",
+	      \ "asdfa		a",
+	      \ "xasdfa		a",
+	      \ "asxxdfa		a",
+	      \ ""
+	      \ ], getline(1, '$'))
+  enew!
+
+  " :center alignment
+  call append(0, [
+	      \ "	test for :center",
+	      \ "	  a		a",
+	      \ "	    fa		afd asdf",
+	      \ "	  dfa		a",
+	      \ "	        sdfa		afd asdf",
+	      \ "	  asdfa		a",
+	      \ "	        xasdfa		asdfasdfasdfasdfasdf",
+	      \ "asxxdfa		a"
+	      \ ])
+  %center
+  call assert_equal([
+	      \ "			test for :center",
+	      \ "			 a		a",
+	      \ "		      fa		afd asdf",
+	      \ "			 dfa		a",
+	      \ "		    sdfa		afd asdf",
+	      \ "			 asdfa		a",
+	      \ "	      xasdfa		asdfasdfasdfasdfasdf",
+	      \ "			asxxdfa		a",
+	      \ ""
+	      \ ], getline(1, '$'))
+  enew!
+
+  " :right alignment
+  call append(0, [
+	      \ "	test for :right",
+	      \ "	a		a",
+	      \ "	fa		a",
+	      \ "	dfa		a",
+	      \ "	sdfa		a",
+	      \ "	asdfa		a",
+	      \ "	xasdfa		a",
+	      \ "	asxxdfa		a",
+	      \ "	asxa;ofa		a",
+	      \ "	asdfaqwer		a",
+	      \ "	a		ax",
+	      \ "	fa		ax",
+	      \ "	dfa		ax",
+	      \ "	sdfa		ax",
+	      \ "	asdfa		ax",
+	      \ "	xasdfa		ax",
+	      \ "	asxxdfa		ax",
+	      \ "	asxa;ofa		ax",
+	      \ "	asdfaqwer		ax",
+	      \ "	a		axx",
+	      \ "	fa		axx",
+	      \ "	dfa		axx",
+	      \ "	sdfa		axx",
+	      \ "	asdfa		axx",
+	      \ "	xasdfa		axx",
+	      \ "	asxxdfa		axx",
+	      \ "	asxa;ofa		axx",
+	      \ "	asdfaqwer		axx",
+	      \ "	a		axxx",
+	      \ "	fa		axxx",
+	      \ "	dfa		axxx",
+	      \ "	sdfa		axxx",
+	      \ "	asdfa		axxx",
+	      \ "	xasdfa		axxx",
+	      \ "	asxxdfa		axxx",
+	      \ "	asxa;ofa		axxx",
+	      \ "	asdfaqwer		axxx",
+	      \ "	a		axxxo",
+	      \ "	fa		axxxo",
+	      \ "	dfa		axxxo",
+	      \ "	sdfa		axxxo",
+	      \ "	asdfa		axxxo",
+	      \ "	xasdfa		axxxo",
+	      \ "	asxxdfa		axxxo",
+	      \ "	asxa;ofa		axxxo",
+	      \ "	asdfaqwer		axxxo",
+	      \ "	a		axxxoi",
+	      \ "	fa		axxxoi",
+	      \ "	dfa		axxxoi",
+	      \ "	sdfa		axxxoi",
+	      \ "	asdfa		axxxoi",
+	      \ "	xasdfa		axxxoi",
+	      \ "	asxxdfa		axxxoi",
+	      \ "	asxa;ofa		axxxoi",
+	      \ "	asdfaqwer		axxxoi",
+	      \ "	a		axxxoik",
+	      \ "	fa		axxxoik",
+	      \ "	dfa		axxxoik",
+	      \ "	sdfa		axxxoik",
+	      \ "	asdfa		axxxoik",
+	      \ "	xasdfa		axxxoik",
+	      \ "	asxxdfa		axxxoik",
+	      \ "	asxa;ofa		axxxoik",
+	      \ "	asdfaqwer		axxxoik",
+	      \ "	a		axxxoike",
+	      \ "	fa		axxxoike",
+	      \ "	dfa		axxxoike",
+	      \ "	sdfa		axxxoike",
+	      \ "	asdfa		axxxoike",
+	      \ "	xasdfa		axxxoike",
+	      \ "	asxxdfa		axxxoike",
+	      \ "	asxa;ofa		axxxoike",
+	      \ "	asdfaqwer		axxxoike",
+	      \ "	a		axxxoikey",
+	      \ "	fa		axxxoikey",
+	      \ "	dfa		axxxoikey",
+	      \ "	sdfa		axxxoikey",
+	      \ "	asdfa		axxxoikey",
+	      \ "	xasdfa		axxxoikey",
+	      \ "	asxxdfa		axxxoikey",
+	      \ "	asxa;ofa		axxxoikey",
+	      \ "	asdfaqwer		axxxoikey",
+	      \ ])
+  %right
+  call assert_equal([
+	      \ "\t\t\t\t		  test for :right",
+	      \ "\t\t\t\t		      a		a",
+	      \ "\t\t\t\t		     fa		a",
+	      \ "\t\t\t\t		    dfa		a",
+	      \ "\t\t\t\t		   sdfa		a",
+	      \ "\t\t\t\t		  asdfa		a",
+	      \ "\t\t\t\t		 xasdfa		a",
+	      \ "\t\t\t\t		asxxdfa		a",
+	      \ "\t\t\t\t	       asxa;ofa		a",
+	      \ "\t\t\t\t	      asdfaqwer		a",
+	      \ "\t\t\t\t	      a		ax",
+	      \ "\t\t\t\t	     fa		ax",
+	      \ "\t\t\t\t	    dfa		ax",
+	      \ "\t\t\t\t	   sdfa		ax",
+	      \ "\t\t\t\t	  asdfa		ax",
+	      \ "\t\t\t\t	 xasdfa		ax",
+	      \ "\t\t\t\t	asxxdfa		ax",
+	      \ "\t\t\t\t       asxa;ofa		ax",
+	      \ "\t\t\t\t      asdfaqwer		ax",
+	      \ "\t\t\t\t	      a		axx",
+	      \ "\t\t\t\t	     fa		axx",
+	      \ "\t\t\t\t	    dfa		axx",
+	      \ "\t\t\t\t	   sdfa		axx",
+	      \ "\t\t\t\t	  asdfa		axx",
+	      \ "\t\t\t\t	 xasdfa		axx",
+	      \ "\t\t\t\t	asxxdfa		axx",
+	      \ "\t\t\t\t       asxa;ofa		axx",
+	      \ "\t\t\t\t      asdfaqwer		axx",
+	      \ "\t\t\t\t	      a		axxx",
+	      \ "\t\t\t\t	     fa		axxx",
+	      \ "\t\t\t\t	    dfa		axxx",
+	      \ "\t\t\t\t	   sdfa		axxx",
+	      \ "\t\t\t\t	  asdfa		axxx",
+	      \ "\t\t\t\t	 xasdfa		axxx",
+	      \ "\t\t\t\t	asxxdfa		axxx",
+	      \ "\t\t\t\t       asxa;ofa		axxx",
+	      \ "\t\t\t\t      asdfaqwer		axxx",
+	      \ "\t\t\t\t	      a		axxxo",
+	      \ "\t\t\t\t	     fa		axxxo",
+	      \ "\t\t\t\t	    dfa		axxxo",
+	      \ "\t\t\t\t	   sdfa		axxxo",
+	      \ "\t\t\t\t	  asdfa		axxxo",
+	      \ "\t\t\t\t	 xasdfa		axxxo",
+	      \ "\t\t\t\t	asxxdfa		axxxo",
+	      \ "\t\t\t\t       asxa;ofa		axxxo",
+	      \ "\t\t\t\t      asdfaqwer		axxxo",
+	      \ "\t\t\t\t	      a		axxxoi",
+	      \ "\t\t\t\t	     fa		axxxoi",
+	      \ "\t\t\t\t	    dfa		axxxoi",
+	      \ "\t\t\t\t	   sdfa		axxxoi",
+	      \ "\t\t\t\t	  asdfa		axxxoi",
+	      \ "\t\t\t\t	 xasdfa		axxxoi",
+	      \ "\t\t\t\t	asxxdfa		axxxoi",
+	      \ "\t\t\t\t       asxa;ofa		axxxoi",
+	      \ "\t\t\t\t      asdfaqwer		axxxoi",
+	      \ "\t\t\t\t	      a		axxxoik",
+	      \ "\t\t\t\t	     fa		axxxoik",
+	      \ "\t\t\t\t	    dfa		axxxoik",
+	      \ "\t\t\t\t	   sdfa		axxxoik",
+	      \ "\t\t\t\t	  asdfa		axxxoik",
+	      \ "\t\t\t\t	 xasdfa		axxxoik",
+	      \ "\t\t\t\t	asxxdfa		axxxoik",
+	      \ "\t\t\t\t       asxa;ofa		axxxoik",
+	      \ "\t\t\t\t      asdfaqwer		axxxoik",
+	      \ "\t\t\t\t	      a		axxxoike",
+	      \ "\t\t\t\t	     fa		axxxoike",
+	      \ "\t\t\t\t	    dfa		axxxoike",
+	      \ "\t\t\t\t	   sdfa		axxxoike",
+	      \ "\t\t\t\t	  asdfa		axxxoike",
+	      \ "\t\t\t\t	 xasdfa		axxxoike",
+	      \ "\t\t\t\t	asxxdfa		axxxoike",
+	      \ "\t\t\t\t       asxa;ofa		axxxoike",
+	      \ "\t\t\t\t      asdfaqwer		axxxoike",
+	      \ "\t\t\t\t	      a		axxxoikey",
+	      \ "\t\t\t\t	     fa		axxxoikey",
+	      \ "\t\t\t\t	    dfa		axxxoikey",
+	      \ "\t\t\t\t	   sdfa		axxxoikey",
+	      \ "\t\t\t\t	  asdfa		axxxoikey",
+	      \ "\t\t\t\t	 xasdfa		axxxoikey",
+	      \ "\t\t\t\t	asxxdfa		axxxoikey",
+	      \ "\t\t\t\t       asxa;ofa		axxxoikey",
+	      \ "\t\t\t\t      asdfaqwer		axxxoikey",
+	      \ ""
+	      \ ], getline(1, '$'))
+  enew!
+
+  set tw&
+endfunc
+
+" Test formatting a paragraph.
+func Test_format_para()
+  enew!
+  set fo+=tcroql tw=72
+
+  call append(0, [
+	\ "xxxxx xx xxxxxx ",
+	\ "xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx",
+	\ "xxxxxxxxxxxxxxxxxx xxxxx xxxx, xxxx xxxx xxxx xxxx xxx xx xx",
+	\ "xx xxxxxxx. xxxx xxxx.",
+	\ "",
+	\ "> xx xx, xxxx xxxx xxx xxxx xxx xxxxx xxx xxx xxxxxxx xxx xxxxx",
+	\ "> xxxxxx xxxxxxx: xxxx xxxxxxx, xx xxxxxx xxxx xxxxxxxxxx"
+	\ ])
+  exe "normal /xxxxxxxx$\<CR>"
+  normal 0gq6kk
+  call assert_equal([
+	\ "xxxxx xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx",
+	\ "xxxxxxxxxxxxxxxxxx xxxxx xxxx, xxxx xxxx xxxx xxxx xxx xx xx xx xxxxxxx.",
+	\ "xxxx xxxx.",
+	\ "",
+	\ "> xx xx, xxxx xxxx xxx xxxx xxx xxxxx xxx xxx xxxxxxx xxx xxxxx xxxxxx",
+	\ "> xxxxxxx: xxxx xxxxxxx, xx xxxxxx xxxx xxxxxxxxxx",
+	\ ""
+	\ ], getline(1, '$'))
+
+  set fo& tw&
+  enew!
+endfunc
+
+" Test undo after ":%s" and formatting.
+func Test_format_undo()
+  enew!
+  map gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
+
+  call append(0, [
+	      \ "aa aa aa aa",
+	      \ "bb bb bb bb",
+	      \ "cc cc cc cc"
+	      \ ])
+  " undo/redo here to make the next undo only work on the following changes
+  exe "normal i\<C-G>u"
+  call cursor(1,1)
+  normal ggu
+  call assert_equal([
+	      \ "aa aa aa aa",
+	      \ "bb bb bb bb",
+	      \ "cc cc cc cc",
+	      \ ""
+	      \ ], getline(1, '$'))
+
+  unmap gg
+  enew!
+endfunc