base64.test.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime-corejs2/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
  4. var _iterator = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol/iterator"));
  5. var _symbol = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol"));
  6. var base64 = _interopRequireWildcard(require("./base64"));
  7. var __values = void 0 && (void 0).__values || function (o) {
  8. var s = typeof _symbol["default"] === "function" && _iterator["default"],
  9. m = s && o[s],
  10. i = 0;
  11. if (m) return m.call(o);
  12. if (o && typeof o.length === "number") return {
  13. next: function next() {
  14. if (o && i >= o.length) o = void 0;
  15. return {
  16. value: o && o[i++],
  17. done: !o
  18. };
  19. }
  20. };
  21. throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
  22. };
  23. var __read = void 0 && (void 0).__read || function (o, n) {
  24. var m = typeof _symbol["default"] === "function" && o[_iterator["default"]];
  25. if (!m) return o;
  26. var i = m.call(o),
  27. r,
  28. ar = [],
  29. e;
  30. try {
  31. while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
  32. ar.push(r.value);
  33. }
  34. } catch (error) {
  35. e = {
  36. error: error
  37. };
  38. } finally {
  39. try {
  40. if (r && !r.done && (m = i["return"])) m.call(i);
  41. } finally {
  42. if (e) throw e.error;
  43. }
  44. }
  45. return ar;
  46. };
  47. // 测试用例来自以下地址
  48. // https://github.com/LinusU/encode-utf8/blob/bd6c09b1c67baafc51853b1bea0e80bfe1e69ed0/test.js
  49. var testCases = [['正', '5q2j'], ['𝌆', '8J2Mhg'], ['💩', '8J-SqQ'], ['Hello, World!', 'SGVsbG8sIFdvcmxkIQ'], ['🐵 🙈 🙉 🙊', '8J-QtSDwn5mIIPCfmYkg8J-Zig'], ['åß∂ƒ©˙∆˚¬…æ', 'w6XDn-KIgsaSwqnLmeKIhsuawqzigKbDpg'], ['사회과학원 어학연구소', '7IKs7ZqM6rO87ZWZ7JuQIOyWtO2VmeyXsOq1rOyGjA'], ['゚・✿ヾ╲(。◕‿◕。)╱✿・゚', '776f772l4py_44O-4pWyKO-9oeKXleKAv-KXle-9oSnilbHinL_vvaXvvp8'], ['Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗', 'UG93ZXLZhNmP2YTZj9i12ZHYqNmP2YTZj9mE2LXZkdio2Y_Ysdix2Ysg4KWjIOClo2gg4KWjIOClo-WGlw'], ['𝕿𝖍𝖊 𝖖𝖚𝖎𝖈𝖐 𝖇𝖗𝖔𝖜𝖓 𝖋𝖔𝖝 𝖏𝖚𝖒𝖕𝖘 𝖔𝖛𝖊𝖗 𝖙𝖍𝖊 𝖑𝖆𝖟𝖞 𝖉𝖔𝖌', '8J2Vv_Cdlo3wnZaKIPCdlpbwnZaa8J2WjvCdlojwnZaQIPCdlofwnZaX8J2WlPCdlpzwnZaTIPCdlovwnZaU8J2WnSDwnZaP8J2WmvCdlpLwnZaV8J2WmCDwnZaU8J2Wm_CdlorwnZaXIPCdlpnwnZaN8J2WiiDwnZaR8J2WhvCdlp_wnZaeIPCdlonwnZaU8J2WjA']];
  50. describe('test base64', function () {
  51. test('urlSafeBase64Encode', function () {
  52. var e_1, _a;
  53. try {
  54. for (var testCases_1 = __values(testCases), testCases_1_1 = testCases_1.next(); !testCases_1_1.done; testCases_1_1 = testCases_1.next()) {
  55. var _b = __read(testCases_1_1.value, 2),
  56. input = _b[0],
  57. expected = _b[1];
  58. var actual = base64.urlSafeBase64Encode(input);
  59. expect(actual).toMatch(expected);
  60. }
  61. } catch (e_1_1) {
  62. e_1 = {
  63. error: e_1_1
  64. };
  65. } finally {
  66. try {
  67. if (testCases_1_1 && !testCases_1_1.done && (_a = testCases_1["return"])) _a.call(testCases_1);
  68. } finally {
  69. if (e_1) throw e_1.error;
  70. }
  71. }
  72. });
  73. test('urlSafeBase64Decode', function () {
  74. var e_2, _a;
  75. try {
  76. for (var testCases_2 = __values(testCases), testCases_2_1 = testCases_2.next(); !testCases_2_1.done; testCases_2_1 = testCases_2.next()) {
  77. var _b = __read(testCases_2_1.value, 2),
  78. expected = _b[0],
  79. input = _b[1];
  80. var actual = base64.urlSafeBase64Decode(input);
  81. expect(actual).toMatch(expected);
  82. }
  83. } catch (e_2_1) {
  84. e_2 = {
  85. error: e_2_1
  86. };
  87. } finally {
  88. try {
  89. if (testCases_2_1 && !testCases_2_1.done && (_a = testCases_2["return"])) _a.call(testCases_2);
  90. } finally {
  91. if (e_2) throw e_2.error;
  92. }
  93. }
  94. });
  95. });