blob: 6b49f153c62525ab5c57722666dbffae4155f80f [file] [log] [blame]
Bram Moolenaarda440d22016-01-16 21:27:23 +01001" Test for delete().
2
Bram Moolenaaraeb313f2020-11-27 19:13:28 +01003source check.vim
4
Bram Moolenaarda440d22016-01-16 21:27:23 +01005func 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'))
Bram Moolenaar4520d442017-03-19 16:09:46 +010013 bwipe Xfile
Bram Moolenaarda440d22016-01-16 21:27:23 +010014endfunc
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')
Bram Moolenaar336bd622016-01-17 18:23:58 +010027 call mkdir('Xdir1/empty')
Bram Moolenaarda440d22016-01-16 21:27:23 +010028 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'))
Bram Moolenaarf9f24ce2019-08-31 21:17:39 +020037 call assert_true('Xdir1/empty'->isdirectory())
Bram Moolenaarda440d22016-01-16 21:27:23 +010038 call assert_equal(0, delete('Xdir1', 'rf'))
39 call assert_false(isdirectory('Xdir1'))
40 call assert_equal(-1, delete('Xdir1', 'd'))
Bram Moolenaar4520d442017-03-19 16:09:46 +010041 bwipe Xdir1/Xfile
42 bwipe Xdir1/subdir/Xfile
Bram Moolenaarda440d22016-01-16 21:27:23 +010043endfunc
Bram Moolenaar43a34f92016-01-17 15:56:34 +010044
45func Test_symlink_delete()
Bram Moolenaaraeb313f2020-11-27 19:13:28 +010046 CheckUnix
Bram Moolenaar43a34f92016-01-17 15:56:34 +010047 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'))
Bram Moolenaar4520d442017-03-19 16:09:46 +010055 bwipe Xfile
Bram Moolenaar43a34f92016-01-17 15:56:34 +010056endfunc
57
58func Test_symlink_dir_delete()
Bram Moolenaaraeb313f2020-11-27 19:13:28 +010059 CheckUnix
Bram Moolenaar43a34f92016-01-17 15:56:34 +010060 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()
Bram Moolenaaraeb313f2020-11-27 19:13:28 +010071 CheckUnix
Bram Moolenaar43a34f92016-01-17 15:56:34 +010072 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'))
Bram Moolenaar4520d442017-03-19 16:09:46 +010099
100 bwipe Xdir3/Xfile
101 bwipe Xdir3/subdir/Xfile
102 bwipe Xdir4/Xfile
Bram Moolenaar43a34f92016-01-17 15:56:34 +0100103endfunc
Bram Moolenaar17aca702019-05-16 22:24:55 +0200104
105func Test_delete_errors()
106 call assert_fails('call delete('''')', 'E474:')
107 call assert_fails('call delete(''foo'', 0)', 'E15:')
108endfunc
Bram Moolenaar6d91bcb2020-08-12 18:50:36 +0200109
110" vim: shiftwidth=2 sts=2 expandtab