1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import { assert } from 'chai';
- import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
- import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscatorFacade';
- import { NO_CUSTOM_NODES_PRESET } from '../../../../src/options/presets/NoCustomNodes';
- import { readFileAsString } from '../../../helpers/readFileAsString';
- describe('BlackListNodeGuard', () => {
- describe('check (node: ESTree.Node): boolean', () => {
- describe('`\'use strict\';` operator', () => {
- const useStrictOperatorRegExp: RegExp = /'use *strict';/;
- const stringArrayLatinRegExp: RegExp = /var _0x(\w){4} *= *\['abc'\];/;
- const stringArrayCallRegExp: RegExp = /var *test *= *_0x(\w){4}\('0x0'\);$/;
- let obfuscatedCode: string;
- beforeEach(() => {
- const code: string = readFileAsString(__dirname + '/fixtures/use-strict-operator.js');
- const obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
- code,
- {
- ...NO_CUSTOM_NODES_PRESET,
- stringArray: true,
- stringArrayThreshold: 1
- }
- );
- obfuscatedCode = obfuscationResult.getObfuscatedCode();
- });
- it('match #1: shouldn\'t obfuscate `use strict` operator', () => {
- assert.match(obfuscatedCode, useStrictOperatorRegExp);
- });
- it('match #2: should return correct obfuscated code', () => {
- assert.match(obfuscatedCode, stringArrayLatinRegExp);
- });
- it('match #3: should return correct obfuscated code', () => {
- assert.match(obfuscatedCode, stringArrayCallRegExp);
- });
- });
- });
- });
|