mirror of
https://github.com/moparisthebest/mail
synced 2024-11-10 11:15:01 -05:00
48c478961d
Hide native account picker on Android after first time. Get OAuth to work on iOS Turn off css slide transistion
228 lines
8.8 KiB
JavaScript
228 lines
8.8 KiB
JavaScript
define(function(require) {
|
|
'use strict';
|
|
|
|
var Auth = require('js/bo/auth'),
|
|
OAuth = require('js/util/oauth'),
|
|
RestDAO = require('js/dao/rest-dao'),
|
|
DeviceStorageDAO = require('js/dao/devicestorage-dao'),
|
|
expect = chai.expect;
|
|
|
|
describe('Auth unit tests', function() {
|
|
var auth, appConfigStoreStub, oauthStub, caStub;
|
|
|
|
beforeEach(function() {
|
|
appConfigStoreStub = sinon.createStubInstance(DeviceStorageDAO);
|
|
oauthStub = sinon.createStubInstance(OAuth);
|
|
caStub = sinon.createStubInstance(RestDAO);
|
|
auth = new Auth(appConfigStoreStub, oauthStub, caStub);
|
|
});
|
|
|
|
afterEach(function() {});
|
|
|
|
describe('getCredentials', function() {
|
|
var getCertificateStub, queryEmailAddressStub, getEmailAddressFromConfigStub;
|
|
|
|
beforeEach(function() {
|
|
getCertificateStub = sinon.stub(auth, 'getCertificate');
|
|
queryEmailAddressStub = sinon.stub(auth, 'queryEmailAddress');
|
|
getEmailAddressFromConfigStub = sinon.stub(auth, 'getEmailAddressFromConfig');
|
|
});
|
|
|
|
it('should work', function(done) {
|
|
getCertificateStub.yields(null, 'cert');
|
|
getEmailAddressFromConfigStub.yields(null, 'asdf@example.com');
|
|
queryEmailAddressStub.withArgs('token').yields(null, 'asdf@example.com');
|
|
oauthStub.getOAuthToken.withArgs('asdf@example.com').yields(null, 'token');
|
|
|
|
auth.getCredentials({}, function(err, credentials) {
|
|
expect(err).to.not.exist;
|
|
expect(credentials.emailAddress).to.equal('asdf@example.com');
|
|
expect(credentials.oauthToken).to.equal('token');
|
|
expect(credentials.sslCert).to.equal('cert');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail due to error in getCertificate', function(done) {
|
|
getCertificateStub.yields(new Error());
|
|
|
|
auth.getCredentials({}, function(err, credentials) {
|
|
expect(err).to.exist;
|
|
expect(credentials).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail due to error in getOAuthToken', function(done) {
|
|
getCertificateStub.yields(null, 'cert');
|
|
getEmailAddressFromConfigStub.yields(null, 'asdf@example.com');
|
|
oauthStub.getOAuthToken.yields(new Error());
|
|
|
|
auth.getCredentials({}, function(err, credentials) {
|
|
expect(err).to.exist;
|
|
expect(credentials).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail due to error in queryEmailAddress', function(done) {
|
|
getCertificateStub.yields(null, 'cert');
|
|
getEmailAddressFromConfigStub.yields(null, 'asdf@example.com');
|
|
queryEmailAddressStub.withArgs('token').yields(new Error());
|
|
oauthStub.getOAuthToken.yields(null, 'token');
|
|
|
|
auth.getCredentials({}, function(err, credentials) {
|
|
expect(err).to.exist;
|
|
expect(credentials).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('getCertificate', function() {
|
|
it('should work', function(done) {
|
|
caStub.get.yields(null, 'cert');
|
|
|
|
auth.getCertificate(function(err, cert) {
|
|
expect(err).to.not.exist;
|
|
expect(cert).to.equal('cert');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail', function(done) {
|
|
caStub.get.yields(null, '');
|
|
|
|
auth.getCertificate(function(err, cert) {
|
|
expect(err).to.exist;
|
|
expect(cert).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('getEmailAddress', function() {
|
|
var getEmailAddressFromConfigStub;
|
|
|
|
beforeEach(function() {
|
|
getEmailAddressFromConfigStub = sinon.stub(auth, 'getEmailAddressFromConfig');
|
|
});
|
|
|
|
it('should work', function(done) {
|
|
getEmailAddressFromConfigStub.yields(null, 'asdf@example.com');
|
|
|
|
auth.getEmailAddress(function(err, emailAddress) {
|
|
expect(err).to.not.exist;
|
|
expect(emailAddress).to.equal('asdf@example.com');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail', function(done) {
|
|
getEmailAddressFromConfigStub.yields(new Error());
|
|
|
|
auth.getEmailAddress(function(err, emailAddress) {
|
|
expect(err).to.exist;
|
|
expect(emailAddress).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('getEmailAddressFromConfig', function() {
|
|
it('should work', function(done) {
|
|
appConfigStoreStub.listItems.withArgs('emailaddress', 0, null).yields(null, ['asdf@example.com']);
|
|
|
|
auth.getEmailAddressFromConfig(function(err, emailAddress) {
|
|
expect(err).to.not.exist;
|
|
expect(emailAddress).to.equal('asdf@example.com');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should return empty result', function(done) {
|
|
appConfigStoreStub.listItems.withArgs('emailaddress', 0, null).yields(null, []);
|
|
|
|
auth.getEmailAddressFromConfig(function(err, emailAddress) {
|
|
expect(err).to.not.exist;
|
|
expect(emailAddress).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail', function(done) {
|
|
appConfigStoreStub.listItems.withArgs('emailaddress', 0, null).yields(new Error());
|
|
|
|
auth.getEmailAddressFromConfig(function(err, emailAddress) {
|
|
expect(err).to.exist;
|
|
expect(emailAddress).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('queryEmailAddress', function() {
|
|
var getEmailAddressFromConfigStub;
|
|
|
|
beforeEach(function() {
|
|
getEmailAddressFromConfigStub = sinon.stub(auth, 'getEmailAddressFromConfig');
|
|
});
|
|
|
|
it('should if already cached', function(done) {
|
|
getEmailAddressFromConfigStub.yields(null, 'asdf@example.com');
|
|
|
|
auth.queryEmailAddress('token', function(err, emailAddress) {
|
|
expect(err).to.not.exist;
|
|
expect(emailAddress).to.equal('asdf@example.com');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should when querying oauth api', function(done) {
|
|
getEmailAddressFromConfigStub.yields();
|
|
oauthStub.queryEmailAddress.withArgs('token').yields(null, 'asdf@example.com');
|
|
appConfigStoreStub.storeList.withArgs(['asdf@example.com'], 'emailaddress').yields();
|
|
|
|
auth.queryEmailAddress('token', function(err, emailAddress) {
|
|
expect(err).to.not.exist;
|
|
expect(emailAddress).to.equal('asdf@example.com');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail due to error in cache lookup', function(done) {
|
|
getEmailAddressFromConfigStub.yields(new Error());
|
|
|
|
auth.queryEmailAddress('token', function(err, emailAddress) {
|
|
expect(err).to.exist;
|
|
expect(emailAddress).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail due to error in oauth api', function(done) {
|
|
getEmailAddressFromConfigStub.yields();
|
|
oauthStub.queryEmailAddress.withArgs('token').yields(new Error());
|
|
|
|
auth.queryEmailAddress('token', function(err, emailAddress) {
|
|
expect(err).to.exist;
|
|
expect(emailAddress).to.not.exist;
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should fail due to error in oauth api', function(done) {
|
|
getEmailAddressFromConfigStub.yields();
|
|
oauthStub.queryEmailAddress.withArgs('token').yields(null, 'asdf@example.com');
|
|
appConfigStoreStub.storeList.withArgs(['asdf@example.com'], 'emailaddress').yields(new Error());
|
|
|
|
auth.queryEmailAddress('token', function(err, emailAddress) {
|
|
expect(err).to.exist;
|
|
expect(emailAddress).to.exist;
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
});
|
|
}); |