js: add tests
-- * BrowserTestExtension/tests: - decryptTest.js: Check Decryption and return values of binary data - encryptTest.js: Return data type of armored/non-armored encryption - added a small encoded input png for testing * DemoExtension/maindemo.js: Fixed unexpected usage of the Demo encrypt (non-armored)
This commit is contained in:
parent
44691995b7
commit
3201ded91f
@ -22,7 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* global describe, it, before, expect, Gpgmejs */
|
/* global describe, it, before, expect, Gpgmejs */
|
||||||
/* global bigString, inputvalues, sabotageMsg*/
|
/* global bigString, inputvalues, sabotageMsg, binaryData */
|
||||||
|
|
||||||
describe('Decryption', function () {
|
describe('Decryption', function () {
|
||||||
let context = null;
|
let context = null;
|
||||||
@ -76,4 +76,26 @@ describe('Decryption', function () {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('decrypt of a png, result as base64', function (done){
|
||||||
|
const data = binaryData.encryptedArmored;
|
||||||
|
context.decrypt({ data: data, expect: 'base64' })
|
||||||
|
.then(function (result){
|
||||||
|
expect(result.data).to.be.a('String');
|
||||||
|
expect(result.data).to.equal(binaryData.base64);
|
||||||
|
expect(result.format).to.equal('base64');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('decrypt of a png, result as Uint8Array', function (done){
|
||||||
|
const data = binaryData.encryptedArmored;
|
||||||
|
context.decrypt({ data: data, expect: 'uint8' })
|
||||||
|
.then(function (result){
|
||||||
|
expect(result.data).to.be.an('Uint8Array');
|
||||||
|
expect(result.format).to.equal('uint8');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
@ -22,7 +22,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* global describe, it, expect, before, Gpgmejs */
|
/* global describe, it, expect, before, Gpgmejs */
|
||||||
/* global inputvalues, fixedLengthString */
|
/* global inputvalues, fixedLengthString, bigString */
|
||||||
|
|
||||||
describe('Encryption', function () {
|
describe('Encryption', function () {
|
||||||
let context = null;
|
let context = null;
|
||||||
@ -47,6 +47,47 @@ describe('Encryption', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
it( 'encrypt with \'armor\': true should returned an armored block',
|
||||||
|
function (done){
|
||||||
|
const data = bigString(1000);
|
||||||
|
context.encrypt({ data: data, publicKeys: good_fpr, armor: true })
|
||||||
|
.then(function (answer){
|
||||||
|
expect(answer).to.not.be.empty;
|
||||||
|
expect(answer.data).to.be.a('string');
|
||||||
|
expect(answer.data).to.include('BEGIN PGP MESSAGE');
|
||||||
|
expect(answer.data).to.include('END PGP MESSAGE');
|
||||||
|
expect(answer.format).to.equal('ascii');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it( 'encrypt with \'armor\': false and \'expected\': \'uint8\' returns ' +
|
||||||
|
'an Uint8Array', function (done) {
|
||||||
|
const data = bigString(1000);
|
||||||
|
context.encrypt({
|
||||||
|
data: data, publicKeys: good_fpr, armor: false, expect: 'uint8'
|
||||||
|
}).then(function (answer){
|
||||||
|
expect(answer).to.not.be.empty;
|
||||||
|
expect(answer.data).to.be.a('Uint8Array');
|
||||||
|
expect(answer.format).to.equal('uint8');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it( 'encrypt with \'armor\': false and \'expected\': \'base64\' returns ' +
|
||||||
|
'a base64 string', function (done) {
|
||||||
|
const data = bigString(1000);
|
||||||
|
context.encrypt({
|
||||||
|
data: data, publicKeys: good_fpr, armor: false, expect: 'base64'
|
||||||
|
}).then(function (answer){
|
||||||
|
expect(answer).to.not.be.empty;
|
||||||
|
expect(answer.data).to.be.a('string');
|
||||||
|
expect(answer.format).to.equal('base64');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
const sizes = [5,20,50];
|
const sizes = [5,20,50];
|
||||||
for (let i=0; i < sizes.length; i++) {
|
for (let i=0; i < sizes.length; i++) {
|
||||||
it('Successful encrypt a ' + sizes[i] + 'MB message', function (done) {
|
it('Successful encrypt a ' + sizes[i] + 'MB message', function (done) {
|
||||||
@ -114,5 +155,5 @@ describe('Encryption', function () {
|
|||||||
});
|
});
|
||||||
}).timeout(8000);
|
}).timeout(8000);
|
||||||
|
|
||||||
// TODO check different valid parameter
|
|
||||||
});
|
});
|
||||||
|
@ -336,3 +336,73 @@ function sabotageMsg (msg, rate = 0.01, p= [35,35]){
|
|||||||
}
|
}
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// a simple png
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
const binaryData = {
|
||||||
|
base64:
|
||||||
|
'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' +
|
||||||
|
'kzr8e4QAAAABJRU5ErkJggg==',
|
||||||
|
encryptedArmored: '-----BEGIN PGP MESSAGE-----\n' +
|
||||||
|
'\n' +
|
||||||
|
'hQEMA6B8jfIUScGEAQgA3m9gtJswzXITlX3yJslszQSBBtHb3jTquF6ZoB5NPxMC\n' +
|
||||||
|
'5sX1WkjemyjYOy/pscLb8JRedj+owfaHYAGed1h+SM8iVHrHSVImbq+okzKbkYTB\n' +
|
||||||
|
'lYoBK63y2WHjMdMEjHHWl5CPfyzmAutwix0sWGcDLwNdO31eUdKHtjPi69k+IEw2\n' +
|
||||||
|
'hJ0+hdulttJk5jvNtW0mmuWjzKPgekZX7AFZnO+cJEgdDXEZ9oOD3/HxM8Rw/Kba\n' +
|
||||||
|
't7LWW/h3WxTzUKWrCO7SvcX27MGt94I1ff/2IAPb3/ZiskGrEwN6TYv8x0OaC6Xy\n' +
|
||||||
|
'TFxVCSGbXo+dSBFUfMMnPCiY6W8DOrchwDK2sBoGO9LqAUkpzm0tYSYt5v8/vXvO\n' +
|
||||||
|
'uXG+u8lG9I/TqnVDdZXXedBdDVFxv03K35FQU48K+AuBJLakdMfCfK3AvYRBgffu\n' +
|
||||||
|
'NbdnQUTs8AUM3qNgN95JRM/edhir0Tfz981R8dTYbxRwuosR//yNxCXA1UUg0UeD\n' +
|
||||||
|
'feC+AB6lRNt/P2qpt4pio4fflcnTqL5lFpAcktdvX6scKxe/GFR+ylafZMykm2A/\n' +
|
||||||
|
'+UMfTTjZKm6MqsTnk2fOaHM4AIZBebx7j4cYqV+vyaxla4drZ+7w4P4XveCIS8eD\n' +
|
||||||
|
'VkIGRhJuRtXMFTWrV4z8BIDhUw68/h0rClC5mucdEJMUPaEK65mECxMTEggomz5/\n' +
|
||||||
|
'BaSVDmNUoLHwqPV1fCUG+FtDhNHtqLDszlhEGNDa2NU4paGRaxJzS3IZExlhbxFX\n' +
|
||||||
|
'pNOWS1W/gEblkzslWbOq3Gg95/MjJL8tEhlAuGnlFQqa2ZZ9/QgAujSaSnY5bQFe\n' +
|
||||||
|
'+riqxkex8YA+2v5yfhwVBF1W4TxvkP/9tL4xw/tepibwZrAEJLih+Cus6X+OC/Qw\n' +
|
||||||
|
'qUe2ROmHwoM83iJdsrnoGaenVCBWBzSsTjVauRWD7lPT1Hgwavgz9J35mKjfyayx\n' +
|
||||||
|
'XJxbFnHgvsRPOE5usYEsWQYrPQoDin9lpaXq5d+D3QFi/weQSVvKcC6a7jjNxeYS\n' +
|
||||||
|
'KCc9lac+qBCLXg8F9Ff2Szkr7XuamMvHbd2FAQFiTQ5zFcrvOL8V8VuhyUERFhJE\n' +
|
||||||
|
'4xCFq/vwhC3v7+aRWhpBfRvb5IE45fHTCZsvXt8U4YdzaL/OiDzv+/S0xHda6cJx\n' +
|
||||||
|
'3ZWn7A5KQBUDvbqd1FNtjMj7yf6SIcM0OMLRulJ1Qkd7OH+9JluTu0FLw0P7AupF\n' +
|
||||||
|
'BW2O4UUZY4K56W/wK/Je29RSd4/EmnFRBBYj6VvqY2izxCWEiwvKz0BA/+zabUol\n' +
|
||||||
|
'eBnHXP3ATKFthBRGoN9kkCkSpoz4t+QTlUazGqJrTX57vjA+Gxdjc9Vhn4Q/Ra2f\n' +
|
||||||
|
'c4a01h8fRP+IDVLFzh+AfcQ0Q6Fr/3+D9KUj/poS2O3G4ACfIRm8L2zaVGnfEmiT\n' +
|
||||||
|
'7T/8ZJBQrHkncXHCbbocB1g0PSFoDrXLafNKaCS2EItk+FBUF3EQKfc/FxUwFXG6\n' +
|
||||||
|
'WhPptorUXx+TCcVuoR0ifKEnLEBnhhlwFM09gHRLxPDenSj0WIv/Nm+HP1Nd2410\n' +
|
||||||
|
'KvcEVLo/HyJDg7GEIi6Q+EZPasCvI7vxKLBBavrvBAZwRjA2tYVYYadUnlpuMdB3\n' +
|
||||||
|
'97iY+tPZ31OjBLl7Ho3BlA7W3yd8ptuqAcvhgBpBGBDc4rW02Ohb9DcTpzZioQIl\n' +
|
||||||
|
'Ih6p2vgIOZKz2cnJ+0sXf8xiRyPfkJE71eRkpQC9bdnddENEROXzAx80wP7kkajE\n' +
|
||||||
|
'W8CD9LLMZC65+X4sg+0g+RDnCqgYk2XoKnBaJC1qdaMQ3OrdGoPQsjk1Bq+qyk9Q\n' +
|
||||||
|
'7CqjzK897IdV5g+OBRbHi78gvF04Ruqgnq9lPz0OfjAxlDBoGYfAUsbRJKIXbGPq\n' +
|
||||||
|
'e57SbUkrsQXYLlbsj0vFb5z/MTveFAarbJ1/TPUYuvf9Z9w7S3qz/H8fc72fDuYM\n' +
|
||||||
|
'oI36H4NIou/7Jh+92CA27i+eamIZ8p5Ql28rEHpNB1qfIFoO0x1u7/1P2Mq7CbfF\n' +
|
||||||
|
'H0bg2KrSb5VkDnfHAnAF/hkt4K1yD0RcSD1abkC07cEzRmIQ95mtuX08sia3Yn0C\n' +
|
||||||
|
'dwc4gOeR+oiHxAsyV3wvrm8/w4AAqSbBqtxafAJ44dXJsyoRSRt1vkPta1IUUFZ6\n' +
|
||||||
|
'I+jv5nMv16jaJq6IpsI5ujxl/tKbniWC0Jjw5LqoT3beWaZ91iU=\n' +
|
||||||
|
'=AkaP\n' +
|
||||||
|
'-----END PGP MESSAGE-----\n'
|
||||||
|
};
|
@ -29,8 +29,8 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
function (){
|
function (){
|
||||||
let data = document.getElementById('inputtext').value;
|
let data = document.getElementById('inputtext').value;
|
||||||
let keyId = document.getElementById('pubkey').value;
|
let keyId = document.getElementById('pubkey').value;
|
||||||
gpgmejs.encrypt({ data: data, publicKeys: keyId, armor:false }).then(
|
gpgmejs.encrypt({ data: data, publicKeys: keyId, armor: true })
|
||||||
function (answer){
|
.then(function (answer){
|
||||||
if (answer.data){
|
if (answer.data){
|
||||||
document.getElementById(
|
document.getElementById(
|
||||||
'answer').value = answer.data;
|
'answer').value = answer.data;
|
||||||
|
Loading…
Reference in New Issue
Block a user