blob: 3cf26234dcf02fbdbebb76a6dcf3ff9f13dcb437 [file] [log] [blame]
Bram Moolenaarda440d22016-01-16 21:27:23 +01001" 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')
Bram Moolenaar336bd622016-01-17 18:23:58 +010024 call mkdir('Xdir1/empty')
Bram Moolenaarda440d22016-01-16 21:27:23 +010025 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'))
Bram Moolenaar336bd622016-01-17 18:23:58 +010034 call assert_true(isdirectory('Xdir1/empty'))
Bram Moolenaarda440d22016-01-16 21:27:23 +010035 call assert_equal(0, delete('Xdir1', 'rf'))
36 call assert_false(isdirectory('Xdir1'))
37 call assert_equal(-1, delete('Xdir1', 'd'))
38endfunc
Bram Moolenaar43a34f92016-01-17 15:56:34 +010039
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