mirror of
https://github.com/moparisthebest/mail
synced 2024-11-15 21:55:04 -05:00
81 lines
2.9 KiB
JavaScript
81 lines
2.9 KiB
JavaScript
|
define(function(require) {
|
||
|
'use strict';
|
||
|
|
||
|
var expect = chai.expect,
|
||
|
angular = require('angular'),
|
||
|
mocks = require('angularMocks'),
|
||
|
SetPassphraseCtrl = require('js/controller/set-passphrase'),
|
||
|
PGP = require('js/crypto/pgp'),
|
||
|
appController = require('js/app-controller'),
|
||
|
KeychainDAO = require('js/dao/keychain-dao');
|
||
|
|
||
|
describe('Set Passphrase Controller unit test', function() {
|
||
|
var scope, setPassphraseCtrl,
|
||
|
dummyFingerprint, expectedFingerprint,
|
||
|
dummyKeyId, expectedKeyId,
|
||
|
emailAddress, keySize, cryptoMock, keychainMock;
|
||
|
|
||
|
beforeEach(function() {
|
||
|
appController._crypto = cryptoMock = sinon.createStubInstance(PGP);
|
||
|
appController._keychain = keychainMock = sinon.createStubInstance(KeychainDAO);
|
||
|
|
||
|
dummyFingerprint = '3A2D39B4E1404190B8B949DE7D7E99036E712926';
|
||
|
expectedFingerprint = '3A2D 39B4 E140 4190 B8B9 49DE 7D7E 9903 6E71 2926';
|
||
|
dummyKeyId = '9FEB47936E712926';
|
||
|
expectedKeyId = '6E712926';
|
||
|
cryptoMock.getFingerprint.returns(dummyFingerprint);
|
||
|
cryptoMock.getKeyId.returns(dummyKeyId);
|
||
|
emailAddress = 'fred@foo.com';
|
||
|
keySize = 1234;
|
||
|
|
||
|
cryptoMock.getKeyParams.returns({
|
||
|
_id: dummyKeyId,
|
||
|
fingerprint: dummyFingerprint,
|
||
|
userId: emailAddress,
|
||
|
bitSize: keySize
|
||
|
});
|
||
|
|
||
|
angular.module('setpassphrasetest', []);
|
||
|
mocks.module('setpassphrasetest');
|
||
|
mocks.inject(function($rootScope, $controller) {
|
||
|
scope = $rootScope.$new();
|
||
|
scope.state = {};
|
||
|
setPassphraseCtrl = $controller(SetPassphraseCtrl, {
|
||
|
$scope: scope
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|
||
|
afterEach(function() {});
|
||
|
|
||
|
describe('setPassphrase', function() {
|
||
|
it('should work', function(done) {
|
||
|
scope.oldPassphrase = 'old';
|
||
|
scope.newPassphrase = 'new';
|
||
|
|
||
|
keychainMock.lookupPrivateKey.withArgs(dummyKeyId).yields(null, {
|
||
|
encryptedKey: 'encrypted'
|
||
|
});
|
||
|
|
||
|
cryptoMock.changePassphrase.withArgs({
|
||
|
privateKeyArmored: 'encrypted',
|
||
|
oldPassphrase: 'old',
|
||
|
newPassphrase: 'new'
|
||
|
}).yields(null, 'newArmoredKey');
|
||
|
|
||
|
keychainMock.saveLocalPrivateKey.withArgs({
|
||
|
_id: dummyKeyId,
|
||
|
userId: emailAddress,
|
||
|
encryptedKey: 'newArmoredKey'
|
||
|
}).yields();
|
||
|
|
||
|
scope.onError = function(err) {
|
||
|
expect(err.title).to.equal('Success');
|
||
|
done();
|
||
|
};
|
||
|
|
||
|
scope.setPassphrase();
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|