xref: /vim-8.2.3635/src/testdir/test_delete.vim (revision aeb313f3)
1da440d21SBram Moolenaar" Test for delete().
2da440d21SBram Moolenaar
3*aeb313f3SBram Moolenaarsource check.vim
4*aeb313f3SBram Moolenaar
5da440d21SBram Moolenaarfunc Test_file_delete()
6da440d21SBram Moolenaar  split Xfile
7da440d21SBram Moolenaar  call setline(1, ['a', 'b'])
8da440d21SBram Moolenaar  wq
9da440d21SBram Moolenaar  call assert_equal(['a', 'b'], readfile('Xfile'))
10da440d21SBram Moolenaar  call assert_equal(0, delete('Xfile'))
11da440d21SBram Moolenaar  call assert_fails('call readfile("Xfile")', 'E484:')
12da440d21SBram Moolenaar  call assert_equal(-1, delete('Xfile'))
134520d440SBram Moolenaar  bwipe Xfile
14da440d21SBram Moolenaarendfunc
15da440d21SBram Moolenaar
16da440d21SBram Moolenaarfunc Test_dir_delete()
17da440d21SBram Moolenaar  call mkdir('Xdir1')
18da440d21SBram Moolenaar  call assert_true(isdirectory('Xdir1'))
19da440d21SBram Moolenaar  call assert_equal(0, delete('Xdir1', 'd'))
20da440d21SBram Moolenaar  call assert_false(isdirectory('Xdir1'))
21da440d21SBram Moolenaar  call assert_equal(-1, delete('Xdir1', 'd'))
22da440d21SBram Moolenaarendfunc
23da440d21SBram Moolenaar
24da440d21SBram Moolenaarfunc Test_recursive_delete()
25da440d21SBram Moolenaar  call mkdir('Xdir1')
26da440d21SBram Moolenaar  call mkdir('Xdir1/subdir')
27336bd622SBram Moolenaar  call mkdir('Xdir1/empty')
28da440d21SBram Moolenaar  split Xdir1/Xfile
29da440d21SBram Moolenaar  call setline(1, ['a', 'b'])
30da440d21SBram Moolenaar  w
31da440d21SBram Moolenaar  w Xdir1/subdir/Xfile
32da440d21SBram Moolenaar  close
33da440d21SBram Moolenaar  call assert_true(isdirectory('Xdir1'))
34da440d21SBram Moolenaar  call assert_equal(['a', 'b'], readfile('Xdir1/Xfile'))
35da440d21SBram Moolenaar  call assert_true(isdirectory('Xdir1/subdir'))
36da440d21SBram Moolenaar  call assert_equal(['a', 'b'], readfile('Xdir1/subdir/Xfile'))
37f9f24ce7SBram Moolenaar  call assert_true('Xdir1/empty'->isdirectory())
38da440d21SBram Moolenaar  call assert_equal(0, delete('Xdir1', 'rf'))
39da440d21SBram Moolenaar  call assert_false(isdirectory('Xdir1'))
40da440d21SBram Moolenaar  call assert_equal(-1, delete('Xdir1', 'd'))
414520d440SBram Moolenaar  bwipe Xdir1/Xfile
424520d440SBram Moolenaar  bwipe Xdir1/subdir/Xfile
43da440d21SBram Moolenaarendfunc
4443a34f9fSBram Moolenaar
4543a34f9fSBram Moolenaarfunc Test_symlink_delete()
46*aeb313f3SBram Moolenaar  CheckUnix
4743a34f9fSBram Moolenaar  split Xfile
4843a34f9fSBram Moolenaar  call setline(1, ['a', 'b'])
4943a34f9fSBram Moolenaar  wq
5043a34f9fSBram Moolenaar  silent !ln -s Xfile Xlink
5143a34f9fSBram Moolenaar  " Delete the link, not the file
5243a34f9fSBram Moolenaar  call assert_equal(0, delete('Xlink'))
5343a34f9fSBram Moolenaar  call assert_equal(-1, delete('Xlink'))
5443a34f9fSBram Moolenaar  call assert_equal(0, delete('Xfile'))
554520d440SBram Moolenaar  bwipe Xfile
5643a34f9fSBram Moolenaarendfunc
5743a34f9fSBram Moolenaar
5843a34f9fSBram Moolenaarfunc Test_symlink_dir_delete()
59*aeb313f3SBram Moolenaar  CheckUnix
6043a34f9fSBram Moolenaar  call mkdir('Xdir1')
6143a34f9fSBram Moolenaar  silent !ln -s Xdir1 Xlink
6243a34f9fSBram Moolenaar  call assert_true(isdirectory('Xdir1'))
6343a34f9fSBram Moolenaar  call assert_true(isdirectory('Xlink'))
6443a34f9fSBram Moolenaar  " Delete the link, not the directory
6543a34f9fSBram Moolenaar  call assert_equal(0, delete('Xlink'))
6643a34f9fSBram Moolenaar  call assert_equal(-1, delete('Xlink'))
6743a34f9fSBram Moolenaar  call assert_equal(0, delete('Xdir1', 'd'))
6843a34f9fSBram Moolenaarendfunc
6943a34f9fSBram Moolenaar
7043a34f9fSBram Moolenaarfunc Test_symlink_recursive_delete()
71*aeb313f3SBram Moolenaar  CheckUnix
7243a34f9fSBram Moolenaar  call mkdir('Xdir3')
7343a34f9fSBram Moolenaar  call mkdir('Xdir3/subdir')
7443a34f9fSBram Moolenaar  call mkdir('Xdir4')
7543a34f9fSBram Moolenaar  split Xdir3/Xfile
7643a34f9fSBram Moolenaar  call setline(1, ['a', 'b'])
7743a34f9fSBram Moolenaar  w
7843a34f9fSBram Moolenaar  w Xdir3/subdir/Xfile
7943a34f9fSBram Moolenaar  w Xdir4/Xfile
8043a34f9fSBram Moolenaar  close
8143a34f9fSBram Moolenaar  silent !ln -s ../Xdir4 Xdir3/Xlink
8243a34f9fSBram Moolenaar
8343a34f9fSBram Moolenaar  call assert_true(isdirectory('Xdir3'))
8443a34f9fSBram Moolenaar  call assert_equal(['a', 'b'], readfile('Xdir3/Xfile'))
8543a34f9fSBram Moolenaar  call assert_true(isdirectory('Xdir3/subdir'))
8643a34f9fSBram Moolenaar  call assert_equal(['a', 'b'], readfile('Xdir3/subdir/Xfile'))
8743a34f9fSBram Moolenaar  call assert_true(isdirectory('Xdir4'))
8843a34f9fSBram Moolenaar  call assert_true(isdirectory('Xdir3/Xlink'))
8943a34f9fSBram Moolenaar  call assert_equal(['a', 'b'], readfile('Xdir4/Xfile'))
9043a34f9fSBram Moolenaar
9143a34f9fSBram Moolenaar  call assert_equal(0, delete('Xdir3', 'rf'))
9243a34f9fSBram Moolenaar  call assert_false(isdirectory('Xdir3'))
9343a34f9fSBram Moolenaar  call assert_equal(-1, delete('Xdir3', 'd'))
9443a34f9fSBram Moolenaar  " symlink is deleted, not the directory it points to
9543a34f9fSBram Moolenaar  call assert_true(isdirectory('Xdir4'))
9643a34f9fSBram Moolenaar  call assert_equal(['a', 'b'], readfile('Xdir4/Xfile'))
9743a34f9fSBram Moolenaar  call assert_equal(0, delete('Xdir4/Xfile'))
9843a34f9fSBram Moolenaar  call assert_equal(0, delete('Xdir4', 'd'))
994520d440SBram Moolenaar
1004520d440SBram Moolenaar  bwipe Xdir3/Xfile
1014520d440SBram Moolenaar  bwipe Xdir3/subdir/Xfile
1024520d440SBram Moolenaar  bwipe Xdir4/Xfile
10343a34f9fSBram Moolenaarendfunc
10417aca707SBram Moolenaar
10517aca707SBram Moolenaarfunc Test_delete_errors()
10617aca707SBram Moolenaar  call assert_fails('call delete('''')', 'E474:')
10717aca707SBram Moolenaar  call assert_fails('call delete(''foo'', 0)', 'E15:')
10817aca707SBram Moolenaarendfunc
1096d91bcb4SBram Moolenaar
1106d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
111