From 38b2647c4571e51787956608d1c4ec8d85b5f533 Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Sat, 9 Jul 2016 19:20:59 +0300 Subject: [PATCH] ObfuscationResult unit test --- .../JavaScriptObfuscator.spec.ts | 17 +++++++++++---- .../JavaScriptObfuscatorInternal.spec.ts | 1 + test/unit-tests/ObfuscationResult.spec.ts | 21 +++++++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 test/unit-tests/ObfuscationResult.spec.ts diff --git a/test/functional-tests/JavaScriptObfuscator.spec.ts b/test/functional-tests/JavaScriptObfuscator.spec.ts index d108df25..4636e80f 100644 --- a/test/functional-tests/JavaScriptObfuscator.spec.ts +++ b/test/functional-tests/JavaScriptObfuscator.spec.ts @@ -85,26 +85,35 @@ describe('JavaScriptObfuscator', () => { assert.isOk(JSON.parse(obfuscationResult.sourceMap).mappings); }); - it('should returns object with obfuscated code and empty source map if `sourceMapMode` is `inline', () => { + it('should returns object with obfuscated code with inline source map and empty `sourceMap` if `sourceMapMode` is `inline', () => { let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscateWithSourceMap( `var test = 1;`, Object.assign({}, NO_CUSTOM_NODES_PRESET, { + sourceMap: true, sourceMapMode: 'inline' }) ); assert.isOk(obfuscationResult.obfuscatedCode); + assert.match( + obfuscationResult.obfuscatedCode, + /sourceMappingURL=data:application\/json;base64/ + ); assert.isNotOk(obfuscationResult.sourceMap); }); - it('should returns object with empty obfuscated code and empty source map if source code is empty', () => { + it('should returns object with empty obfuscated code and source map with empty data if source code is empty', () => { let obfuscationResult: IObfuscationResult = JavaScriptObfuscator.obfuscateWithSourceMap( '', - Object.assign({}, NO_CUSTOM_NODES_PRESET) + Object.assign({}, NO_CUSTOM_NODES_PRESET, { + sourceMap: true + }) ); assert.isNotOk(obfuscationResult.obfuscatedCode); - assert.isNotOk(obfuscationResult.sourceMap); + assert.deepEqual(JSON.parse(obfuscationResult.sourceMap).names, []); + assert.deepEqual(JSON.parse(obfuscationResult.sourceMap).sources, []); + assert.isNotOk(JSON.parse(obfuscationResult.sourceMap).mappings); }); }); diff --git a/test/functional-tests/JavaScriptObfuscatorInternal.spec.ts b/test/functional-tests/JavaScriptObfuscatorInternal.spec.ts index 3c410bb1..5a5e0d6f 100644 --- a/test/functional-tests/JavaScriptObfuscatorInternal.spec.ts +++ b/test/functional-tests/JavaScriptObfuscatorInternal.spec.ts @@ -28,6 +28,7 @@ describe('JavaScriptObfuscatorInternal', () => { it('should link obfuscated code with source map', () => { assert.match(obfuscationResult.obfuscatedCode, new RegExp(`sourceMappingURL=${sourceMapUrl}`)); + assert.isOk(JSON.parse(obfuscationResult.sourceMap).mappings); }); }); }); diff --git a/test/unit-tests/ObfuscationResult.spec.ts b/test/unit-tests/ObfuscationResult.spec.ts new file mode 100644 index 00000000..bfeada09 --- /dev/null +++ b/test/unit-tests/ObfuscationResult.spec.ts @@ -0,0 +1,21 @@ +import { IObfuscationResult } from "../../src/interfaces/IObfuscationResult"; + +import { ObfuscationResult } from "../../src/ObfuscationResult"; + +const assert: Chai.AssertStatic = require('chai').assert; + +describe('ObfuscationResult', () => { + describe('constructor (obfuscatedCode: string, sourceMap: string)', () => { + let obfuscatedCode: string = 'obfuscatedCode', + obfuscationResult: IObfuscationResult, + sourceMap: string = 'sourceMap'; + + beforeEach(() => { + obfuscationResult = new ObfuscationResult(obfuscatedCode, sourceMap); + }); + + it('should returns obfuscated code if `.toString()` was called on `ObfuscationResult` object', () => { + assert.equal(obfuscationResult.toString(), obfuscatedCode); + }); + }); +});