123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- " Test for delete().
- source check.vim
- source term_util.vim
- source screendump.vim
- func Test_file_delete()
- split Xfdelfile
- call setline(1, ['a', 'b'])
- wq
- call assert_equal(['a', 'b'], readfile('Xfdelfile'))
- call assert_equal(0, delete('Xfdelfile'))
- call assert_fails('call readfile("Xfdelfile")', 'E484:')
- call assert_equal(-1, delete('Xfdelfile'))
- bwipe Xfdelfile
- endfunc
- func Test_dir_delete()
- call mkdir('Xdirdel')
- call assert_true(isdirectory('Xdirdel'))
- call assert_equal(0, delete('Xdirdel', 'd'))
- call assert_false(isdirectory('Xdirdel'))
- call assert_equal(-1, delete('Xdirdel', 'd'))
- endfunc
- func Test_recursive_delete()
- call mkdir('Xrecdel')
- call mkdir('Xrecdel/subdir')
- call mkdir('Xrecdel/empty')
- split Xrecdel/Xfile
- call setline(1, ['a', 'b'])
- w
- w Xrecdel/subdir/Xfile
- close
- call assert_true(isdirectory('Xrecdel'))
- call assert_equal(['a', 'b'], readfile('Xrecdel/Xfile'))
- call assert_true(isdirectory('Xrecdel/subdir'))
- call assert_equal(['a', 'b'], readfile('Xrecdel/subdir/Xfile'))
- call assert_true('Xrecdel/empty'->isdirectory())
- call assert_equal(0, delete('Xrecdel', 'rf'))
- call assert_false(isdirectory('Xrecdel'))
- call assert_equal(-1, delete('Xrecdel', 'd'))
- bwipe Xrecdel/Xfile
- bwipe Xrecdel/subdir/Xfile
- endfunc
- func Test_symlink_delete()
- CheckUnix
- split Xslfile
- call setline(1, ['a', 'b'])
- wq
- silent !ln -s Xslfile Xdellink
- " Delete the link, not the file
- call assert_equal(0, delete('Xdellink'))
- call assert_equal(-1, delete('Xdellink'))
- call assert_equal(0, delete('Xslfile'))
- bwipe Xslfile
- endfunc
- func Test_symlink_dir_delete()
- CheckUnix
- call mkdir('Xsymdir')
- silent !ln -s Xsymdir Xdirlink
- call assert_true(isdirectory('Xsymdir'))
- call assert_true(isdirectory('Xdirlink'))
- " Delete the link, not the directory
- call assert_equal(0, delete('Xdirlink'))
- call assert_equal(-1, delete('Xdirlink'))
- call assert_equal(0, delete('Xsymdir', 'd'))
- endfunc
- func Test_symlink_recursive_delete()
- CheckUnix
- call mkdir('Xrecdir3')
- call mkdir('Xrecdir3/subdir')
- call mkdir('Xrecdir4')
- split Xrecdir3/Xfile
- call setline(1, ['a', 'b'])
- w
- w Xrecdir3/subdir/Xfile
- w Xrecdir4/Xfile
- close
- silent !ln -s ../Xrecdir4 Xrecdir3/Xreclink
- call assert_true(isdirectory('Xrecdir3'))
- call assert_equal(['a', 'b'], readfile('Xrecdir3/Xfile'))
- call assert_true(isdirectory('Xrecdir3/subdir'))
- call assert_equal(['a', 'b'], readfile('Xrecdir3/subdir/Xfile'))
- call assert_true(isdirectory('Xrecdir4'))
- call assert_true(isdirectory('Xrecdir3/Xreclink'))
- call assert_equal(['a', 'b'], readfile('Xrecdir4/Xfile'))
- call assert_equal(0, delete('Xrecdir3', 'rf'))
- call assert_false(isdirectory('Xrecdir3'))
- call assert_equal(-1, delete('Xrecdir3', 'd'))
- " symlink is deleted, not the directory it points to
- call assert_true(isdirectory('Xrecdir4'))
- call assert_equal(['a', 'b'], readfile('Xrecdir4/Xfile'))
- call assert_equal(0, delete('Xrecdir4/Xfile'))
- call assert_equal(0, delete('Xrecdir4', 'd'))
- bwipe Xrecdir3/Xfile
- bwipe Xrecdir3/subdir/Xfile
- bwipe Xrecdir4/Xfile
- endfunc
- func Test_delete_errors()
- call assert_fails('call delete('''')', 'E474:')
- call assert_fails('call delete(''foo'', 0)', 'E15:')
- endfunc
- " This should no longer trigger ml_get errors
- func Test_delete_ml_get_errors()
- CheckRunVimInTerminal
- let lines =<< trim END
- set noshowcmd noruler scrolloff=0
- source samples/matchparen.vim
- END
- call writefile(lines, 'XDelete_ml_get_error', 'D')
- let buf = RunVimInTerminal('-S XDelete_ml_get_error samples/box.txt', #{rows: 10, wait_for_ruler: 0})
- call TermWait(buf)
- call term_sendkeys(buf, "249GV\<C-End>d")
- call TermWait(buf)
- " The following used to trigger ml_get errors
- call term_sendkeys(buf, "\<PageUp>")
- call TermWait(buf)
- call term_sendkeys(buf, ":mess\<cr>")
- call VerifyScreenDump(buf, 'Test_delete_ml_get_errors_1', {})
- call term_sendkeys(buf, ":q!\<cr>")
- call StopVimInTerminal(buf)
- endfunc
- " vim: shiftwidth=2 sts=2 expandtab
|