aboutsummaryrefslogtreecommitdiff
path: root/test/functional/core/path_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/core/path_spec.lua')
-rw-r--r--test/functional/core/path_spec.lua61
1 files changed, 61 insertions, 0 deletions
diff --git a/test/functional/core/path_spec.lua b/test/functional/core/path_spec.lua
new file mode 100644
index 0000000000..44e69fff7b
--- /dev/null
+++ b/test/functional/core/path_spec.lua
@@ -0,0 +1,61 @@
+local helpers = require('test.functional.helpers')(after_each)
+local clear = helpers.clear
+local eq = helpers.eq
+local eval = helpers.eval
+local get_pathsep = helpers.get_pathsep
+local command = helpers.command
+
+describe("'%:p' expanding", function()
+ local pathsep
+ local targetdir
+ local expected_path
+
+ local function get_full_path()
+ return eval('expand("%:p")')
+ end
+
+ local function join_path(...)
+ return table.concat({...}, pathsep)
+ end
+
+ before_each(function()
+ clear()
+ pathsep = get_pathsep()
+ targetdir = join_path('test', 'functional', 'fixtures')
+ clear(join_path(targetdir, 'tty-test.c'))
+ expected_path = get_full_path()
+ end)
+
+ it('given a relative path with current directory in the middle #7117', function()
+ clear(join_path(targetdir, '.', 'tty-test.c'))
+ eq(expected_path, get_full_path())
+ end)
+
+ it('given a relative path with current directory #7117', function()
+ clear(join_path('.', targetdir, 'tty-test.c'))
+ eq(expected_path, get_full_path())
+ end)
+
+ it('given a relative path with current directory to a file when changing directory #7117', function()
+ clear(join_path('.', targetdir, 'tty-test.c'))
+ command('cd test')
+ eq(expected_path, get_full_path())
+ end)
+
+ it('given a relative path with directory up the tree to a file #7117', function()
+ clear(join_path(targetdir, '..', 'fixtures', 'tty-test.c'))
+ eq(expected_path, get_full_path())
+ end)
+
+ it('given a different starting directory and a relative path with directory up the tree #7117', function()
+ command('cd test')
+ command('e ' .. join_path('..', targetdir, 'tty-test.c'))
+ eq(expected_path, get_full_path())
+ end)
+
+ it('given a different starting directory and a relative path with current directory and up the tree #7117', function()
+ command('cd test')
+ command('e ' .. join_path('.', '..', targetdir, 'tty-test.c'))
+ eq(expected_path, get_full_path())
+ end)
+end)