diff options
author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-07-14 12:20:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-14 12:20:13 -0700 |
commit | 19a2e59f7e80f87704ce135fff53e0efdec30432 (patch) | |
tree | 08f76998adfe570b7e7a8dc85833f3fc4ae856cf /test/functional/lua/uri_spec.lua | |
parent | c31bc6ea731567db86cbe91f7c62d89c612cd3ac (diff) | |
parent | 1dab9357de586b08431175f19a1b44bb294866d6 (diff) | |
download | rneovim-19a2e59f7e80f87704ce135fff53e0efdec30432.tar.gz rneovim-19a2e59f7e80f87704ce135fff53e0efdec30432.tar.bz2 rneovim-19a2e59f7e80f87704ce135fff53e0efdec30432.zip |
Merge pull request #15017 from donbex/local-file-uri
fix(lsp): accept file URIs without a hostname
Diffstat (limited to 'test/functional/lua/uri_spec.lua')
-rw-r--r-- | test/functional/lua/uri_spec.lua | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/test/functional/lua/uri_spec.lua b/test/functional/lua/uri_spec.lua index f782769935..052a8a1ecd 100644 --- a/test/functional/lua/uri_spec.lua +++ b/test/functional/lua/uri_spec.lua @@ -53,12 +53,18 @@ describe('URI methods', function() describe('uri to filepath', function() describe('decode Unix file path', function() - it('file path includes only ascii charactors', function() + it('file path includes only ascii characters', function() exec_lua("uri = 'file:///Foo/Bar/Baz.txt'") eq('/Foo/Bar/Baz.txt', exec_lua("return vim.uri_to_fname(uri)")) end) + it('local file path without hostname', function() + exec_lua("uri = 'file:/Foo/Bar/Baz.txt'") + + eq('/Foo/Bar/Baz.txt', exec_lua("return vim.uri_to_fname(uri)")) + end) + it('file path including white space', function() exec_lua("uri = 'file:///Foo%20/Bar/Baz.txt'") @@ -85,6 +91,15 @@ describe('URI methods', function() eq('C:\\Foo\\Bar\\Baz.txt', exec_lua(test_case)) end) + it('local file path without hostname', function() + local test_case = [[ + local uri = 'file:/C:/Foo/Bar/Baz.txt' + return vim.uri_to_fname(uri) + ]] + + eq('C:\\Foo\\Bar\\Baz.txt', exec_lua(test_case)) + end) + it('file path includes only ascii charactors with encoded colon character', function() local test_case = [[ local uri = 'file:///C%3A/Foo/Bar/Baz.txt' @@ -125,6 +140,12 @@ describe('URI methods', function() return vim.uri_to_fname('JDT://content/%5C/') ]]) end) + + it('uri_to_fname returns non-file scheme URI without authority unchanged', function() + eq('zipfile:/path/to/archive.zip%3A%3Afilename.txt', exec_lua [[ + return vim.uri_to_fname('zipfile:/path/to/archive.zip%3A%3Afilename.txt') + ]]) + end) end) describe('decode URI without scheme', function() @@ -146,5 +167,14 @@ describe('URI methods', function() ]], uri) eq(uri, exec_lua(test_case)) end) + + it('uri_to_bufnr & uri_from_bufnr returns original uri for non-file uris without authority', function() + local uri = 'zipfile:/path/to/archive.zip%3A%3Afilename.txt' + local test_case = string.format([[ + local uri = '%s' + return vim.uri_from_bufnr(vim.uri_to_bufnr(uri)) + ]], uri) + eq(uri, exec_lua(test_case)) + end) end) end) |