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