functional.vader 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. Execute (plug#shellescape() works without optional arguments):
  2. if has('unix')
  3. AssertEqual "''", plug#shellescape("")
  4. AssertEqual "'foo'\\'''", plug#shellescape("foo'")
  5. endif
  6. Execute (plug#shellescape() ignores invalid optional argument):
  7. if has('unix')
  8. AssertEqual "''", plug#shellescape("", '')
  9. AssertEqual "'foo'\\'''", plug#shellescape("foo'", [])
  10. endif
  11. Execute (plug#shellescape() depends on the shell):
  12. AssertEqual "'foo'\\'''", plug#shellescape("foo'", {'shell': 'sh'})
  13. AssertEqual '^"foo''^"', plug#shellescape("foo'", {'shell': 'cmd.exe'})
  14. AssertEqual "'foo'''", plug#shellescape("foo'", {'shell': 'powershell'})
  15. AssertEqual "'foo'''", plug#shellescape("foo'", {'shell': 'powershell.exe'})
  16. AssertEqual "'foo'''", plug#shellescape("foo'", {'shell': 'pwsh'})
  17. Execute (plug#shellescape() supports non-trivial cmd.exe escaping):
  18. " batchfile
  19. AssertEqual '^"^^%%PATH^^%%^"', plug#shellescape("^%PATH^%", {
  20. \ 'shell': 'cmd.exe',
  21. \ })
  22. AssertEqual '^"^^%%PATH^^%%^"', plug#shellescape("^%PATH^%", {
  23. \ 'shell': 'cmd.exe',
  24. \ 'script': 1,
  25. \ })
  26. " command prompt
  27. AssertEqual '^"^^^%PATH^^^%^"', plug#shellescape("^%PATH^%", {
  28. \ 'shell': 'cmd.exe',
  29. \ 'script': 0,
  30. \ }),
  31. Execute (plug#shellescape() supports non-trivial powershell.exe escaping):
  32. AssertEqual '''\"Foo\\''''\\Bar\"''', plug#shellescape('"Foo\''\Bar"', {
  33. \ 'shell': 'powershell',
  34. \ }),
  35. AssertEqual '''\"Foo\\''''\\Bar\"''', plug#shellescape('"Foo\''\Bar"', {
  36. \ 'shell': 'powershell.exe',
  37. \ }),