StringArrayCallsWrapper.spec.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { assert } from 'chai';
  2. import { IObfuscationResult } from '../../../../src/interfaces/IObfuscationResult';
  3. import { NO_ADDITIONAL_NODES_PRESET } from '../../../../src/options/presets/NoCustomNodes';
  4. import { readFileAsString } from '../../../helpers/readFileAsString';
  5. import { JavaScriptObfuscator } from '../../../../src/JavaScriptObfuscatorFacade';
  6. describe('StringArrayCallsWrapper', () => {
  7. const regExp: RegExp = /_0x([a-f0-9]){4,6} *= *_0x([a-f0-9]){4,6} *- *0x0\;/;
  8. describe('`stringArray` option is set', () => {
  9. let obfuscatedCode: string;
  10. before(() => {
  11. const code: string = readFileAsString(__dirname + '/fixtures/simple-input.js');
  12. let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
  13. code,
  14. {
  15. ...NO_ADDITIONAL_NODES_PRESET,
  16. stringArray: true,
  17. stringArrayThreshold: 1
  18. }
  19. );
  20. obfuscatedCode = obfuscationResult.getObfuscatedCode();
  21. });
  22. it('should correctly append custom node into the obfuscated code', () => {
  23. assert.match(obfuscatedCode, regExp);
  24. });
  25. });
  26. describe('`stringArray` option isn\'t set', () => {
  27. let obfuscatedCode: string;
  28. before(() => {
  29. const code: string = readFileAsString(__dirname + '/fixtures/simple-input.js');
  30. let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscate(
  31. code,
  32. {
  33. ...NO_ADDITIONAL_NODES_PRESET,
  34. stringArray: false
  35. }
  36. );
  37. obfuscatedCode = obfuscationResult.getObfuscatedCode();
  38. });
  39. it('shouldn\'t append custom node into the obfuscated code', () => {
  40. assert.notMatch(obfuscatedCode, regExp);
  41. });
  42. });
  43. });