| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | import * as format from 'string-template';import { assert } from 'chai';import { AtobTemplate } from '../../../../../src/templates/custom-nodes/AtobTemplate';import { Rc4Template } from '../../../../../src/templates/custom-nodes/Rc4Template';import { StringArrayBase64DecodeNodeTemplate } from '../../../../../src/templates/custom-nodes/string-array-nodes/string-array-calls-wrapper/StringArrayBase64DecodeNodeTemplate';import { StringArrayCallsWrapperTemplate } from '../../../../../src/templates/custom-nodes/string-array-nodes/string-array-calls-wrapper/StringArrayCallsWrapperTemplate';import { StringArrayRc4DecodeNodeTemplate } from '../../../../../src/templates/custom-nodes/string-array-nodes/string-array-calls-wrapper/StringArrayRC4DecodeNodeTemplate';import { CryptUtils } from '../../../../../src/utils/CryptUtils';/** * @param templateData * @param stringArrayName * @param stringArrayCallsWrapperName * @param index * @returns {Function} */function getFunctionFromTemplateBase64Encoding (    templateData: any,    stringArrayName: string,    stringArrayCallsWrapperName: string,    index: string) {    let stringArrayCallsWrapperTemplate: string = format(StringArrayCallsWrapperTemplate(), templateData);    return Function(`        var ${stringArrayName} = ['${CryptUtils.btoa('test1')}'];            ${stringArrayCallsWrapperTemplate}                return ${stringArrayCallsWrapperName}(${index});    `)();}/** * @param templateData * @param stringArrayName * @param stringArrayCallsWrapperName * @param index * @param key * @returns {Function} */function getFunctionFromTemplateRc4Encoding (    templateData: any,    stringArrayName: string,    stringArrayCallsWrapperName: string,    index: string,    key: string) {    let stringArrayCallsWrapperTemplate: string = format(StringArrayCallsWrapperTemplate(), templateData);    return Function(`        var ${stringArrayName} = ['${CryptUtils.btoa(CryptUtils.rc4('test1', key))}'];            ${stringArrayCallsWrapperTemplate}                return ${stringArrayCallsWrapperName}('${index}', '${key}');    `)();}describe('StringArrayCallsWrapperNodeTemplate (): string', () => {    let stringArrayName: string = 'stringArrayName',        stringArrayCallsWrapperName: string = 'stringArrayCallsWrapperName',        atobDecodeNodeTemplate: string = format(StringArrayBase64DecodeNodeTemplate(), {            atobPolyfill: AtobTemplate(),            selfDefendingCode: '',            stringArrayCallsWrapperName        }),        rc4DecodeNodeTemplate: string = format(StringArrayRc4DecodeNodeTemplate(), {            atobPolyfill: AtobTemplate(),            rc4Polyfill: Rc4Template(),            selfDefendingCode: '',            stringArrayCallsWrapperName        });    it('should correctly returns decoded value with base64 encoding', () => {        assert.deepEqual(getFunctionFromTemplateBase64Encoding({            decodeNodeTemplate: atobDecodeNodeTemplate,            stringArrayCallsWrapperName,            stringArrayName        }, stringArrayName, stringArrayCallsWrapperName, '0x0'), 'test1');    });    it('should correctly returns decoded value with rc4 encoding', () => {        assert.deepEqual(getFunctionFromTemplateRc4Encoding({            decodeNodeTemplate: rc4DecodeNodeTemplate,            stringArrayCallsWrapperName,            stringArrayName        }, stringArrayName, stringArrayCallsWrapperName, '0x0', 'key'), 'test1');    });});
 |