Browse Source

Updated runtime tests with `renamePropertiesMode` option

sanex 4 years ago
parent
commit
35f6d20f3b
1 changed files with 74 additions and 71 deletions
  1. 74 71
      test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts

+ 74 - 71
test/runtime-tests/JavaScriptObfuscatorRuntime.spec.ts

@@ -3,6 +3,7 @@ import { assert } from 'chai';
 import { TInputOptions } from '../../src/types/options/TInputOptions';
 import { TInputOptions } from '../../src/types/options/TInputOptions';
 
 
 import { IdentifierNamesGenerator } from '../../src/enums/generators/identifier-names-generators/IdentifierNamesGenerator';
 import { IdentifierNamesGenerator } from '../../src/enums/generators/identifier-names-generators/IdentifierNamesGenerator';
+import { RenamePropertiesMode } from '../../src/enums/node-transformers/rename-properties-transformers/RenamePropertiesMode';
 import { StringArrayEncoding } from '../../src/enums/node-transformers/string-array-transformers/StringArrayEncoding';
 import { StringArrayEncoding } from '../../src/enums/node-transformers/string-array-transformers/StringArrayEncoding';
 import { StringArrayIndexesType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayIndexesType';
 import { StringArrayIndexesType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayIndexesType';
 import { StringArrayWrappersType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayWrappersType';
 import { StringArrayWrappersType } from '../../src/enums/node-transformers/string-array-transformers/StringArrayWrappersType';
@@ -30,7 +31,7 @@ describe('JavaScriptObfuscator runtime eval', function () {
         numbersToExpressions: true,
         numbersToExpressions: true,
         simplify: true,
         simplify: true,
         renameProperties: true,
         renameProperties: true,
-        reservedNames: ['generate', 'sha256'],
+        renamePropertiesMode: RenamePropertiesMode.Unsafe,
         rotateStringArray: true,
         rotateStringArray: true,
         selfDefending: true,
         selfDefending: true,
         splitStrings: true,
         splitStrings: true,
@@ -92,78 +93,79 @@ describe('JavaScriptObfuscator runtime eval', function () {
                 const code: string = readFileAsString(__dirname + '/fixtures/astring.js');
                 const code: string = readFileAsString(__dirname + '/fixtures/astring.js');
 
 
                 const obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
                 const obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
-                    code,
+                    `
+                    ${getEnvironmentCode()}
+                    ${code}
+                    const code = generate({
+                        "type": "Program",
+                        "body": [
+                            {
+                                "type": "FunctionDeclaration",
+                                "id": {
+                                    "type": "Identifier",
+                                    "name": "test",
+                                    "range": [
+                                        9,
+                                        13
+                                    ]
+                                },
+                                "params": [],
+                                "body": {
+                                    "type": "BlockStatement",
+                                    "body": [
+                                        {
+                                            "type": "ReturnStatement",
+                                            "argument": {
+                                                "type": "Literal",
+                                                "value": "foo",
+                                                "raw": "'foo'",
+                                                "range": [
+                                                    30,
+                                                    35
+                                                ]
+                                            },
+                                            "range": [
+                                                23,
+                                                36
+                                            ]
+                                        }
+                                    ],
+                                    "range": [
+                                        17,
+                                        38
+                                    ]
+                                },
+                                "generator": false,
+                                "expression": false,
+                                "async": false,
+                                "range": [
+                                    0,
+                                    38
+                                ]
+                            }
+                        ],
+                        "sourceType": "module",
+                        "range": [
+                            0,
+                            38
+                        ],
+                        "comments": []
+                    });
+                    
+                    eval(\`\${code} test();\`);
+                    `,
                     {
                     {
                         ...baseOptions,
                         ...baseOptions,
                         ...options,
                         ...options,
-                        renameProperties: false
+                        renamePropertiesMode: RenamePropertiesMode.Safe,
+                        reservedNames: ['generate']
                     }
                     }
                 ).getObfuscatedCode();
                 ).getObfuscatedCode();
 
 
                 let evaluationResult: string;
                 let evaluationResult: string;
 
 
                 try {
                 try {
-                    evaluationResult = eval(`
-                        ${getEnvironmentCode()}
-                        ${obfuscatedCode}
-                        const code = generate({
-                            "type": "Program",
-                            "body": [
-                                {
-                                    "type": "FunctionDeclaration",
-                                    "id": {
-                                        "type": "Identifier",
-                                        "name": "test",
-                                        "range": [
-                                            9,
-                                            13
-                                        ]
-                                    },
-                                    "params": [],
-                                    "body": {
-                                        "type": "BlockStatement",
-                                        "body": [
-                                            {
-                                                "type": "ReturnStatement",
-                                                "argument": {
-                                                    "type": "Literal",
-                                                    "value": "foo",
-                                                    "raw": "'foo'",
-                                                    "range": [
-                                                        30,
-                                                        35
-                                                    ]
-                                                },
-                                                "range": [
-                                                    23,
-                                                    36
-                                                ]
-                                            }
-                                        ],
-                                        "range": [
-                                            17,
-                                            38
-                                        ]
-                                    },
-                                    "generator": false,
-                                    "expression": false,
-                                    "async": false,
-                                    "range": [
-                                        0,
-                                        38
-                                    ]
-                                }
-                            ],
-                            "sourceType": "module",
-                            "range": [
-                                0,
-                                38
-                            ],
-                            "comments": []
-                        });
-                        
-                        eval(\`\${code} test();\`);
-                    `)
+                    evaluationResult = eval(obfuscatedCode)
                 } catch (e) {
                 } catch (e) {
                     throw new Error(`Evaluation error: ${e.message}. Code: ${obfuscatedCode}`);
                     throw new Error(`Evaluation error: ${e.message}. Code: ${obfuscatedCode}`);
                 }
                 }
@@ -177,19 +179,20 @@ describe('JavaScriptObfuscator runtime eval', function () {
                 const code: string = readFileAsString(__dirname + '/fixtures/sha256.js');
                 const code: string = readFileAsString(__dirname + '/fixtures/sha256.js');
 
 
                 const obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
                 const obfuscatedCode: string = JavaScriptObfuscator.obfuscate(
-                    code,
+                    `
+                    ${getEnvironmentCode()}
+                    ${code}
+                    sha256('test');
+                    `,
                     {
                     {
                         ...baseOptions,
                         ...baseOptions,
-                        ...options
+                        ...options,
+                        reservedNames: ['sha256']
                     }
                     }
                 ).getObfuscatedCode();
                 ).getObfuscatedCode();
 
 
                 assert.equal(
                 assert.equal(
-                    eval(`
-                        ${getEnvironmentCode()}
-                        ${obfuscatedCode}
-                        sha256('test');
-                    `),
+                    eval(obfuscatedCode),
                     '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'
                     '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08'
                 );
                 );
             });
             });