1" Test for delete(). 2 3source check.vim 4 5func Test_file_delete() 6 split Xfile 7 call setline(1, ['a', 'b']) 8 wq 9 call assert_equal(['a', 'b'], readfile('Xfile')) 10 call assert_equal(0, delete('Xfile')) 11 call assert_fails('call readfile("Xfile")', 'E484:') 12 call assert_equal(-1, delete('Xfile')) 13 bwipe Xfile 14endfunc 15 16func Test_dir_delete() 17 call mkdir('Xdir1') 18 call assert_true(isdirectory('Xdir1')) 19 call assert_equal(0, delete('Xdir1', 'd')) 20 call assert_false(isdirectory('Xdir1')) 21 call assert_equal(-1, delete('Xdir1', 'd')) 22endfunc 23 24func Test_recursive_delete() 25 call mkdir('Xdir1') 26 call mkdir('Xdir1/subdir') 27 call mkdir('Xdir1/empty') 28 split Xdir1/Xfile 29 call setline(1, ['a', 'b']) 30 w 31 w Xdir1/subdir/Xfile 32 close 33 call assert_true(isdirectory('Xdir1')) 34 call assert_equal(['a', 'b'], readfile('Xdir1/Xfile')) 35 call assert_true(isdirectory('Xdir1/subdir')) 36 call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile')) 37 call assert_true('Xdir1/empty'->isdirectory()) 38 call assert_equal(0, delete('Xdir1', 'rf')) 39 call assert_false(isdirectory('Xdir1')) 40 call assert_equal(-1, delete('Xdir1', 'd')) 41 bwipe Xdir1/Xfile 42 bwipe Xdir1/subdir/Xfile 43endfunc 44 45func Test_symlink_delete() 46 CheckUnix 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 CheckUnix 60 call mkdir('Xdir1') 61 silent !ln -s Xdir1 Xlink 62 call assert_true(isdirectory('Xdir1')) 63 call assert_true(isdirectory('Xlink')) 64 " Delete the link, not the directory 65 call assert_equal(0, delete('Xlink')) 66 call assert_equal(-1, delete('Xlink')) 67 call assert_equal(0, delete('Xdir1', 'd')) 68endfunc 69 70func Test_symlink_recursive_delete() 71 CheckUnix 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')) 99 100 bwipe Xdir3/Xfile 101 bwipe Xdir3/subdir/Xfile 102 bwipe Xdir4/Xfile 103endfunc 104 105func Test_delete_errors() 106 call assert_fails('call delete('''')', 'E474:') 107 call assert_fails('call delete(''foo'', 0)', 'E15:') 108endfunc 109 110" vim: shiftwidth=2 sts=2 expandtab 111