summaryrefslogtreecommitdiff
path: root/src/testdir
diff options
context:
space:
mode:
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/Make_all.mak2
-rw-r--r--src/testdir/test_arglist.vim201
-rw-r--r--src/testdir/test_argument_0count.in28
-rw-r--r--src/testdir/test_argument_0count.ok5
-rw-r--r--src/testdir/test_argument_count.in47
-rw-r--r--src/testdir/test_argument_count.ok13
6 files changed, 201 insertions, 95 deletions
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index a5b8cd365..526a43534 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -89,8 +89,6 @@ SCRIPTS_ALL = \
test106.out \
test107.out \
test108.out \
- test_argument_0count.out \
- test_argument_count.out \
test_autocmd_option.out \
test_autoformat_join.out \
test_breakindent.out \
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
index 522631741..af92f1565 100644
--- a/src/testdir/test_arglist.vim
+++ b/src/testdir/test_arglist.vim
@@ -72,3 +72,204 @@ func Assert_argc(l)
let i += 1
endwhile
endfunc
+
+" Test for [count]argument and [count]argdelete commands
+" Ported from the test_argument_count.in test script
+function Test_argument()
+ " Clean the argument list
+ arga a | %argd
+
+ let save_hidden = &hidden
+ set hidden
+
+ let g:buffers = []
+ augroup TEST
+ au BufEnter * call add(buffers, expand('%:t'))
+ augroup END
+
+ argadd a b c d
+ $argu
+ $-argu
+ -argu
+ 1argu
+ +2argu
+
+ augroup TEST
+ au!
+ augroup END
+
+ call assert_equal(['d', 'c', 'b', 'a', 'c'], g:buffers)
+
+ redir => result
+ ar
+ redir END
+ call assert_true(result =~# 'a b \[c] d')
+
+ .argd
+ call assert_equal(['a', 'b', 'd'], argv())
+
+ -argd
+ call assert_equal(['a', 'd'], argv())
+
+ $argd
+ call assert_equal(['a'], argv())
+
+ 1arga c
+ 1arga b
+ $argu
+ $arga x
+ call assert_equal(['a', 'b', 'c', 'x'], argv())
+
+ 0arga Y
+ call assert_equal(['Y', 'a', 'b', 'c', 'x'], argv())
+
+ %argd
+ call assert_equal([], argv())
+
+ arga a b c d e f
+ 2,$-argd
+ call assert_equal(['a', 'f'], argv())
+
+ let &hidden = save_hidden
+
+ " Setting argument list should fail when the current buffer has unsaved
+ " changes
+ %argd
+ enew!
+ set modified
+ call assert_fails('args x y z', 'E37:')
+ args! x y z
+ call assert_equal(['x', 'y', 'z'], argv())
+ call assert_equal('x', expand('%:t'))
+
+ last | enew | argu
+ call assert_equal('z', expand('%:t'))
+
+ %argdelete
+ call assert_fails('argument', 'E163:')
+endfunction
+
+" Test for 0argadd and 0argedit
+" Ported from the test_argument_0count.in test script
+function Test_zero_argadd()
+ " Clean the argument list
+ arga a | %argd
+
+ arga a b c d
+ 2argu
+ 0arga added
+ call assert_equal(['added', 'a', 'b', 'c', 'd'], argv())
+
+ 2argu
+ arga third
+ call assert_equal(['added', 'a', 'third', 'b', 'c', 'd'], argv())
+
+ %argd
+ arga a b c d
+ 2argu
+ 0arge edited
+ call assert_equal(['edited', 'a', 'b', 'c', 'd'], argv())
+
+ 2argu
+ arga third
+ call assert_equal(['edited', 'a', 'third', 'b', 'c', 'd'], argv())
+endfunction
+
+function Reset_arglist()
+ args a | %argd
+endfunction
+
+" Test for argc()
+function Test_argc()
+ call Reset_arglist()
+ call assert_equal(0, argc())
+ argadd a b
+ call assert_equal(2, argc())
+endfunction
+
+" Test for arglistid()
+function Test_arglistid()
+ call Reset_arglist()
+ arga a b
+ call assert_equal(0, arglistid())
+ split
+ arglocal
+ call assert_equal(1, arglistid())
+ tabnew | tabfirst
+ call assert_equal(0, arglistid(2))
+ call assert_equal(1, arglistid(1, 1))
+ call assert_equal(0, arglistid(2, 1))
+ call assert_equal(1, arglistid(1, 2))
+ tabonly | only | enew!
+ argglobal
+ call assert_equal(0, arglistid())
+endfunction
+
+" Test for argv()
+function Test_argv()
+ call Reset_arglist()
+ call assert_equal([], argv())
+ call assert_equal("", argv(2))
+ argadd a b c d
+ call assert_equal('c', argv(2))
+endfunction
+
+" Test for the :argedit command
+function Test_argedit()
+ call Reset_arglist()
+ argedit a
+ call assert_equal(['a'], argv())
+ call assert_equal('a', expand('%:t'))
+ argedit b
+ call assert_equal(['a', 'b'], argv())
+ call assert_equal('b', expand('%:t'))
+ argedit a
+ call assert_equal(['a', 'b'], argv())
+ call assert_equal('a', expand('%:t'))
+ call assert_fails('argedit a b', 'E172:')
+ argedit c
+ call assert_equal(['a', 'c', 'b'], argv())
+ 0argedit x
+ call assert_equal(['x', 'a', 'c', 'b'], argv())
+ enew! | set modified
+ call assert_fails('argedit y', 'E37:')
+ argedit! y
+ call assert_equal(['x', 'y', 'a', 'c', 'b'], argv())
+ %argd
+endfunction
+
+" Test for the :argdelete command
+function Test_argdelete()
+ call Reset_arglist()
+ args aa a aaa b bb
+ argdelete a*
+ call assert_equal(['b', 'bb'], argv())
+ call assert_equal('aa', expand('%:t'))
+ last
+ argdelete %
+ call assert_equal(['b'], argv())
+ call assert_fails('argdelete', 'E471:')
+ call assert_fails('1,100argdelete', 'E16:')
+ %argd
+endfunction
+
+" Tests for the :next, :prev, :first, :last, :rewind commands
+function Test_argpos()
+ call Reset_arglist()
+ args a b c d
+ last
+ call assert_equal(3, argidx())
+ call assert_fails('next', 'E165:')
+ prev
+ call assert_equal(2, argidx())
+ Next
+ call assert_equal(1, argidx())
+ first
+ call assert_equal(0, argidx())
+ call assert_fails('prev', 'E164:')
+ 3next
+ call assert_equal(3, argidx())
+ rewind
+ call assert_equal(0, argidx())
+ %argd
+endfunction
diff --git a/src/testdir/test_argument_0count.in b/src/testdir/test_argument_0count.in
deleted file mode 100644
index 88317fa1f..000000000
--- a/src/testdir/test_argument_0count.in
+++ /dev/null
@@ -1,28 +0,0 @@
-Tests for :0argadd and :0argedit vim: set ft=vim :
-
-STARTTEST
-:so small.vim
-:let arglists = []
-:%argd
-:arga a b c d
-:2argu
-:0arga added
-:call add(arglists, argv())
-:2argu
-:arga third
-:call add(arglists, argv())
-:%argd
-:arga a b c d
-:2argu
-:0arge edited
-:call add(arglists, argv())
-:2argu
-:arga third
-:call add(arglists, argv())
-:e! test.out
-:call append(0, map(copy(arglists), 'join(v:val, " ")'))
-:w
-:qa!
-ENDTEST
-
-
diff --git a/src/testdir/test_argument_0count.ok b/src/testdir/test_argument_0count.ok
deleted file mode 100644
index ee5daea81..000000000
--- a/src/testdir/test_argument_0count.ok
+++ /dev/null
@@ -1,5 +0,0 @@
-added a b c d
-added a third b c d
-edited a b c d
-edited a third b c d
-
diff --git a/src/testdir/test_argument_count.in b/src/testdir/test_argument_count.in
deleted file mode 100644
index db7eadb72..000000000
--- a/src/testdir/test_argument_count.in
+++ /dev/null
@@ -1,47 +0,0 @@
-Tests for :[count]argument! and :[count]argdelete vim: set ft=vim :
-
-STARTTEST
-:so small.vim
-:%argd
-:argadd a b c d
-:set hidden
-:let buffers = []
-:augroup TEST
-:au BufEnter * call add(buffers, expand('%:t'))
-:augroup END
-:$argu
-:$-argu
-:-argu
-:1argu
-:+2argu
-:augroup TEST
-:au!
-:augroup END
-:let arglists = []
-:.argd
-:call add(arglists, argv())
-:-argd
-:call add(arglists, argv())
-:$argd
-:call add(arglists, argv())
-:1arga c
-:1arga b
-:$argu
-:$arga x
-:call add(arglists, argv())
-:0arga Y
-:call add(arglists, argv())
-:%argd
-:call add(arglists, argv())
-:arga a b c d e f
-:2,$-argd
-:call add(arglists, argv())
-:e! test.out
-:call append(0, buffers)
-:let lnr = line('$')
-:call append(lnr, map(copy(arglists), 'join(v:val, " ")'))
-:w
-:qa!
-ENDTEST
-
-
diff --git a/src/testdir/test_argument_count.ok b/src/testdir/test_argument_count.ok
deleted file mode 100644
index f51562620..000000000
--- a/src/testdir/test_argument_count.ok
+++ /dev/null
@@ -1,13 +0,0 @@
-d
-c
-b
-a
-c
-
-a b d
-a d
-a
-a b c x
-Y a b c x
-
-a f