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