1" Test for delete(). 2 3func Test_file_delete() 4 split Xfile 5 call setline(1, ['a', 'b']) 6 wq 7 call assert_equal(['a', 'b'], readfile('Xfile')) 8 call assert_equal(0, delete('Xfile')) 9 call assert_fails('call readfile("Xfile")', 'E484:') 10 call assert_equal(-1, delete('Xfile')) 11endfunc 12 13func Test_dir_delete() 14 call mkdir('Xdir1') 15 call assert_true(isdirectory('Xdir1')) 16 call assert_equal(0, delete('Xdir1', 'd')) 17 call assert_false(isdirectory('Xdir1')) 18 call assert_equal(-1, delete('Xdir1', 'd')) 19endfunc 20 21func Test_recursive_delete() 22 call mkdir('Xdir1') 23 call mkdir('Xdir1/subdir') 24 call mkdir('Xdir1/empty') 25 split Xdir1/Xfile 26 call setline(1, ['a', 'b']) 27 w 28 w Xdir1/subdir/Xfile 29 close 30 call assert_true(isdirectory('Xdir1')) 31 call assert_equal(['a', 'b'], readfile('Xdir1/Xfile')) 32 call assert_true(isdirectory('Xdir1/subdir')) 33 call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile')) 34 call assert_true(isdirectory('Xdir1/empty')) 35 call assert_equal(0, delete('Xdir1', 'rf')) 36 call assert_false(isdirectory('Xdir1')) 37 call assert_equal(-1, delete('Xdir1', 'd')) 38endfunc 39 40func Test_symlink_delete() 41 if !has('unix') 42 return 43 endif 44 split Xfile 45 call setline(1, ['a', 'b']) 46 wq 47 silent !ln -s Xfile Xlink 48 " Delete the link, not the file 49 call assert_equal(0, delete('Xlink')) 50 call assert_equal(-1, delete('Xlink')) 51 call assert_equal(0, delete('Xfile')) 52endfunc 53 54func Test_symlink_dir_delete() 55 if !has('unix') 56 return 57 endif 58 call mkdir('Xdir1') 59 silent !ln -s Xdir1 Xlink 60 call assert_true(isdirectory('Xdir1')) 61 call assert_true(isdirectory('Xlink')) 62 " Delete the link, not the directory 63 call assert_equal(0, delete('Xlink')) 64 call assert_equal(-1, delete('Xlink')) 65 call assert_equal(0, delete('Xdir1', 'd')) 66endfunc 67 68func Test_symlink_recursive_delete() 69 if !has('unix') 70 return 71 endif 72 call mkdir('Xdir3') 73 call mkdir('Xdir3/subdir') 74 call mkdir('Xdir4') 75 split Xdir3/Xfile 76 call setline(1, ['a', 'b']) 77 w 78 w Xdir3/subdir/Xfile 79 w Xdir4/Xfile 80 close 81 silent !ln -s ../Xdir4 Xdir3/Xlink 82 83 call assert_true(isdirectory('Xdir3')) 84 call assert_equal(['a', 'b'], readfile('Xdir3/Xfile')) 85 call assert_true(isdirectory('Xdir3/subdir')) 86 call assert_equal(['a', 'b'], readfile('Xdir3/subdir/Xfile')) 87 call assert_true(isdirectory('Xdir4')) 88 call assert_true(isdirectory('Xdir3/Xlink')) 89 call assert_equal(['a', 'b'], readfile('Xdir4/Xfile')) 90 91 call assert_equal(0, delete('Xdir3', 'rf')) 92 call assert_false(isdirectory('Xdir3')) 93 call assert_equal(-1, delete('Xdir3', 'd')) 94 " symlink is deleted, not the directory it points to 95 call assert_true(isdirectory('Xdir4')) 96 call assert_equal(['a', 'b'], readfile('Xdir4/Xfile')) 97 call assert_equal(0, delete('Xdir4/Xfile')) 98 call assert_equal(0, delete('Xdir4', 'd')) 99endfunc 100