aboutsummaryrefslogtreecommitdiff
path: root/test/unit/tempfile_spec.lua
diff options
context:
space:
mode:
authorPavel Platto <hinidu@gmail.com>2014-06-22 16:14:25 +0300
committerNicolas Hillegeer <nicolas@hillegeer.com>2014-07-14 21:14:40 +0200
commit790d81582c1b48da365984f33ea669f869efcfe9 (patch)
tree7b4367f23b8fd273ef527cda6f13b49451d6d695 /test/unit/tempfile_spec.lua
parent286ce271e730a2e6883c244912b36bca007f6ddc (diff)
downloadrneovim-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.lua61
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)