1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import { IObfuscationResult } from '../../../src/interfaces/IObfuscationResult';
- import { NO_CUSTOM_NODES_PRESET } from '../../../src/preset-options/NoCustomNodesPreset';
- import { JavaScriptObfuscator } from '../../../src/JavaScriptObfuscator';
- const assert: Chai.AssertStatic = require('chai').assert;
- describe('MethodDefinitionObfuscator', () => {
- let code: string = `
- class Foo {
- constructor () {}
- bar () {}
- }
- `;
- it('should replace method definition node `key` property with unicode value', () => {
- let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
- code,
- Object.assign({}, NO_CUSTOM_NODES_PRESET)
- );
- assert.match(obfuscationResult.getObfuscatedCode(), /\['\\x62\\x61\\x72'\]\(\)\{\}/);
- });
- it('should replace method definition node `key` property with unicode array call', () => {
- let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
- code,
- Object.assign({}, NO_CUSTOM_NODES_PRESET, {
- unicodeArray: true,
- unicodeArrayThreshold: 1
- })
- );
- assert.match(obfuscationResult.getObfuscatedCode(), /var *_0x([a-z0-9]){4} *= *\['\\x62\\x61\\x72'\];/);
- assert.match(obfuscationResult.getObfuscatedCode(), /\[_0x([a-z0-9]){4}\[0x0\]\]\(\)\{\}/);
- });
- it('should not obfuscate method definition node with `constructor` key', () => {
- let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
- code,
- Object.assign({}, NO_CUSTOM_NODES_PRESET)
- );
- assert.match(obfuscationResult.getObfuscatedCode(), /constructor\(\)\{\}/);
- });
- });
|