mirror of
https://github.com/neovim/neovim.git
synced 2025-01-01 17:23:36 -07:00
3137c7d635
Adds method call support for all functions in the patch, but it cannot be fully ported due to missing tests for: - getcwd(): requires chdir() and Test_chdir_func() from v8.1.1291. Note that the method call tests for getreg() and getregtype() were removed in v8.2.1547, which has already been ported, but doesn't seem to have been replaced with a new test... This patch also makes getchangelist()'s argument optional (defaults to the current buffer). eval.txt includes a typo for gettabwinvar(), which is fixed in v8.1.1952.
44 lines
1.2 KiB
Lua
44 lines
1.2 KiB
Lua
-- Test getting and setting file permissions.
|
|
require('os')
|
|
|
|
local helpers = require('test.functional.helpers')(after_each)
|
|
local clear, call, eq = helpers.clear, helpers.call, helpers.eq
|
|
local neq, exc_exec, eval = helpers.neq, helpers.exc_exec, helpers.eval
|
|
|
|
describe('Test getting and setting file permissions', function()
|
|
local tempfile = helpers.tmpname()
|
|
|
|
before_each(function()
|
|
os.remove(tempfile)
|
|
clear()
|
|
end)
|
|
|
|
it('file permissions', function()
|
|
-- eval() is used to test VimL method syntax for setfperm() and getfperm()
|
|
eq('', call('getfperm', tempfile))
|
|
eq(0, eval("'" .. tempfile .. "'->setfperm('r--------')"))
|
|
|
|
call('writefile', {'one'}, tempfile)
|
|
eq(9, eval("len('" .. tempfile .. "'->getfperm())"))
|
|
|
|
eq(1, call('setfperm', tempfile, 'rwx------'))
|
|
if helpers.is_os('win') then
|
|
eq('rw-rw-rw-', call('getfperm', tempfile))
|
|
else
|
|
eq('rwx------', call('getfperm', tempfile))
|
|
end
|
|
|
|
eq(1, call('setfperm', tempfile, 'r--r--r--'))
|
|
eq('r--r--r--', call('getfperm', tempfile))
|
|
|
|
local err = exc_exec(('call setfperm("%s", "---")'):format(tempfile))
|
|
neq(err:find('E475:'), nil)
|
|
|
|
eq(1, call('setfperm', tempfile, 'rwx------'))
|
|
end)
|
|
|
|
after_each(function()
|
|
os.remove(tempfile)
|
|
end)
|
|
end)
|