diff src/testdir/test_tab.vim @ 12686:aa658b33f25a v8.0.1221

patch 8.0.1221: still too many old style tests commit https://github.com/vim/vim/commit/15993ce9210e8b8d4bc11e1d640f6447b18d3e6c Author: Bram Moolenaar <Bram@vim.org> Date: Thu Oct 26 20:21:44 2017 +0200 patch 8.0.1221: still too many old style tests Problem: Still too many old style tests. Solution: Convert a few more tests to new style. (Yegappan Lakshmanan, closes #2256)
author Christian Brabandt <cb@256bit.org>
date Thu, 26 Oct 2017 20:30:05 +0200
parents
children fbf0681606fa
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_tab.vim
@@ -0,0 +1,45 @@
+
+" Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
+" Also test that dv_ works correctly
+func Test_smarttab()
+  enew!
+  set smarttab expandtab ts=8 sw=4
+  " make sure that backspace works, no matter what termcap is used
+  exe "set t_kD=\<C-V>x7f t_kb=\<C-V>x08"
+  call append(0, ['start text',
+	      \ "\t\tsome test text",
+	      \ 'test text',
+	      \ "\t\tother test text",
+	      \ '    a cde',
+	      \ '    f ghi',
+	      \ 'test text',
+	      \ '  Second line beginning with whitespace'
+	      \ ])
+  call cursor(1, 1)
+  exe "normal /some\<CR>"
+  exe "normal r\t"
+  call assert_equal("\t\t    ome test text", getline('.'))
+  set noexpandtab
+  exe "normal /other\<CR>"
+  exe "normal r\t"
+  call assert_equal("\t\t    ther test text", getline('.'))
+
+  " Test replacing with Tabs and then backspacing to undo it
+  exe "normal j0wR\t\t\t\<BS>\<BS>\<BS>"
+  call assert_equal("    a cde", getline('.'))
+  " Test replacing with Tabs
+  exe "normal j0wR\t\t\t"
+  call assert_equal("    \t\thi", getline('.'))
+
+  " Test that copyindent works with expandtab set
+  set expandtab smartindent copyindent ts=8 sw=8 sts=8
+  exe "normal jo{\<CR>x"
+  call assert_equal('{', getline(line('.') - 1))
+  call assert_equal('        x', getline('.'))
+  set nosol
+  exe "normal /Second line/\<CR>"
+  exe "normal fwdv_"
+  call assert_equal('  with whitespace', getline('.'))
+  enew!
+  set expandtab& smartindent& copyindent& ts& sw& sts&
+endfunc