UnicodeArrayCallsWrapperNodeTemplate.spec.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import 'format-unicorn';
  2. import { AtobTemplate } from '../../../../../src/templates/custom-nodes/AtobTemplate';
  3. import { Rc4Template } from '../../../../../src/templates/custom-nodes/Rc4Template';
  4. import { UnicodeArrayBase64DecodeNodeTemplate } from '../../../../../src/templates/custom-nodes/unicode-array-nodes/unicode-array-calls-wrapper/UnicodeArrayBase64DecodeNodeTemplate';
  5. import { UnicodeArrayCallsWrapperTemplate } from '../../../../../src/templates/custom-nodes/unicode-array-nodes/unicode-array-calls-wrapper/UnicodeArrayCallsWrapperTemplate';
  6. import { UnicodeArrayRc4DecodeNodeTemplate } from '../../../../../src/templates/custom-nodes/unicode-array-nodes/unicode-array-calls-wrapper/UnicodeArrayRC4DecodeNodeTemplate';
  7. import { Utils } from '../../../../../src/Utils';
  8. const assert: Chai.AssertStatic = require('chai').assert;
  9. /**
  10. * @param templateData
  11. * @param unicodeArrayName
  12. * @param unicodeArrayCallsWrapperName
  13. * @param index
  14. * @returns {Function}
  15. */
  16. function getFunctionFromTemplateBase64Encoding (
  17. templateData: any,
  18. unicodeArrayName: string,
  19. unicodeArrayCallsWrapperName: string,
  20. index: string
  21. ) {
  22. let unicodeArrayCallsWrapperTemplate: string = UnicodeArrayCallsWrapperTemplate().formatUnicorn(templateData);
  23. return Function(`
  24. var ${unicodeArrayName} = ['${Utils.btoa('test1')}'];
  25. ${unicodeArrayCallsWrapperTemplate}
  26. return ${unicodeArrayCallsWrapperName}(${index});
  27. `)();
  28. }
  29. /**
  30. * @param templateData
  31. * @param unicodeArrayName
  32. * @param unicodeArrayCallsWrapperName
  33. * @param index
  34. * @param key
  35. * @returns {Function}
  36. */
  37. function getFunctionFromTemplateRc4Encoding (
  38. templateData: any,
  39. unicodeArrayName: string,
  40. unicodeArrayCallsWrapperName: string,
  41. index: string,
  42. key: string
  43. ) {
  44. let unicodeArrayCallsWrapperTemplate: string = UnicodeArrayCallsWrapperTemplate().formatUnicorn(templateData);
  45. return Function(`
  46. var ${unicodeArrayName} = ['${Utils.btoa(Utils.rc4('test1', key))}'];
  47. ${unicodeArrayCallsWrapperTemplate}
  48. return ${unicodeArrayCallsWrapperName}('${index}', '${key}');
  49. `)();
  50. }
  51. describe('UnicodeArrayCallsWrapperNodeTemplate (): string', () => {
  52. let unicodeArrayName: string = 'unicodeArrayName',
  53. unicodeArrayCallsWrapperName: string = 'unicodeArrayCallsWrapperName',
  54. atobDecodeNodeTemplate: string = UnicodeArrayBase64DecodeNodeTemplate().formatUnicorn({
  55. atobPolyfill: AtobTemplate(),
  56. selfDefendingCode: '',
  57. unicodeArrayCallsWrapperName
  58. }),
  59. rc4DecodeNodeTemplate: string = UnicodeArrayRc4DecodeNodeTemplate().formatUnicorn({
  60. atobPolyfill: AtobTemplate(),
  61. rc4Polyfill: Rc4Template(),
  62. selfDefendingCode: '',
  63. unicodeArrayCallsWrapperName
  64. });
  65. it('should correctly returns decoded value with base64 encoding', () => {
  66. assert.deepEqual(getFunctionFromTemplateBase64Encoding({
  67. decodeNodeTemplate: atobDecodeNodeTemplate,
  68. unicodeArrayCallsWrapperName,
  69. unicodeArrayName
  70. }, unicodeArrayName, unicodeArrayCallsWrapperName, '0x0'), 'test1');
  71. });
  72. it('should correctly returns decoded value with rc4 encoding', () => {
  73. assert.deepEqual(getFunctionFromTemplateRc4Encoding({
  74. decodeNodeTemplate: rc4DecodeNodeTemplate,
  75. unicodeArrayCallsWrapperName,
  76. unicodeArrayName
  77. }, unicodeArrayName, unicodeArrayCallsWrapperName, '0x0', 'key'), 'test1');
  78. });
  79. });