Added failing test for custom nodes identifier names collision

This commit is contained in:
sanex3339
2020-01-01 15:53:44 +03:00
parent 3d4a7f9a52
commit f39d16370b
8 changed files with 22848 additions and 50 deletions
@@ -666,5 +666,46 @@ describe('JavaScriptObfuscator', () => {
assert.equal(result, expectedValue);
});
});
describe('Identifier names collision between base code and appended custom nodes', () => {
const samplesCount: number = 30;
let areCollisionsExists: boolean = false;
let obfuscateFunc: (identifierNamesGenerator: IdentifierNamesGenerator) => string;
before(() => {
const code: string = readFileAsString(__dirname + '/fixtures/custom-nodes-identifier-names-collision.js');
obfuscateFunc = (identifierNamesGenerator: IdentifierNamesGenerator) => JavaScriptObfuscator.obfuscate(
code,
{
identifierNamesGenerator,
compact: false,
renameGlobals: true,
identifiersDictionary: ['foo', 'bar', 'baz', 'bark', 'hawk', 'foozmos', 'cow', 'chikago'],
stringArray: true
}
).getObfuscatedCode();
[
IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,
IdentifierNamesGenerator.MangledIdentifierNamesGenerator
].forEach((identifierNamesGenerator: IdentifierNamesGenerator) => {
for (let i = 0; i < samplesCount; i++) {
try {
eval(obfuscateFunc(identifierNamesGenerator));
} catch {
areCollisionsExists = true;
break;
}
}
});
});
it('It does not create identifier names collision', () => {
assert.equal(areCollisionsExists, false);
});
});
});
});