/ test / test_windows_escaping.vader
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% ""')