X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/0ee596c5c5e11fc79598407eaf22f83d279f7e9e..5a4872f466ebd76ddd532bdf2798554421c53df4:/.vim/bundle/ale/test/lua/windows_escaping_spec.lua diff --git a/.vim/bundle/ale/test/lua/windows_escaping_spec.lua b/.vim/bundle/ale/test/lua/windows_escaping_spec.lua new file mode 100644 index 00000000..86f5f52e --- /dev/null +++ b/.vim/bundle/ale/test/lua/windows_escaping_spec.lua @@ -0,0 +1,61 @@ +local eq = assert.are.same +local ale = require("ale") + +describe("ale.escape for cmd.exe", function() + setup(function() + _G.vim = { + o = { + shell = "cmd.exe" + }, + fn = { + fnamemodify = function(shell, _) + return shell + end + } + } + end) + + teardown(function() + _G.vim = nil + end) + + it("should allow not escape paths without special characters", function() + eq("C:", ale.escape("C:")) + eq("C:\\", ale.escape("C:\\")) + eq("python", ale.escape("python")) + eq("C:\\foo\\bar", ale.escape("C:\\foo\\bar")) + eq("/bar/baz", ale.escape("/bar/baz")) + eq("nul", ale.escape("nul")) + eq("'foo'", ale.escape("'foo'")) + end) + + it("should escape Windows paths with spaces appropriately", function() + eq('"C:\\foo bar\\baz"', ale.escape('C:\\foo bar\\baz')) + eq('"^foo bar^"', ale.escape('^foo bar^')) + eq('"&foo bar&"', ale.escape('&foo bar&')) + eq('"|foo bar|"', ale.escape('|foo bar|')) + eq('"foo bar>"', ale.escape('>foo bar>')) + eq('"^foo bar^"', ale.escape('^foo bar^')) + eq('"\'foo\' \'bar\'"', ale.escape('\'foo\' \'bar\'')) + end) + + it("should use caret escapes on special characters", function() + eq('^^foo^^', ale.escape('^foo^')) + eq('^&foo^&', ale.escape('&foo&')) + eq('^|foo^|', ale.escape('|foo|')) + eq('^foo^>', ale.escape('>foo>')) + eq('^^foo^^', ale.escape('^foo^')) + eq('\'foo\'^^\'bar\'', ale.escape('\'foo\'^\'bar\'')) + end) + + it("should escape percent characters", function() + eq('%%foo%%', ale.escape('%foo%')) + eq('C:\foo%%\bar\baz%%', ale.escape('C:\foo%\bar\baz%')) + eq('"C:\foo bar%%\baz%%"', ale.escape('C:\foo bar%\baz%')) + eq('^^%%foo%%', ale.escape('^%foo%')) + eq('"^%%foo%% %%bar%%"', ale.escape('^%foo% %bar%')) + eq('"^%%foo%% %%bar%% """""', ale.escape('^%foo% %bar% ""')) + end) +end)