|
|
|
@ -294,7 +294,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
it('should open an imap mailbox', function(done) {
|
|
|
|
|
imapClientStub.selectMailbox.withArgs({
|
|
|
|
|
path: inboxFolder.path
|
|
|
|
|
}).yieldsAsync();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao.openFolder({
|
|
|
|
|
folder: inboxFolder
|
|
|
|
@ -534,7 +534,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
content: '' + cfg.cloudUrl + cfg.verificationUrl + validUuid
|
|
|
|
|
}]));
|
|
|
|
|
|
|
|
|
|
keychainStub.verifyPublicKey.withArgs(validUuid).yieldsAsync({});
|
|
|
|
|
keychainStub.verifyPublicKey.withArgs(validUuid).returns(rejects({}));
|
|
|
|
|
|
|
|
|
|
localStoreStub.withArgs({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
@ -1641,7 +1641,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
imapClientStub.uploadMessage.withArgs({
|
|
|
|
|
path: sentFolder.path,
|
|
|
|
|
message: msg
|
|
|
|
|
}).yields();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
authStub.getCredentials.returns(resolves(credentials));
|
|
|
|
|
pgpMailerStub.send.withArgs({
|
|
|
|
@ -1649,7 +1649,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
mail: dummyMail,
|
|
|
|
|
smtpclient: undefined,
|
|
|
|
|
publicKeysArmored: publicKeys
|
|
|
|
|
}).yieldsAsync(null, msg);
|
|
|
|
|
}).returns(resolves(msg));
|
|
|
|
|
|
|
|
|
|
dao.sendEncrypted({
|
|
|
|
|
email: dummyMail
|
|
|
|
@ -1672,7 +1672,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
mail: dummyMail,
|
|
|
|
|
smtpclient: undefined,
|
|
|
|
|
publicKeysArmored: publicKeys
|
|
|
|
|
}).yieldsAsync(null, msg);
|
|
|
|
|
}).returns(resolves(msg));
|
|
|
|
|
|
|
|
|
|
dao.sendEncrypted({
|
|
|
|
|
email: dummyMail
|
|
|
|
@ -1687,8 +1687,8 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should send encrypted and ignore error on upload', function(done) {
|
|
|
|
|
imapClientStub.uploadMessage.yields(new Error());
|
|
|
|
|
pgpMailerStub.send.yieldsAsync(null, msg);
|
|
|
|
|
imapClientStub.uploadMessage.returns(rejects(new Error()));
|
|
|
|
|
pgpMailerStub.send.returns(resolves(msg));
|
|
|
|
|
authStub.getCredentials.returns(resolves(credentials));
|
|
|
|
|
|
|
|
|
|
dao.sendEncrypted({
|
|
|
|
@ -1703,7 +1703,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should not send when pgpmailer fails', function(done) {
|
|
|
|
|
pgpMailerStub.send.yieldsAsync({});
|
|
|
|
|
pgpMailerStub.send.returns(rejects({}));
|
|
|
|
|
authStub.getCredentials.returns(resolves(credentials));
|
|
|
|
|
|
|
|
|
|
dao.sendEncrypted({
|
|
|
|
@ -1754,13 +1754,13 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
pgpMailerStub.send.withArgs({
|
|
|
|
|
smtpclient: undefined,
|
|
|
|
|
mail: dummyMail
|
|
|
|
|
}).yieldsAsync(null, msg);
|
|
|
|
|
}).returns(resolves(msg));
|
|
|
|
|
authStub.getCredentials.returns(resolves(credentials));
|
|
|
|
|
|
|
|
|
|
imapClientStub.uploadMessage.withArgs({
|
|
|
|
|
path: sentFolder.path,
|
|
|
|
|
message: msg
|
|
|
|
|
}).yields();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao.sendPlaintext({
|
|
|
|
|
email: dummyMail
|
|
|
|
@ -1779,7 +1779,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
pgpMailerStub.send.withArgs({
|
|
|
|
|
smtpclient: undefined,
|
|
|
|
|
mail: dummyMail
|
|
|
|
|
}).yieldsAsync(null, msg);
|
|
|
|
|
}).returns(resolves(msg));
|
|
|
|
|
authStub.getCredentials.returns(resolves(credentials));
|
|
|
|
|
|
|
|
|
|
dao.sendPlaintext({
|
|
|
|
@ -1793,8 +1793,8 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should send and ignore error on upload', function(done) {
|
|
|
|
|
imapClientStub.uploadMessage.yields(new Error());
|
|
|
|
|
pgpMailerStub.send.yieldsAsync(null, msg);
|
|
|
|
|
imapClientStub.uploadMessage.returns(rejects(new Error()));
|
|
|
|
|
pgpMailerStub.send.returns(resolves(msg));
|
|
|
|
|
authStub.getCredentials.returns(resolves(credentials));
|
|
|
|
|
|
|
|
|
|
dao.sendPlaintext({
|
|
|
|
@ -1809,7 +1809,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should not send due to error', function(done) {
|
|
|
|
|
pgpMailerStub.send.yieldsAsync({});
|
|
|
|
|
pgpMailerStub.send.returns(rejects({}));
|
|
|
|
|
authStub.getCredentials.returns(resolves(credentials));
|
|
|
|
|
|
|
|
|
|
dao.sendPlaintext({
|
|
|
|
@ -1840,7 +1840,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
|
|
|
|
|
describe('#encrypt', function() {
|
|
|
|
|
it('should encrypt', function(done) {
|
|
|
|
|
pgpBuilderStub.encrypt.yieldsAsync();
|
|
|
|
|
pgpBuilderStub.encrypt.returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao.encrypt({}).then(function() {
|
|
|
|
|
expect(pgpBuilderStub.encrypt.calledOnce).to.be.true;
|
|
|
|
@ -1869,9 +1869,9 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
modseq: '123'
|
|
|
|
|
}];
|
|
|
|
|
authStub.getCredentials.returns(resolves(credentials));
|
|
|
|
|
imapClientStub.login.yieldsAsync();
|
|
|
|
|
imapClientStub.selectMailbox.yields();
|
|
|
|
|
imapClientStub.listenForChanges.yields();
|
|
|
|
|
imapClientStub.login.returns(resolves());
|
|
|
|
|
imapClientStub.selectMailbox.returns(resolves());
|
|
|
|
|
imapClientStub.listenForChanges.returns(resolves());
|
|
|
|
|
initFoldersStub.returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao.onConnect(imapClientStub).then(function() {
|
|
|
|
@ -1894,8 +1894,8 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
|
|
|
|
|
describe('#onDisconnect', function() {
|
|
|
|
|
it('should discard imapClient and pgpMailer', function(done) {
|
|
|
|
|
imapClientStub.stopListeningForChanges.yields();
|
|
|
|
|
imapClientStub.logout.yields();
|
|
|
|
|
imapClientStub.stopListeningForChanges.returns(resolves());
|
|
|
|
|
imapClientStub.logout.returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao.onDisconnect().then(function() {
|
|
|
|
|
expect(imapClientStub.stopListeningForChanges.calledOnce).to.be.true;
|
|
|
|
@ -1923,12 +1923,12 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
setFlagsStub = sinon.stub(dao, 'setFlags');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should get new message', function() {
|
|
|
|
|
it('should get new message', function(done) {
|
|
|
|
|
fetchMessagesStub.withArgs({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
|
firstUid: 1,
|
|
|
|
|
lastUid: 3
|
|
|
|
|
}).yields();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._onSyncUpdate({
|
|
|
|
|
type: 'new',
|
|
|
|
@ -1936,16 +1936,19 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
list: [1, 3]
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
expect(dialogStub.error.calledOnce).to.be.true;
|
|
|
|
|
expect(fetchMessagesStub.calledOnce).to.be.true;
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
expect(dialogStub.error.calledOnce).to.be.true;
|
|
|
|
|
expect(fetchMessagesStub.calledOnce).to.be.true;
|
|
|
|
|
done();
|
|
|
|
|
}, 0);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should delete message', function() {
|
|
|
|
|
it('should delete message', function(done) {
|
|
|
|
|
deleteMessagesStub.withArgs({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
|
message: msgs[0],
|
|
|
|
|
localOnly: true
|
|
|
|
|
}).yields();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._onSyncUpdate({
|
|
|
|
|
type: 'deleted',
|
|
|
|
@ -1953,16 +1956,19 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
list: [5]
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
expect(dialogStub.error.calledOnce).to.be.true;
|
|
|
|
|
expect(deleteMessagesStub.calledOnce).to.be.true;
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
expect(dialogStub.error.calledOnce).to.be.true;
|
|
|
|
|
expect(deleteMessagesStub.calledOnce).to.be.true;
|
|
|
|
|
done();
|
|
|
|
|
}, 0);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should fetch flags', function() {
|
|
|
|
|
it('should fetch flags', function(done) {
|
|
|
|
|
setFlagsStub.withArgs({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
|
message: msgs[0],
|
|
|
|
|
localOnly: true
|
|
|
|
|
}).yields();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._onSyncUpdate({
|
|
|
|
|
type: 'messages',
|
|
|
|
@ -1970,8 +1976,11 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
list: msgs
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
expect(dialogStub.error.calledOnce).to.be.true;
|
|
|
|
|
expect(setFlagsStub.calledOnce).to.be.true;
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
expect(dialogStub.error.calledOnce).to.be.true;
|
|
|
|
|
expect(setFlagsStub.calledOnce).to.be.true;
|
|
|
|
|
done();
|
|
|
|
|
}, 0);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
@ -2102,14 +2111,14 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
|
|
|
|
|
it('should initialize from imap if online', function(done) {
|
|
|
|
|
account.folders = [];
|
|
|
|
|
imapClientStub.listWellKnownFolders.yieldsAsync(null, {
|
|
|
|
|
imapClientStub.listWellKnownFolders.returns(resolves({
|
|
|
|
|
Inbox: [inboxFolder],
|
|
|
|
|
Sent: [sentFolder],
|
|
|
|
|
Drafts: [draftsFolder],
|
|
|
|
|
Trash: [trashFolder],
|
|
|
|
|
Flagged: [flaggedFolder],
|
|
|
|
|
Other: [otherFolder]
|
|
|
|
|
});
|
|
|
|
|
}));
|
|
|
|
|
devicestorageStub.storeList.withArgs(sinon.match(function(arg) {
|
|
|
|
|
expect(arg[0][0].name).to.deep.equal(inboxFolder.name);
|
|
|
|
|
expect(arg[0][0].path).to.deep.equal(inboxFolder.path);
|
|
|
|
@ -2151,14 +2160,14 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
path: 'bar',
|
|
|
|
|
}];
|
|
|
|
|
|
|
|
|
|
imapClientStub.listWellKnownFolders.yieldsAsync(null, {
|
|
|
|
|
imapClientStub.listWellKnownFolders.returns(resolves({
|
|
|
|
|
Inbox: [inboxFolder],
|
|
|
|
|
Sent: [sentFolder],
|
|
|
|
|
Drafts: [draftsFolder],
|
|
|
|
|
Trash: [trashFolder],
|
|
|
|
|
Flagged: [flaggedFolder],
|
|
|
|
|
Other: [otherFolder]
|
|
|
|
|
});
|
|
|
|
|
}));
|
|
|
|
|
devicestorageStub.storeList.withArgs(sinon.match(function(arg) {
|
|
|
|
|
expect(arg[0]).to.deep.equal([{
|
|
|
|
|
name: inboxFolder.name,
|
|
|
|
@ -2218,7 +2227,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
uid: 1,
|
|
|
|
|
unread: false,
|
|
|
|
|
answered: false
|
|
|
|
|
}).yieldsAsync();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._imapMark({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
@ -2238,7 +2247,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
path: inboxFolder.path,
|
|
|
|
|
destination: sentFolder.path,
|
|
|
|
|
uid: 123
|
|
|
|
|
}).yieldsAsync();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._imapMoveMessage({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
@ -2265,7 +2274,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
path: inboxFolder.path,
|
|
|
|
|
uid: uid,
|
|
|
|
|
destination: trashFolder.path
|
|
|
|
|
}).yieldsAsync();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._imapDeleteMessage({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
@ -2277,7 +2286,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
imapClientStub.deleteMessage.withArgs({
|
|
|
|
|
path: trashFolder.path,
|
|
|
|
|
uid: uid
|
|
|
|
|
}).yieldsAsync();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._imapDeleteMessage({
|
|
|
|
|
folder: trashFolder,
|
|
|
|
@ -2296,7 +2305,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
path: inboxFolder.path,
|
|
|
|
|
firstUid: firstUid,
|
|
|
|
|
lastUid: lastUid
|
|
|
|
|
}).yieldsAsync(null, []);
|
|
|
|
|
}).returns(resolves([]));
|
|
|
|
|
|
|
|
|
|
dao._imapListMessages({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
@ -2312,7 +2321,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should fail when listMessages fails', function(done) {
|
|
|
|
|
imapClientStub.listMessages.yieldsAsync({});
|
|
|
|
|
imapClientStub.listMessages.returns(rejects({}));
|
|
|
|
|
|
|
|
|
|
dao._imapListMessages({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
@ -2343,7 +2352,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
imapClientStub.uploadMessage.withArgs({
|
|
|
|
|
path: draftsFolder.path,
|
|
|
|
|
message: msg
|
|
|
|
|
}).yields();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._imapUploadMessage({
|
|
|
|
|
folder: draftsFolder,
|
|
|
|
@ -2363,7 +2372,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
path: inboxFolder.path,
|
|
|
|
|
uid: 123,
|
|
|
|
|
bodyParts: []
|
|
|
|
|
}).yieldsAsync(null, {});
|
|
|
|
|
}).returns(resolves({}));
|
|
|
|
|
parseStub.yieldsAsync(null, []);
|
|
|
|
|
|
|
|
|
|
dao._getBodyParts({
|
|
|
|
@ -2381,7 +2390,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should fail when getBody fails', function(done) {
|
|
|
|
|
imapClientStub.getBodyParts.yieldsAsync({});
|
|
|
|
|
imapClientStub.getBodyParts.returns(rejects({}));
|
|
|
|
|
|
|
|
|
|
dao._getBodyParts({
|
|
|
|
|
folder: inboxFolder,
|
|
|
|
@ -2476,7 +2485,7 @@ describe('Email DAO unit tests', function() {
|
|
|
|
|
imapClientStub.uploadMessage.withArgs({
|
|
|
|
|
path: sentFolder.path,
|
|
|
|
|
message: msg
|
|
|
|
|
}).yields();
|
|
|
|
|
}).returns(resolves());
|
|
|
|
|
|
|
|
|
|
dao._uploadToSent({
|
|
|
|
|
message: msg
|
|
|
|
|