test_windows_escaping.vader
1 Before: 2 Save &shell 3 let &shell = 'cmd.exe' 4 5 After: 6 Restore 7 8 Execute(ale#Escape for cmd.exe should allow not escape paths without special characters): 9 AssertEqual 'C:', ale#Escape('C:') 10 AssertEqual 'C:\', ale#Escape('C:\') 11 AssertEqual 'python', ale#Escape('python') 12 AssertEqual 'C:\foo\bar', ale#Escape('C:\foo\bar') 13 AssertEqual '/bar/baz', ale#Escape('/bar/baz') 14 AssertEqual 'nul', ale#Escape('nul') 15 AssertEqual '''foo''', ale#Escape('''foo''') 16 17 Execute(ale#Escape for cmd.exe should escape Windows paths with spaces appropriately): 18 AssertEqual '"C:\foo bar\baz"', ale#Escape('C:\foo bar\baz') 19 AssertEqual '"^foo bar^"', ale#Escape('^foo bar^') 20 AssertEqual '"&foo bar&"', ale#Escape('&foo bar&') 21 AssertEqual '"|foo bar|"', ale#Escape('|foo bar|') 22 AssertEqual '"<foo bar<"', ale#Escape('<foo bar<') 23 AssertEqual '">foo bar>"', ale#Escape('>foo bar>') 24 AssertEqual '"^foo bar^"', ale#Escape('^foo bar^') 25 AssertEqual '"''foo'' ''bar''"', ale#Escape('''foo'' ''bar''') 26 27 Execute(ale#Escape for cmd.exe should use caret escapes on special characters): 28 AssertEqual '^^foo^^', ale#Escape('^foo^') 29 AssertEqual '^&foo^&', ale#Escape('&foo&') 30 AssertEqual '^|foo^|', ale#Escape('|foo|') 31 AssertEqual '^<foo^<', ale#Escape('<foo<') 32 AssertEqual '^>foo^>', ale#Escape('>foo>') 33 AssertEqual '^^foo^^', ale#Escape('^foo^') 34 AssertEqual '''foo''^^''bar''', ale#Escape('''foo''^''bar''') 35 36 Execute(ale#Escape for cmd.exe should escape percent characters): 37 AssertEqual '%%foo%%', ale#Escape('%foo%') 38 AssertEqual 'C:\foo%%\bar\baz%%', ale#Escape('C:\foo%\bar\baz%') 39 AssertEqual '"C:\foo bar%%\baz%%"', ale#Escape('C:\foo bar%\baz%') 40 AssertEqual '^^%%foo%%', ale#Escape('^%foo%') 41 AssertEqual '"^%%foo%% %%bar%%"', ale#Escape('^%foo% %bar%') 42 AssertEqual '"^%%foo%% %%bar%% """""', ale#Escape('^%foo% %bar% ""')