diff options
author | Pavel Platto <hinidu@gmail.com> | 2014-06-22 16:14:25 +0300 |
---|---|---|
committer | Nicolas Hillegeer <nicolas@hillegeer.com> | 2014-07-14 21:14:40 +0200 |
commit | 790d81582c1b48da365984f33ea669f869efcfe9 (patch) | |
tree | 7b4367f23b8fd273ef527cda6f13b49451d6d695 /test/unit/tempfile_spec.lua | |
parent | 286ce271e730a2e6883c244912b36bca007f6ddc (diff) | |
download | rneovim-790d81582c1b48da365984f33ea669f869efcfe9.tar.gz rneovim-790d81582c1b48da365984f33ea669f869efcfe9.tar.bz2 rneovim-790d81582c1b48da365984f33ea669f869efcfe9.zip |
tempfile.c: add tests
Diffstat (limited to 'test/unit/tempfile_spec.lua')
-rw-r--r-- | test/unit/tempfile_spec.lua | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test/unit/tempfile_spec.lua b/test/unit/tempfile_spec.lua new file mode 100644 index 0000000000..adc52b9a8f --- /dev/null +++ b/test/unit/tempfile_spec.lua @@ -0,0 +1,61 @@ +local lfs = require 'lfs' +local helpers = require 'test.unit.helpers' + +local os = helpers.cimport './src/nvim/os/os.h' +local tempfile = helpers.cimport './src/nvim/tempfile.h' + +describe('tempfile related functions', function() + after_each(function() + -- This won't work because vim_deltempdir() uses global buffer + -- that is initialized in main() and main() is not called for unit tests. + -- But it is not a big problem: all tests can work with or without it. + -- tempfile.vim_deltempdir() + end) + + local vim_gettempdir = function() + return helpers.ffi.string(tempfile.vim_gettempdir()) + end + + describe('vim_gettempdir', function() + it('returns path to Neovim own temp directory', function() + local dir = vim_gettempdir() + assert.True(dir ~= nil and dir:len() > 0) + -- os_file_is_writable returns 2 for a directory which we have rights + -- to write into. + assert.equals(os.os_file_is_writable(helpers.to_cstr(dir)), 2) + for entry in lfs.dir(dir) do + assert.True(entry == '.' or entry == '..') + end + end) + + it('returns the same directory on each call', function() + local dir1 = vim_gettempdir() + local dir2 = vim_gettempdir() + assert.equals(dir1, dir2) + end) + end) + + describe('vim_tempname', function() + local vim_tempname = function() + return helpers.ffi.string(tempfile.vim_tempname()) + end + + it('generate name of non-existing file', function() + local file = vim_tempname() + assert.truthy(file) + assert.False(os.os_file_exists(file)) + end) + + it('generate different names on each call', function() + local fst = vim_tempname() + local snd = vim_tempname() + assert.not_equals(fst, snd) + end) + + it('generate file name in Neovim own temp directory', function() + local dir = vim_gettempdir() + local file = vim_tempname() + assert.truthy(file:find('^' .. dir .. '[^/]*$')) + end) + end) +end) |