From c1aa59f6eddac0a37f0084e37ab1281e109d1c80 Mon Sep 17 00:00:00 2001 From: Csaba Solya Date: Fri, 23 Feb 2018 10:08:23 +0100 Subject: adding tests --- test/unit/edge-encryptor-test.js | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/unit/edge-encryptor-test.js (limited to 'test/unit') diff --git a/test/unit/edge-encryptor-test.js b/test/unit/edge-encryptor-test.js new file mode 100644 index 000000000..627386051 --- /dev/null +++ b/test/unit/edge-encryptor-test.js @@ -0,0 +1,66 @@ +const assert = require('assert') + +const EdgeEncryptor = require('../../app/scripts/edge-encryptor') + +var password = 'passw0rd1' +var data = 'some random data' + +// polyfill fetch +global.crypto = global.crypto || { + getRandomValues (array) { + for (let i = 0; i < array.length; i++) { + array[i] = Math.random() * 100; + } + } +} + +describe('EdgeEncryptor', function () { + const edgeEncryptor = new EdgeEncryptor() + + describe('encrypt', function () { + + it('should encrypt the data.', function () { + edgeEncryptor.encrypt(password, data) + .then(function (encryptedData) { + assert.notEqual(data, encryptedData) + assert.notEqual(encryptedData.length, 0) + done() + }).catch(function (err) { + done(err) + }) + }) + + it('should not return the same twice.', function () { + + const encryptPromises = [] + encryptPromises.push(edgeEncryptor.encrypt(password, data)) + encryptPromises.push(edgeEncryptor.encrypt(password, data)) + + Promise.all(encryptPromises).then((encryptedData) => { + assert.equal(encryptedData.length, 2) + assert.notEqual(encryptedData[0], encryptedData[1]) + assert.notEqual(encryptedData[0].length, 0) + assert.notEqual(encryptedData[1].length, 0) + }) + }) + }) + + describe('decrypt', function () { + it('should be able to decrypt the encrypted data.', function () { + + edgeEncryptor.encrypt(password, data) + .then(function (encryptedData) { + edgeEncryptor.decrypt(password, encryptedData) + .then(function (decryptedData) { + assert.equal(decryptedData, data) + }) + .catch(function (err) { + done(err) + }) + }) + .catch(function (err) { + done(err) + }) + }) + }) +}) -- cgit v1.2.3 From cd05d77c3fd9fe8e49d38b43728ff90b72b1ca9d Mon Sep 17 00:00:00 2001 From: Csaba Solya Date: Fri, 23 Feb 2018 10:49:56 +0100 Subject: fix tests --- test/unit/edge-encryptor-test.js | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'test/unit') diff --git a/test/unit/edge-encryptor-test.js b/test/unit/edge-encryptor-test.js index 627386051..ef733a494 100644 --- a/test/unit/edge-encryptor-test.js +++ b/test/unit/edge-encryptor-test.js @@ -5,21 +5,21 @@ const EdgeEncryptor = require('../../app/scripts/edge-encryptor') var password = 'passw0rd1' var data = 'some random data' -// polyfill fetch global.crypto = global.crypto || { - getRandomValues (array) { + getRandomValues: function (array) { for (let i = 0; i < array.length; i++) { - array[i] = Math.random() * 100; + array[i] = Math.random() * 100 } + return array } } describe('EdgeEncryptor', function () { - const edgeEncryptor = new EdgeEncryptor() + const edgeEncryptor = new EdgeEncryptor() describe('encrypt', function () { - it('should encrypt the data.', function () { + it('should encrypt the data.', function (done) { edgeEncryptor.encrypt(password, data) .then(function (encryptedData) { assert.notEqual(data, encryptedData) @@ -30,6 +30,19 @@ describe('EdgeEncryptor', function () { }) }) + it('should return proper format.', function (done) { + edgeEncryptor.encrypt(password, data) + .then(function (encryptedData) { + let encryptedObject = JSON.parse(encryptedData) + assert.ok(encryptedObject.data, 'there is no data') + assert.ok(encryptedObject.iv && encryptedObject.iv.length != 0, 'there is no iv') + assert.ok(encryptedObject.salt && encryptedObject.salt.length != 0, 'there is no salt') + done() + }).catch(function (err) { + done(err) + }) + }) + it('should not return the same twice.', function () { const encryptPromises = [] @@ -46,13 +59,14 @@ describe('EdgeEncryptor', function () { }) describe('decrypt', function () { - it('should be able to decrypt the encrypted data.', function () { + it('should be able to decrypt the encrypted data.', function (done) { edgeEncryptor.encrypt(password, data) .then(function (encryptedData) { edgeEncryptor.decrypt(password, encryptedData) .then(function (decryptedData) { assert.equal(decryptedData, data) + done() }) .catch(function (err) { done(err) -- cgit v1.2.3 From 8292dabed56b858fa2ccec7497627f5e5aa65181 Mon Sep 17 00:00:00 2001 From: Csaba Solya Date: Fri, 23 Feb 2018 11:03:53 +0100 Subject: add negative decrypt test --- test/unit/edge-encryptor-test.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'test/unit') diff --git a/test/unit/edge-encryptor-test.js b/test/unit/edge-encryptor-test.js index ef733a494..1dad4b91e 100644 --- a/test/unit/edge-encryptor-test.js +++ b/test/unit/edge-encryptor-test.js @@ -76,5 +76,25 @@ describe('EdgeEncryptor', function () { done(err) }) }) + + it('cannot decrypt the encrypted data with wrong password.', function (done) { + + edgeEncryptor.encrypt(password, data) + .then(function (encryptedData) { + edgeEncryptor.decrypt('wrong password', encryptedData) + .then(function (decryptedData) { + assert.fail('could decrypt with wrong password') + done() + }) + .catch(function (err) { + assert.ok(err instanceof Error) + assert.equal(err.message, 'Incorrect password') + done() + }) + }) + .catch(function (err) { + done(err) + }) + }) }) }) -- cgit v1.2.3 From 1b367bc2150434f5d2324d4344dfbbeff0eb4967 Mon Sep 17 00:00:00 2001 From: Csaba Solya Date: Fri, 23 Feb 2018 11:11:14 +0100 Subject: fix test --- test/unit/edge-encryptor-test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test/unit') diff --git a/test/unit/edge-encryptor-test.js b/test/unit/edge-encryptor-test.js index 1dad4b91e..d3f014d74 100644 --- a/test/unit/edge-encryptor-test.js +++ b/test/unit/edge-encryptor-test.js @@ -43,7 +43,7 @@ describe('EdgeEncryptor', function () { }) }) - it('should not return the same twice.', function () { + it('should not return the same twice.', function (done) { const encryptPromises = [] encryptPromises.push(edgeEncryptor.encrypt(password, data)) @@ -54,6 +54,7 @@ describe('EdgeEncryptor', function () { assert.notEqual(encryptedData[0], encryptedData[1]) assert.notEqual(encryptedData[0].length, 0) assert.notEqual(encryptedData[1].length, 0) + done() }) }) }) -- cgit v1.2.3