blob: 13c87a152f2422c775bdc0f64f4f0cebb09238e4 [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')
24 split Xdir1/Xfile
25 call setline(1, ['a', 'b'])
26 w
27 w Xdir1/subdir/Xfile
28 close
29 call assert_true(isdirectory('Xdir1'))
30 call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
31 call assert_true(isdirectory('Xdir1/subdir'))
32 call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
33 call assert_equal(0, delete('Xdir1', 'rf'))
34 call assert_false(isdirectory('Xdir1'))
35 call assert_equal(-1, delete('Xdir1', 'd'))
36endfunc
Bram Moolenaar43a34f92016-01-17 15:56:34 +010037
38func Test_symlink_delete()
39 if !has('unix')
40 return
41 endif
42 split Xfile
43 call setline(1, ['a', 'b'])
44 wq
45 silent !ln -s Xfile Xlink
46 " Delete the link, not the file
47 call assert_equal(0, delete('Xlink'))
48 call assert_equal(-1, delete('Xlink'))
49 call assert_equal(0, delete('Xfile'))
50endfunc
51
52func Test_symlink_dir_delete()
53 if !has('unix')
54 return
55 endif
56 call mkdir('Xdir1')
57 silent !ln -s Xdir1 Xlink
58 call assert_true(isdirectory('Xdir1'))
59 call assert_true(isdirectory('Xlink'))
60 " Delete the link, not the directory
61 call assert_equal(0, delete('Xlink'))
62 call assert_equal(-1, delete('Xlink'))
63 call assert_equal(0, delete('Xdir1', 'd'))
64endfunc
65
66func Test_symlink_recursive_delete()
67 if !has('unix')
68 return
69 endif
70 call mkdir('Xdir3')
71 call mkdir('Xdir3/subdir')
72 call mkdir('Xdir4')
73 split Xdir3/Xfile
74 call setline(1, ['a', 'b'])
75 w
76 w Xdir3/subdir/Xfile
77 w Xdir4/Xfile
78 close
79 silent !ln -s ../Xdir4 Xdir3/Xlink
80
81 call assert_true(isdirectory('Xdir3'))
82 call assert_equal(['a', 'b'], readfile('Xdir3/Xfile'))
83 call assert_true(isdirectory('Xdir3/subdir'))
84 call assert_equal(['a', 'b'], readfile('Xdir3/subdir/Xfile'))
85 call assert_true(isdirectory('Xdir4'))
86 call assert_true(isdirectory('Xdir3/Xlink'))
87 call assert_equal(['a', 'b'], readfile('Xdir4/Xfile'))
88
89 call assert_equal(0, delete('Xdir3', 'rf'))
90 call assert_false(isdirectory('Xdir3'))
91 call assert_equal(-1, delete('Xdir3', 'd'))
92 " symlink is deleted, not the directory it points to
93 call assert_true(isdirectory('Xdir4'))
94 call assert_equal(['a', 'b'], readfile('Xdir4/Xfile'))
95 call assert_equal(0, delete('Xdir4/Xfile'))
96 call assert_equal(0, delete('Xdir4', 'd'))
97endfunc