uriEncodeDecode.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. test("encodeURI", () => {
  2. [
  3. ["шеллы", "%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"],
  4. [";,/?:@&=+$#", ";,/?:@&=+$#"],
  5. ["-_.!~*'()", "-_.!~*'()"],
  6. ["ABC abc 123", "ABC%20abc%20123"],
  7. ].forEach(test => {
  8. expect(encodeURI(test[0])).toBe(test[1]);
  9. });
  10. });
  11. test("decodeURI", () => {
  12. [
  13. ["%D1%88%D0%B5%D0%BB%D0%BB%D1%8B", "шеллы"],
  14. [";,/?:@&=+$#", ";,/?:@&=+$#"],
  15. ["-_.!~*'()", "-_.!~*'()"],
  16. ["ABC%20abc%20123", "ABC abc 123"],
  17. ].forEach(test => {
  18. expect(decodeURI(test[0])).toBe(test[1]);
  19. });
  20. });
  21. test("decodeURI exception", () => {
  22. ["%", "%a", "%gh", "%%%"].forEach(test => {
  23. expect(() => {
  24. decodeURI(test);
  25. }).toThrowWithMessage(URIError, "URI malformed");
  26. });
  27. });
  28. test("encodeURIComponent", () => {
  29. [
  30. ["шеллы", "%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"],
  31. [";,/?:@&=+$#", "%3B%2C%2F%3F%3A%40%26%3D%2B%24%23"],
  32. ["-_.!~*'()", "-_.!~*'()"],
  33. ["ABC abc 123", "ABC%20abc%20123"],
  34. ].forEach(test => {
  35. expect(encodeURIComponent(test[0])).toBe(test[1]);
  36. });
  37. });
  38. test("decodeURIComponent", () => {
  39. [
  40. ["%D1%88%D0%B5%D0%BB%D0%BB%D1%8B", "шеллы"],
  41. ["%3B%2C%2F%3F%3A%40%26%3D%2B%24%23", ";,/?:@&=+$#"],
  42. ["-_.!~*'()", "-_.!~*'()"],
  43. ["ABC%20abc%20123", "ABC abc 123"],
  44. ].forEach(test => {
  45. expect(decodeURIComponent(test[0])).toBe(test[1]);
  46. });
  47. });
  48. test("decodeURIComponent exception", () => {
  49. ["%", "%a", "%gh", "%%%"].forEach(test => {
  50. expect(() => {
  51. decodeURI(test);
  52. }).toThrowWithMessage(URIError, "URI malformed");
  53. });
  54. });