summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_delete.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-01-16 21:27:23 +0100
committerBram Moolenaar <Bram@vim.org>2016-01-16 21:27:23 +0100
commitda440d21a6b94d7f525fa7be9b1417c78dd9aa4c (patch)
tree646615551e8f62b82cfca1a1ef70fb2e3341d8b0 /src/testdir/test_delete.vim
parent286eacd3f6631e985089176fb1dff1bcf1a1d6b5 (diff)
patch 7.4.1107v7.4.1107
Problem: Vim can create a directory but not delete it. Solution: Add an argument to delete() to make it possible to delete a directory, also recursively.
Diffstat (limited to 'src/testdir/test_delete.vim')
-rw-r--r--src/testdir/test_delete.vim36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/testdir/test_delete.vim b/src/testdir/test_delete.vim
new file mode 100644
index 0000000000..6e2b9c86bb
--- /dev/null
+++ b/src/testdir/test_delete.vim
@@ -0,0 +1,36 @@
+" Test for delete().
+
+func Test_file_delete()
+ split Xfile
+ call setline(1, ['a', 'b'])
+ wq
+ call assert_equal(['a', 'b'], readfile('Xfile'))
+ call assert_equal(0, delete('Xfile'))
+ call assert_fails('call readfile("Xfile")', 'E484:')
+ call assert_equal(-1, delete('Xfile'))
+endfunc
+
+func Test_dir_delete()
+ call mkdir('Xdir1')
+ call assert_true(isdirectory('Xdir1'))
+ call assert_equal(0, delete('Xdir1', 'd'))
+ call assert_false(isdirectory('Xdir1'))
+ call assert_equal(-1, delete('Xdir1', 'd'))
+endfunc
+
+func Test_recursive_delete()
+ call mkdir('Xdir1')
+ call mkdir('Xdir1/subdir')
+ split Xdir1/Xfile
+ call setline(1, ['a', 'b'])
+ w
+ w Xdir1/subdir/Xfile
+ close
+ call assert_true(isdirectory('Xdir1'))
+ call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
+ call assert_true(isdirectory('Xdir1/subdir'))
+ call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
+ call assert_equal(0, delete('Xdir1', 'rf'))
+ call assert_false(isdirectory('Xdir1'))
+ call assert_equal(-1, delete('Xdir1', 'd'))
+endfunc