mirror of
https://github.com/moparisthebest/mail
synced 2024-11-22 17:02:17 -05:00
unit test for encrypted sending works again
This commit is contained in:
parent
c41bc334b2
commit
8dbc5d87e4
@ -105,7 +105,8 @@ define(function(require) {
|
|||||||
* Send an email client side via STMP.
|
* Send an email client side via STMP.
|
||||||
*/
|
*/
|
||||||
EmailDAO.prototype.smtpSend = function(email, callback) {
|
EmailDAO.prototype.smtpSend = function(email, callback) {
|
||||||
var self = this;
|
var self = this,
|
||||||
|
invalidRecipient;
|
||||||
|
|
||||||
// validate the email input
|
// validate the email input
|
||||||
if (!email.to || !email.from || !email.to[0].address || !email.from[0].address) {
|
if (!email.to || !email.from || !email.to[0].address || !email.from[0].address) {
|
||||||
@ -116,7 +117,6 @@ define(function(require) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// validate email addresses
|
// validate email addresses
|
||||||
var invalidRecipient;
|
|
||||||
_.each(email.to, function(i) {
|
_.each(email.to, function(i) {
|
||||||
if (!validateEmail(i.address)) {
|
if (!validateEmail(i.address)) {
|
||||||
invalidRecipient = i.address;
|
invalidRecipient = i.address;
|
||||||
@ -139,10 +139,8 @@ define(function(require) {
|
|||||||
email.id = util.UUID();
|
email.id = util.UUID();
|
||||||
|
|
||||||
// only support single recipient for e-2-e encryption
|
// only support single recipient for e-2-e encryption
|
||||||
var recipient = email.to[0].address;
|
|
||||||
|
|
||||||
// check if receiver has a public key
|
// check if receiver has a public key
|
||||||
self._keychain.getReveiverPublicKey(recipient, function(err, receiverPubkey) {
|
self._keychain.getReveiverPublicKey(email.to[0].address, function(err, receiverPubkey) {
|
||||||
if (err) {
|
if (err) {
|
||||||
callback(err);
|
callback(err);
|
||||||
return;
|
return;
|
||||||
@ -169,10 +167,10 @@ define(function(require) {
|
|||||||
from = email.from[0].name || email.from[0].address;
|
from = email.from[0].name || email.from[0].address;
|
||||||
|
|
||||||
var NEW_SUBJECT = '[whiteout] Encrypted message';
|
var NEW_SUBJECT = '[whiteout] Encrypted message';
|
||||||
var MESSAGE = 'Hi ' + to + ',\n\nthis is a private conversation just between the two of us. To read the encrypted message below, simply install Whiteout Mail for Chrome and encrypt your emails instantly: https://chrome.google.com/webstore/detail/whiteout-mail/jjgghafhamholjigjoghcfcekhkonijg\n\n\n';
|
var MESSAGE = 'Hi ' + to + ',\n\nthis is a private conversation just between the two of us. To read the encrypted message below, simply install Whiteout Mail for Chrome and encrypt your emails without any hassle: https://chrome.google.com/webstore/detail/whiteout-mail/jjgghafhamholjigjoghcfcekhkonijg\n\n\n';
|
||||||
var PREFIX = '-----BEGIN ENCRYPTED MESSAGE-----\n';
|
var PREFIX = '-----BEGIN ENCRYPTED MESSAGE-----\n';
|
||||||
var SUFFIX = '\n-----END ENCRYPTED MESSAGE-----';
|
var SUFFIX = '\n-----END ENCRYPTED MESSAGE-----';
|
||||||
var SIGNATURE = '\n\n\nSent with whiteout mail, for easy end-to-end encrypted messaging\nhttp://whiteout.io\n\n';
|
var SIGNATURE = '\n\n\nSent from whiteout mail, for easy end-to-end encrypted messaging\nhttp://whiteout.io\n\n';
|
||||||
|
|
||||||
// encrypt the email
|
// encrypt the email
|
||||||
crypto.encryptListForUser(ptItems, receiverPubkeys, function(err, encryptedList) {
|
crypto.encryptListForUser(ptItems, receiverPubkeys, function(err, encryptedList) {
|
||||||
|
@ -109,17 +109,46 @@ define(function(require) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('SMTP: send email', function() {
|
describe('SMTP: send email', function() {
|
||||||
it('should fail due to back input', function(done) {
|
it('should fail due to bad input', function(done) {
|
||||||
emailDao.smtpSend({}, function(err) {
|
emailDao.smtpSend({}, function(err) {
|
||||||
expect(smtpClientStub.send.called).to.be.false;
|
expect(smtpClientStub.send.called).to.be.false;
|
||||||
|
expect(keychainStub.getReveiverPublicKey.called).to.be.false;
|
||||||
|
expect(err).to.exist;
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
it('should fail due to invalid email address input', function(done) {
|
||||||
|
var badMail = {
|
||||||
|
from: [{
|
||||||
|
name: 'Whiteout Test',
|
||||||
|
address: 'whiteout.test@t-online.de'
|
||||||
|
}], // sender address
|
||||||
|
to: [{
|
||||||
|
address: 'asfd'
|
||||||
|
}], // list of receivers
|
||||||
|
subject: "Hello", // Subject line
|
||||||
|
body: "Hello world" // plaintext body
|
||||||
|
};
|
||||||
|
emailDao.smtpSend(badMail, function(err) {
|
||||||
|
expect(smtpClientStub.send.called).to.be.false;
|
||||||
|
expect(keychainStub.getReveiverPublicKey.called).to.be.false;
|
||||||
expect(err).to.exist;
|
expect(err).to.exist;
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should work', function(done) {
|
it('should work', function(done) {
|
||||||
|
var publicKey = "-----BEGIN PUBLIC KEY-----\r\n" + "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxy+Te5dyeWd7g0P+8LNO7fZDQ\r\n" + "g96xTb1J6pYE/pPTMlqhB6BRItIYjZ1US5q2vk5Zk/5KasBHAc9RbCqvh9v4XFEY\r\n" + "JVmTXC4p8ft1LYuNWIaDk+R3dyYXmRNct/JC4tks2+8fD3aOvpt0WNn3R75/FGBt\r\n" + "h4BgojAXDE+PRQtcVQIDAQAB\r\n" + "-----END PUBLIC KEY-----";
|
||||||
|
|
||||||
|
keychainStub.getReveiverPublicKey.yields(null, {
|
||||||
|
_id: "fcf8b4aa-5d09-4089-8b4f-e3bc5091daf3",
|
||||||
|
userId: "safewithme.testuser@gmail.com",
|
||||||
|
publicKey: publicKey
|
||||||
|
});
|
||||||
smtpClientStub.send.yields();
|
smtpClientStub.send.yields();
|
||||||
|
|
||||||
emailDao.smtpSend(dummyMail, function(err) {
|
emailDao.smtpSend(dummyMail, function(err) {
|
||||||
|
expect(keychainStub.getReveiverPublicKey.calledOnce).to.be.true;
|
||||||
expect(smtpClientStub.send.calledOnce).to.be.true;
|
expect(smtpClientStub.send.calledOnce).to.be.true;
|
||||||
expect(err).to.not.exist;
|
expect(err).to.not.exist;
|
||||||
done();
|
done();
|
||||||
|
Loading…
Reference in New Issue
Block a user