aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/019_smarttab_expandtab_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/legacy/019_smarttab_expandtab_spec.lua')
-rw-r--r--test/functional/legacy/019_smarttab_expandtab_spec.lua56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/functional/legacy/019_smarttab_expandtab_spec.lua b/test/functional/legacy/019_smarttab_expandtab_spec.lua
new file mode 100644
index 0000000000..a33bd0c3ae
--- /dev/null
+++ b/test/functional/legacy/019_smarttab_expandtab_spec.lua
@@ -0,0 +1,56 @@
+-- Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
+-- Also test that dv_ works correctly
+
+local helpers = require('test.functional.helpers')
+local feed, insert = helpers.feed, helpers.insert
+local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
+
+describe([[performing "r<Tab>" with 'smarttab' and 'expandtab' set/not set, and "dv_"]], function()
+ setup(clear)
+
+ it('is working', function()
+ insert([[
+ start text
+ some test text
+ test text
+ other test text
+ a cde
+ f ghi
+ test text
+ Second line beginning with whitespace]])
+
+ execute('set smarttab expandtab ts=8 sw=4')
+ -- Make sure that backspace works, no matter what termcap is used.
+ execute('set t_kD=x7f t_kb=x08')
+
+ execute('/some')
+ feed('r ')
+ execute('set noexpandtab')
+ execute('/other')
+ feed('r <cr>')
+ -- Test replacing with Tabs and then backspacing to undo it.
+ feed('0wR <bs><bs><bs><esc><cr>')
+ -- Test replacing with Tabs.
+ feed('0wR <esc><cr>')
+ -- Test that copyindent works with expandtab set.
+ execute('set expandtab smartindent copyindent ts=8 sw=8 sts=8')
+ feed('o{<cr>x<esc>')
+ execute('set nosol')
+ execute('/Second line/')
+ -- Test "dv_"
+ feed('fwdv_')
+
+ -- Assert buffer contents.
+ expect([[
+ start text
+ ome test text
+ test text
+ ther test text
+ a cde
+ hi
+ test text
+ {
+ x
+ with whitespace]])
+ end)
+end)