variableDeclaration obfuscator tests

This commit is contained in:
sanex3339
2016-07-30 14:31:00 +03:00
parent 7586a2507e
commit 2f8cf99346
2 changed files with 89 additions and 0 deletions
@@ -0,0 +1,88 @@
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('VariableDeclarationObfuscator', () => {
it('should obfuscate `variableDeclaration` node', () => {
let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
`
function foo () {
var test = 'abc';
console.log(test);
}
`,
Object.assign({}, NO_CUSTOM_NODES_PRESET)
);
assert.match(obfuscationResult.getObfuscatedCode(), /var *_0x([a-z0-9]){6} *= *'\\x61\\x62\\x63';/);
assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(_0x([a-z0-9]){6}\);/);
});
it('should obfuscate variable call (`identifier` node) outside of block scope of node in which this variable was declared with `var` kind', () => {
let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
`
if (true)
{
var test = 10;
}
console.log(test);
`,
Object.assign({}, NO_CUSTOM_NODES_PRESET)
);
assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(_0x([a-z0-9]){6}\);/);
});
it('should not obfuscate variable call (`identifier` node) outside of block scope of node in which this variable was declared with `let` kind', () => {
let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
`
if (true)
{
let test = 10;
}
console.log(test);
`,
Object.assign({}, NO_CUSTOM_NODES_PRESET)
);
assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(test\);/);
});
describe(`variable calls before variable declaration`, () => {
let obfuscationResult: IObfuscationResult;
beforeEach(() => {
obfuscationResult = JavaScriptObfuscator.obfuscate(
`
function foo () {
function bar () {
console.log(abc.item);
}
console.log(abc);
var abc = {};
abc.item = 15;
bar();
}
`,
Object.assign({}, NO_CUSTOM_NODES_PRESET)
);
});
it('should obfuscate variable call (`identifier` node) before variable declaration if this call is inside function body', () => {
assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(_0x([a-z0-9]){6}\['\\x69\\x74\\x65\\x6d'\]\);/);
});
it('should not obfuscate variable call (`identifier` node) before variable declaration', () => {
assert.match(obfuscationResult.getObfuscatedCode(), /console\['\\x6c\\x6f\\x67'\]\(abc\);/);
});
});
});
+1
View File
@@ -27,3 +27,4 @@ import './functional-tests/node-obfuscators/LiteralObfuscator.spec';
import './functional-tests/node-obfuscators/MemberExpressionObfuscator.spec';
import './functional-tests/node-obfuscators/MethodDefinitionObfuscator.spec';
import './functional-tests/node-obfuscators/ObjectExpressionObfuscator.spec';
import './functional-tests/node-obfuscators/VariableDeclarationObfuscator.spec';