base64.test.js 3.6 KB

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