neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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)