/js/src/jit-test/tests/latin1/encode-decode.js

https://github.com/rillian/firefox · JavaScript · 57 lines · 40 code · 10 blank · 7 comment · 0 complexity · dce20aacab374c527a860fbe0879c5ad MD5 · raw file

  1. // Latin1
  2. s = "a%2b%20def%00A0";
  3. res = decodeURI(s);
  4. assertEq(res, "a%2b def\x00A0");
  5. assertEq(isLatin1(res), true);
  6. res = decodeURIComponent(s);
  7. assertEq(res, "a+ def\x00A0");
  8. assertEq(isLatin1(res), true);
  9. // TwoByte
  10. s += "\u1200";
  11. assertEq(decodeURI(s), "a%2b def\x00A0\u1200");
  12. assertEq(decodeURIComponent(s), "a+ def\x00A0\u1200");
  13. // Latin1 malformed
  14. try {
  15. decodeURI("abc%80");
  16. assertEq(0, 1);
  17. } catch(e) {
  18. assertEq(e instanceof URIError, true);
  19. }
  20. // TwoByte malformed
  21. try {
  22. decodeURI("abc%80\u1200");
  23. assertEq(0, 1);
  24. } catch(e) {
  25. assertEq(e instanceof URIError, true);
  26. }
  27. // Latin1
  28. res = encodeURI("a%2b def\x00A0");
  29. assertEq(res, "a%252b%20def%00A0");
  30. assertEq(isLatin1(res), true);
  31. res = encodeURIComponent("a+ def\x00A0");
  32. assertEq(res, "a%2B%20def%00A0");
  33. assertEq(isLatin1(res), true);
  34. // TwoByte
  35. res = encodeURI("a%2b def\x00A0\u1200");
  36. assertEq(res, "a%252b%20def%00A0%E1%88%80");
  37. assertEq(isLatin1(res), true);
  38. res = encodeURIComponent("a+ def\x00A0\u1200");
  39. assertEq(res, "a%2B%20def%00A0%E1%88%80");
  40. assertEq(isLatin1(res), true);
  41. // TwoByte malformed
  42. try {
  43. encodeURI("a\uDB00");
  44. assertEq(0, 1);
  45. } catch(e) {
  46. assertEq(e instanceof URIError, true);
  47. }