aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/fs_spec.lua
diff options
context:
space:
mode:
authordundargoc <gocdundar@gmail.com>2025-01-02 16:29:00 +0100
committerdundargoc <33953936+dundargoc@users.noreply.github.com>2025-01-04 21:48:45 +0100
commita8ace2c58a318552869462a36859aabf1cdfaa68 (patch)
tree4e61c3e4ba917df80f62c1fd6db85f9a4eef1503 /test/functional/lua/fs_spec.lua
parent69aa33d890468c1024beef0d97d0f9424516c9ef (diff)
downloadrneovim-a8ace2c58a318552869462a36859aabf1cdfaa68.tar.gz
rneovim-a8ace2c58a318552869462a36859aabf1cdfaa68.tar.bz2
rneovim-a8ace2c58a318552869462a36859aabf1cdfaa68.zip
fix(vim.fs.normalize): normalize case for windows drive letter
Also add tests for the current path casing behavior so it doesn't get accidentally changed.
Diffstat (limited to 'test/functional/lua/fs_spec.lua')
-rw-r--r--test/functional/lua/fs_spec.lua26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/functional/lua/fs_spec.lua b/test/functional/lua/fs_spec.lua
index 1c6ff5ac6d..218f9bbc46 100644
--- a/test/functional/lua/fs_spec.lua
+++ b/test/functional/lua/fs_spec.lua
@@ -340,6 +340,9 @@ describe('vim.fs', function()
end)
describe('normalize()', function()
+ -- local function vim.fs.normalize(path, opts)
+ -- return exec_lua([[return vim.fs.vim.fs.normalize(...)]], path, opts)
+ -- end
it('removes trailing /', function()
eq('/home/user', vim.fs.normalize('/home/user/'))
end)
@@ -373,6 +376,29 @@ describe('vim.fs', function()
eq('/foo/bar', vim.fs.normalize('/foo//bar////', posix_opts))
end)
+ it('normalizes drive letter', function()
+ eq('C:/', vim.fs.normalize('C:/', win_opts))
+ eq('C:/', vim.fs.normalize('c:/', win_opts))
+ eq('D:/', vim.fs.normalize('d:/', win_opts))
+ eq('C:', vim.fs.normalize('C:', win_opts))
+ eq('C:', vim.fs.normalize('c:', win_opts))
+ eq('D:', vim.fs.normalize('d:', win_opts))
+ eq('C:/foo/test', vim.fs.normalize('C:/foo/test/', win_opts))
+ eq('C:/foo/test', vim.fs.normalize('c:/foo/test/', win_opts))
+ eq('D:foo/test', vim.fs.normalize('D:foo/test/', win_opts))
+ eq('D:foo/test', vim.fs.normalize('d:foo/test/', win_opts))
+ end)
+
+ it('does not change case on paths, see #31833', function()
+ eq('TEST', vim.fs.normalize('TEST', win_opts))
+ eq('test', vim.fs.normalize('test', win_opts))
+ eq('C:/FOO/test', vim.fs.normalize('C:/FOO/test', win_opts))
+ eq('C:/foo/test', vim.fs.normalize('C:/foo/test', win_opts))
+ eq('//SERVER/SHARE/FOO/BAR', vim.fs.normalize('//SERVER/SHARE/FOO/BAR', win_opts))
+ eq('//server/share/foo/bar', vim.fs.normalize('//server/share/foo/bar', win_opts))
+ eq('C:/FOO/test', vim.fs.normalize('c:/FOO/test', win_opts))
+ end)
+
it('allows backslashes on unix-based os', function()
eq('/home/user/hello\\world', vim.fs.normalize('/home/user/hello\\world', posix_opts))
end)