diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/legacy/arglist_spec.lua | 52 |
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) |