delete_spec.lua (1941B)
1 local t = require('test.testutil') 2 local n = require('test.functional.testnvim')() 3 4 local clear, source = n.clear, n.source 5 local eq, eval, command = t.eq, n.eval, n.command 6 local exc_exec = n.exc_exec 7 8 describe('Test for delete()', function() 9 before_each(clear) 10 after_each(function() 11 os.remove('Xfile') 12 end) 13 14 it('file delete', function() 15 command('split Xfile') 16 command("call setline(1, ['a', 'b'])") 17 command('wq') 18 eq(eval("['a', 'b']"), eval("readfile('Xfile')")) 19 eq(0, eval("delete('Xfile')")) 20 eq(-1, eval("delete('Xfile')")) 21 end) 22 23 it('directory delete', function() 24 command("call mkdir('Xdir1')") 25 eq(1, eval("isdirectory('Xdir1')")) 26 eq(0, eval("delete('Xdir1', 'd')")) 27 eq(0, eval("isdirectory('Xdir1')")) 28 eq(-1, eval("delete('Xdir1', 'd')")) 29 end) 30 31 it('symlink delete', function() 32 source([[ 33 split Xfile 34 call setline(1, ['a', 'b']) 35 wq 36 if has('win32') 37 silent !mklink Xlink Xfile 38 else 39 silent !ln -s Xfile Xlink 40 endif 41 ]]) 42 if eval('v:shell_error') ~= 0 then 43 pending('Cannot create symlink') 44 end 45 -- Delete the link, not the file 46 eq(0, eval("delete('Xlink')")) 47 eq(-1, eval("delete('Xlink')")) 48 eq(0, eval("delete('Xfile')")) 49 end) 50 51 it('symlink directory delete', function() 52 command("call mkdir('Xdir1')") 53 if t.is_os('win') then 54 command('silent !mklink /j Xlink Xdir1') 55 else 56 command('silent !ln -s Xdir1 Xlink') 57 end 58 eq(1, eval("isdirectory('Xdir1')")) 59 eq(1, eval("isdirectory('Xlink')")) 60 -- Delete the link, not the directory 61 eq(0, eval("delete('Xlink')")) 62 eq(-1, eval("delete('Xlink')")) 63 eq(0, eval("delete('Xdir1', 'd')")) 64 end) 65 66 it('gives correct emsgs', function() 67 eq('Vim(call):E474: Invalid argument', exc_exec("call delete('')")) 68 eq('Vim(call):E15: Invalid expression: "0"', exc_exec("call delete('foo', 0)")) 69 end) 70 end)