aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/legacy/arglist_spec.lua52
1 files changed, 51 insertions, 1 deletions
diff --git a/test/functional/legacy/arglist_spec.lua b/test/functional/legacy/arglist_spec.lua
index a569479b62..e85d8a7aca 100644
--- a/test/functional/legacy/arglist_spec.lua
+++ b/test/functional/legacy/arglist_spec.lua
@@ -8,7 +8,19 @@ local eq, eval = helpers.eq, helpers.eval
describe('argument list commands', function()
before_each(clear)
- it('is working', function()
+ function assert_argc(l)
+ eq(#l, eval('argc()'))
+ for i = 1, #l do
+ eq(l[i], eval('argv(' .. (i - 1) .. ')'))
+ end
+ end
+
+ function init_abc()
+ execute('args a b c')
+ execute('next')
+ end
+
+ it('test that argidx() works', function()
execute('args a b c')
execute('last')
eq(2, eval('argidx()'))
@@ -28,4 +40,42 @@ describe('argument list commands', function()
execute('1argdelete')
eq(0, eval('argidx()'))
end)
+
+ it('test that argadd() works', function()
+ execute('%argdelete')
+ execute('argadd a b c')
+ eq(0, eval('argidx()'))
+
+ execute('%argdelete')
+ execute('argadd a')
+ eq(0, eval('argidx()'))
+ execute('argadd b c d')
+ eq(0, eval('argidx()'))
+
+ init_abc()
+ execute('argadd x')
+ assert_argc({'a', 'b', 'x', 'c'})
+ eq(1, eval('argidx()'))
+
+ init_abc()
+ execute('0argadd x')
+ assert_argc({'x', 'a', 'b', 'c'})
+ eq(2, eval('argidx()'))
+
+ init_abc()
+ execute('1argadd x')
+ assert_argc({'a', 'x', 'b', 'c'})
+ eq(2, eval('argidx()'))
+
+ init_abc()
+ execute('$argadd x')
+ assert_argc({'a', 'b', 'c', 'x'})
+ eq(1, eval('argidx()'))
+
+ init_abc()
+ execute('$argadd x')
+ execute('+2argadd y')
+ assert_argc({'a', 'b', 'c', 'x', 'y'})
+ eq(1, eval('argidx()'))
+ end)
end)