aboutsummaryrefslogtreecommitdiff
path: root/test/functional/options/pastetoggle_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/options/pastetoggle_spec.lua')
-rw-r--r--test/functional/options/pastetoggle_spec.lua37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/functional/options/pastetoggle_spec.lua b/test/functional/options/pastetoggle_spec.lua
new file mode 100644
index 0000000000..e449df31f5
--- /dev/null
+++ b/test/functional/options/pastetoggle_spec.lua
@@ -0,0 +1,37 @@
+local helpers = require('test.functional.helpers')(after_each)
+
+local clear = helpers.clear
+local feed = helpers.feed
+local execute = helpers.execute
+local eq = helpers.eq
+local eval = helpers.eval
+local sleep = helpers.sleep
+
+describe("'pastetoggle' option", function()
+ before_each(function()
+ clear()
+ execute('set nopaste')
+ execute('set pastetoggle=a')
+ end)
+ it("toggles 'paste'", function()
+ eq(eval('&paste'), 0)
+ feed('a')
+ -- Need another key so that the vgetorpeek() function returns.
+ feed('j')
+ eq(eval('&paste'), 1)
+ end)
+ it("multiple key 'pastetoggle' is waited for", function()
+ eq(eval('&paste'), 0)
+ local pastetoggle = 'lllll'
+ execute('set pastetoggle=' .. pastetoggle)
+ execute('set timeoutlen=1', 'set ttimoutlen=10000')
+ feed(pastetoggle:sub(0, 2))
+ -- sleep() for long enough that vgetorpeek() is gotten into, but short
+ -- enough that ttimeoutlen is not reached.
+ sleep(200)
+ feed(pastetoggle:sub(3, -1))
+ -- Need another key so that the vgetorpeek() function returns.
+ feed('j')
+ eq(eval('&paste'), 1)
+ end)
+end)