You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dot-files/test/test_windows_escaping.vader

43 lines
1.8 KiB
Plaintext

Before:
Save &shell
let &shell = 'cmd.exe'
After:
Restore
Execute(ale#Escape for cmd.exe should allow not escape paths without special characters):
AssertEqual 'C:', ale#Escape('C:')
AssertEqual 'C:\', ale#Escape('C:\')
AssertEqual 'python', ale#Escape('python')
AssertEqual 'C:\foo\bar', ale#Escape('C:\foo\bar')
AssertEqual '/bar/baz', ale#Escape('/bar/baz')
AssertEqual 'nul', ale#Escape('nul')
AssertEqual '''foo''', ale#Escape('''foo''')
Execute(ale#Escape for cmd.exe should escape Windows paths with spaces appropriately):
AssertEqual '"C:\foo bar\baz"', ale#Escape('C:\foo bar\baz')
AssertEqual '"^foo bar^"', ale#Escape('^foo bar^')
AssertEqual '"&foo bar&"', ale#Escape('&foo bar&')
AssertEqual '"|foo bar|"', ale#Escape('|foo bar|')
AssertEqual '"<foo bar<"', ale#Escape('<foo bar<')
AssertEqual '">foo bar>"', ale#Escape('>foo bar>')
AssertEqual '"^foo bar^"', ale#Escape('^foo bar^')
AssertEqual '"''foo'' ''bar''"', ale#Escape('''foo'' ''bar''')
Execute(ale#Escape for cmd.exe should use caret escapes on special characters):
AssertEqual '^^foo^^', ale#Escape('^foo^')
AssertEqual '^&foo^&', ale#Escape('&foo&')
AssertEqual '^|foo^|', ale#Escape('|foo|')
AssertEqual '^<foo^<', ale#Escape('<foo<')
AssertEqual '^>foo^>', ale#Escape('>foo>')
AssertEqual '^^foo^^', ale#Escape('^foo^')
AssertEqual '''foo''^^''bar''', ale#Escape('''foo''^''bar''')
Execute(ale#Escape for cmd.exe should escape percent characters):
AssertEqual '%%foo%%', ale#Escape('%foo%')
AssertEqual 'C:\foo%%\bar\baz%%', ale#Escape('C:\foo%\bar\baz%')
AssertEqual '"C:\foo bar%%\baz%%"', ale#Escape('C:\foo bar%\baz%')
AssertEqual '^^%%foo%%', ale#Escape('^%foo%')
AssertEqual '"^%%foo%% %%bar%%"', ale#Escape('^%foo% %bar%')
AssertEqual '"^%%foo%% %%bar%% """""', ale#Escape('^%foo% %bar% ""')