All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
1 local eq = assert.are.same
2 local ale = require("ale")
4 describe("ale.escape for cmd.exe", function()
11 fnamemodify = function(shell, _)
22 it("should allow not escape paths without special characters", function()
23 eq("C:", ale.escape("C:"))
24 eq("C:\\", ale.escape("C:\\"))
25 eq("python", ale.escape("python"))
26 eq("C:\\foo\\bar", ale.escape("C:\\foo\\bar"))
27 eq("/bar/baz", ale.escape("/bar/baz"))
28 eq("nul", ale.escape("nul"))
29 eq("'foo'", ale.escape("'foo'"))
32 it("should escape Windows paths with spaces appropriately", function()
33 eq('"C:\\foo bar\\baz"', ale.escape('C:\\foo bar\\baz'))
34 eq('"^foo bar^"', ale.escape('^foo bar^'))
35 eq('"&foo bar&"', ale.escape('&foo bar&'))
36 eq('"|foo bar|"', ale.escape('|foo bar|'))
37 eq('"<foo bar<"', ale.escape('<foo bar<'))
38 eq('">foo bar>"', ale.escape('>foo bar>'))
39 eq('"^foo bar^"', ale.escape('^foo bar^'))
40 eq('"\'foo\' \'bar\'"', ale.escape('\'foo\' \'bar\''))
43 it("should use caret escapes on special characters", function()
44 eq('^^foo^^', ale.escape('^foo^'))
45 eq('^&foo^&', ale.escape('&foo&'))
46 eq('^|foo^|', ale.escape('|foo|'))
47 eq('^<foo^<', ale.escape('<foo<'))
48 eq('^>foo^>', ale.escape('>foo>'))
49 eq('^^foo^^', ale.escape('^foo^'))
50 eq('\'foo\'^^\'bar\'', ale.escape('\'foo\'^\'bar\''))
53 it("should escape percent characters", function()
54 eq('%%foo%%', ale.escape('%foo%'))
55 eq('C:\foo%%\bar\baz%%', ale.escape('C:\foo%\bar\baz%'))
56 eq('"C:\foo bar%%\baz%%"', ale.escape('C:\foo bar%\baz%'))
57 eq('^^%%foo%%', ale.escape('^%foo%'))
58 eq('"^%%foo%% %%bar%%"', ale.escape('^%foo% %bar%'))
59 eq('"^%%foo%% %%bar%% """""', ale.escape('^%foo% %bar% ""'))