diff --git a/Gruntfile.js b/Gruntfile.js index 3795c37..643c117 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -155,23 +155,29 @@ module.exports = function(grunt) { unitTest: { files: { 'test/unit/index.browserified.js': [ - 'test/unit/oauth-test.js', - 'test/unit/auth-test.js', - 'test/unit/email-dao-test.js', - 'test/unit/app-controller-test.js', - 'test/unit/pgp-test.js', - 'test/unit/crypto-test.js', - 'test/unit/backbutton-handler-test.js', - 'test/unit/rest-dao-test.js', - 'test/unit/admin-dao-test.js', - 'test/unit/publickey-dao-test.js', - 'test/unit/privatekey-dao-test.js', - 'test/unit/lawnchair-dao-test.js', - 'test/unit/keychain-dao-test.js', - 'test/unit/devicestorage-dao-test.js', - 'test/unit/newsletter-service-test.js', - 'test/unit/mail-config-service-test.js', - 'test/unit/dialog-ctrl-test.js', + 'test/main.js', + 'test/unit/util/dialog-test.js', + 'test/unit/util/connection-doctor-test.js', + 'test/unit/util/update-handler-test.js', + 'test/unit/util/backbutton-handler-test.js', + 'test/unit/util/status-display-test.js', + 'test/unit/crypto/pgp-test.js', + 'test/unit/crypto/crypto-test.js', + 'test/unit/service/rest-dao-test.js', + 'test/unit/service/admin-dao-test.js', + 'test/unit/service/auth-test.js', + 'test/unit/service/oauth-test.js', + 'test/unit/service/publickey-dao-test.js', + 'test/unit/service/privatekey-dao-test.js', + 'test/unit/service/lawnchair-dao-test.js', + 'test/unit/service/keychain-dao-test.js', + 'test/unit/service/devicestorage-dao-test.js', + 'test/unit/service/newsletter-service-test.js', + 'test/unit/service/mail-config-service-test.js', + 'test/unit/service/invitation-dao-test.js', + 'test/unit/email/outbox-bo-test.js', + 'test/unit/email/email-dao-test.js', + /*'test/unit/dialog-ctrl-test.js', 'test/unit/add-account-ctrl-test.js', 'test/unit/create-account-ctrl-test.js', 'test/unit/validate-phone-ctrl-test.js', @@ -189,12 +195,7 @@ module.exports = function(grunt) { 'test/unit/navigation-ctrl-test.js', 'test/unit/mail-list-ctrl-test.js', 'test/unit/write-ctrl-test.js', - 'test/unit/action-bar-ctrl-test.js', - 'test/unit/outbox-bo-test.js', - 'test/unit/invitation-dao-test.js', - 'test/unit/update-handler-test.js', - 'test/unit/connection-doctor-test.js', - 'test/main.js' + 'test/unit/action-bar-ctrl-test.js',*/ ] }, options: browserifyOpt @@ -202,8 +203,8 @@ module.exports = function(grunt) { integrationTest: { files: { 'test/integration/index.browserified.js': [ - 'test/integration/email-dao-test.js', - 'test/main.js' + 'test/main.js', + /*'test/integration/email-dao-test.js'*/ ] }, options: browserifyOpt @@ -446,11 +447,11 @@ module.exports = function(grunt) { tasks: ['dist-js-app'] }, jsUnitTest: { - files: ['test/unit/*-test.js'], + files: ['test/unit/**/*-test.js', 'test/*.js'], tasks: ['dist-js-unitTest'] }, jsIntegrationTest: { - files: ['test/integration/*-test.js'], + files: ['test/integration/*-test.js', 'test/*.js'], tasks: ['dist-js-integrationTest'] }, icons: { diff --git a/src/js/email/email.js b/src/js/email/email.js index 2125700..3e4b2da 100644 --- a/src/js/email/email.js +++ b/src/js/email/email.js @@ -57,9 +57,7 @@ function Email(keychain, pgp, accountStore, pgpbuilder, mailreader, dialog) { this._pgpbuilder = pgpbuilder; this._mailreader = mailreader; - this.onError = function(err) { - dialog.error(err); - }; + this.onError = dialog.error.bind(dialog); } diff --git a/src/js/service/devicestorage.js b/src/js/service/devicestorage.js index 6bc9460..607bb5b 100644 --- a/src/js/service/devicestorage.js +++ b/src/js/service/devicestorage.js @@ -6,6 +6,10 @@ ngModule.factory('deviceStorage', function(lawnchairDAO) { }); module.exports = DeviceStorage; +// +// Export special device storage singletons +// + // expose an instance with the static dbName 'app-config' to store configuration data ngModule.factory('appConfigStore', function(deviceStorage) { deviceStorage.init('app-config'); @@ -15,6 +19,10 @@ ngModule.factory('appConfigStore', function(deviceStorage) { // expose a singleton instance of DeviceStorage called 'accountStore' to persist user data ngModule.service('accountStore', DeviceStorage); +// +// Implementation +// + /** * High level storage api that handles all persistence of a user's data on the device. */ @@ -22,6 +30,10 @@ function DeviceStorage(lawnchairDAO) { this._lawnchairDAO = lawnchairDAO; } +/** + * Initialize the lawnchair database + * @param {String} dbName The name of the database + */ DeviceStorage.prototype.init = function(dbName) { this._lawnchairDAO.init(dbName); }; diff --git a/src/js/service/keychain.js b/src/js/service/keychain.js index 28b9405..9e49d0a 100644 --- a/src/js/service/keychain.js +++ b/src/js/service/keychain.js @@ -4,8 +4,7 @@ var ngModule = angular.module('woServices'); ngModule.service('keychain', Keychain); module.exports = Keychain; -var util = require('crypto-lib').util, - config = require('../app-config').config; +var util = require('crypto-lib').util; var DB_PUBLICKEY = 'publickey', DB_PRIVATEKEY = 'privatekey', @@ -327,7 +326,8 @@ Keychain.prototype.getDeviceName = function(callback) { * @param {Function} callback(error, deviceSecret:[base64 encoded string]) */ Keychain.prototype.getDeviceSecret = function(callback) { - var self = this; + var self = this, + config = self._appConfig.config; // generate random deviceSecret or get from storage self._lawnchairDAO.read(DB_DEVICE_SECRET, function(err, storedDevSecret) { @@ -363,7 +363,8 @@ Keychain.prototype.getDeviceSecret = function(callback) { */ Keychain.prototype.registerDevice = function(options, callback) { var self = this, - devName; + devName, + config = self._appConfig.config; // check if deviceName is already persisted in storage self.getDeviceName(function(err, deviceName) { @@ -462,7 +463,8 @@ Keychain.prototype.registerDevice = function(options, callback) { */ Keychain.prototype._authenticateToPrivateKeyServer = function(userId, callback) { var self = this, - sessionId; + sessionId, + config = self._appConfig.config; // request auth session key required for upload self._privateKeyDao.requestAuthSessionKey({ @@ -579,6 +581,7 @@ Keychain.prototype._authenticateToPrivateKeyServer = function(userId, callback) */ Keychain.prototype.uploadPrivateKey = function(options, callback) { var self = this, + config = self._appConfig.config, keySize = config.symKeySize, salt; @@ -710,6 +713,7 @@ Keychain.prototype.decryptAndStorePrivateKeyLocally = function(options, callback var self = this, code = options.code, salt = options.salt, + config = self._appConfig.config, keySize = config.symKeySize; if (!options._id || !options.userId || !options.code || !options.salt || !options.encryptedPrivateKey || !options.iv) { diff --git a/src/js/service/mail-config.js b/src/js/service/mail-config.js index 72e4846..fa77a18 100644 --- a/src/js/service/mail-config.js +++ b/src/js/service/mail-config.js @@ -20,7 +20,7 @@ MailConfig.prototype.get = function(emailAddress) { }); } - var url = this._appConfig.settingsUrl + emailAddress.split('@')[1]; + var url = this._appConfig.config.settingsUrl + emailAddress.split('@')[1]; return this._http.get(url).then(function(res) { return res.data; }); diff --git a/test/unit/crypto/crypto-test.js b/test/unit/crypto/crypto-test.js index 7647514..95b9865 100644 --- a/test/unit/crypto/crypto-test.js +++ b/test/unit/crypto/crypto-test.js @@ -1,7 +1,7 @@ 'use strict'; -var Crypto = require('../../src/js/crypto/crypto'), - config = require('../../src/js/app-config').config, +var Crypto = require('../../../src/js/crypto/crypto'), + config = require('../../../src/js/app-config').config, util = require('crypto-lib').util; describe('Crypto unit tests', function() { diff --git a/test/unit/crypto/pgp-test.js b/test/unit/crypto/pgp-test.js index b2da3db..d226f1f 100644 --- a/test/unit/crypto/pgp-test.js +++ b/test/unit/crypto/pgp-test.js @@ -1,6 +1,6 @@ 'use strict'; -var PGP = require('../../src/js/crypto/pgp'); +var PGP = require('../../../src/js/crypto/pgp'); describe('PGP Crypto Api unit tests', function() { this.timeout(20000); diff --git a/test/unit/email/email-dao-test.js b/test/unit/email/email-dao-test.js index 81ebbe1..95123e5 100644 --- a/test/unit/email/email-dao-test.js +++ b/test/unit/email/email-dao-test.js @@ -4,11 +4,12 @@ var mailreader = require('mailreader'), ImapClient = require('imap-client'), PgpMailer = require('pgpmailer'), PgpBuilder = require('pgpbuilder'), - cfg = require('../../src/js/app-config').config, - EmailDAO = require('../../src/js/dao/email-dao'), - KeychainDAO = require('../../src/js/dao/keychain-dao'), - PGP = require('../../src/js/crypto/pgp'), - DeviceStorageDAO = require('../../src/js/dao/devicestorage-dao'); + cfg = require('../../../src/js/app-config').config, + EmailDAO = require('../../../src/js/email/email'), + KeychainDAO = require('../../../src/js/service/keychain'), + PGP = require('../../../src/js/crypto/pgp'), + DeviceStorageDAO = require('../../../src/js/service/devicestorage'), + Dialog = require('../../../src/js/util/dialog'); describe('Email DAO unit tests', function() { @@ -19,7 +20,7 @@ describe('Email DAO unit tests', function() { var dao; // mocks - var keychainStub, imapClientStub, pgpMailerStub, pgpBuilderStub, pgpStub, devicestorageStub, parseStub; + var keychainStub, imapClientStub, pgpMailerStub, pgpBuilderStub, pgpStub, devicestorageStub, parseStub, dialogStub; // config var emailAddress, passphrase, asymKeySize, account; @@ -116,11 +117,12 @@ describe('Email DAO unit tests', function() { pgpStub = sinon.createStubInstance(PGP); parseStub = sinon.stub(mailreader, 'parse'); devicestorageStub = sinon.createStubInstance(DeviceStorageDAO); + dialogStub = sinon.createStubInstance(Dialog); // // setup the SUT // - dao = new EmailDAO(keychainStub, pgpStub, devicestorageStub, pgpBuilderStub, mailreader); + dao = new EmailDAO(keychainStub, pgpStub, devicestorageStub, pgpBuilderStub, mailreader, dialogStub); dao._account = account; dao._pgpMailer = pgpMailerStub; dao._imapClient = imapClientStub; diff --git a/test/unit/email/outbox-bo-test.js b/test/unit/email/outbox-bo-test.js index e5df498..90c0bc3 100644 --- a/test/unit/email/outbox-bo-test.js +++ b/test/unit/email/outbox-bo-test.js @@ -1,9 +1,9 @@ 'use strict'; -var OutboxBO = require('../../src/js/bo/outbox'), - KeychainDAO = require('../../src/js/dao/keychain-dao'), - EmailDAO = require('../../src/js/dao/email-dao'), - DeviceStorageDAO = require('../../src/js/dao/devicestorage-dao'); +var OutboxBO = require('../../../src/js/email/outbox'), + KeychainDAO = require('../../../src/js/service/keychain'), + EmailDAO = require('../../../src/js/email/email'), + DeviceStorageDAO = require('../../../src/js/service/devicestorage'); describe('Outbox Business Object unit test', function() { var outbox, emailDaoStub, devicestorageStub, keychainStub, diff --git a/test/unit/service/admin-dao-test.js b/test/unit/service/admin-dao-test.js index 2550374..2f41e8f 100644 --- a/test/unit/service/admin-dao-test.js +++ b/test/unit/service/admin-dao-test.js @@ -1,7 +1,8 @@ 'use strict'; -var RestDAO = require('../../src/js/dao/rest-dao'), - AdminDAO = require('../../src/js/dao/admin-dao'); +var RestDAO = require('../../../src/js/service/rest'), + AdminDAO = require('../../../src/js/service/admin'), + appConfig = require('../../../src/js/app-config'); describe('Admin DAO unit tests', function() { @@ -11,7 +12,7 @@ describe('Admin DAO unit tests', function() { beforeEach(function() { restDaoStub = sinon.createStubInstance(RestDAO); - adminDao = new AdminDAO(restDaoStub); + adminDao = new AdminDAO(restDaoStub, appConfig); }); afterEach(function() {}); diff --git a/test/unit/service/auth-test.js b/test/unit/service/auth-test.js index 8e30991..e8b23db 100644 --- a/test/unit/service/auth-test.js +++ b/test/unit/service/auth-test.js @@ -1,9 +1,9 @@ 'use strict'; -var Auth = require('../../src/js/bo/auth'), - OAuth = require('../../src/js/util/oauth'), - PGP = require('../../src/js/crypto/pgp'), - DeviceStorageDAO = require('../../src/js/dao/devicestorage-dao'); +var Auth = require('../../../src/js/service/auth'), + OAuth = require('../../../src/js/service/oauth'), + PGP = require('../../../src/js/crypto/pgp'), + DeviceStorageDAO = require('../../../src/js/service/devicestorage'); describe('Auth unit tests', function() { // Constancts diff --git a/test/unit/service/devicestorage-dao-test.js b/test/unit/service/devicestorage-dao-test.js index 1cc49d5..933df5c 100644 --- a/test/unit/service/devicestorage-dao-test.js +++ b/test/unit/service/devicestorage-dao-test.js @@ -1,7 +1,7 @@ 'use strict'; -var LawnchairDAO = require('../../src/js/dao/lawnchair-dao'), - DeviceStorageDAO = require('../../src/js/dao/devicestorage-dao'); +var LawnchairDAO = require('../../../src/js/service/lawnchair'), + DeviceStorageDAO = require('../../../src/js/service/devicestorage'); var testUser = 'test@example.com'; @@ -17,14 +17,9 @@ describe('Device Storage DAO unit tests', function() { afterEach(function() {}); describe('init', function() { - it('should work', function(done) { - lawnchairDaoStub.init.yields(); - - storageDao.init(testUser, function(err) { - expect(err).to.not.exist; - expect(lawnchairDaoStub.init.calledOnce).to.be.true; - done(); - }); + it('should work', function() { + storageDao.init(testUser); + expect(lawnchairDaoStub.init.calledOnce).to.be.true; }); }); diff --git a/test/unit/service/invitation-dao-test.js b/test/unit/service/invitation-dao-test.js index 136c088..b8b4237 100644 --- a/test/unit/service/invitation-dao-test.js +++ b/test/unit/service/invitation-dao-test.js @@ -1,7 +1,8 @@ 'use strict'; -var RestDAO = require('../../src/js/dao/rest-dao'), - InvitationDAO = require('../../src/js/dao/invitation-dao'); +var RestDAO = require('../../../src/js/service/rest'), + InvitationDAO = require('../../../src/js/service/invitation'), + appConfig = require('../../../src/js/app-config'); describe('Invitation DAO unit tests', function() { var restDaoStub, invitationDao, @@ -11,7 +12,7 @@ describe('Invitation DAO unit tests', function() { beforeEach(function() { restDaoStub = sinon.createStubInstance(RestDAO); - invitationDao = new InvitationDAO(restDaoStub); + invitationDao = new InvitationDAO(restDaoStub, appConfig); }); describe('initialization', function() { diff --git a/test/unit/service/keychain-dao-test.js b/test/unit/service/keychain-dao-test.js index c143c81..80558e2 100644 --- a/test/unit/service/keychain-dao-test.js +++ b/test/unit/service/keychain-dao-test.js @@ -1,17 +1,19 @@ 'use strict'; -var LawnchairDAO = require('../../src/js/dao/lawnchair-dao'), - PublicKeyDAO = require('../../src/js/dao/publickey-dao'), - KeychainDAO = require('../../src/js/dao/keychain-dao'), - PrivateKeyDAO = require('../../src/js/dao/privatekey-dao'), - Crypto = require('../../src/js/crypto/crypto'), - PGP = require('../../src/js/crypto/pgp'); +var LawnchairDAO = require('../../../src/js/service/lawnchair'), + PublicKeyDAO = require('../../../src/js/service/publickey'), + KeychainDAO = require('../../../src/js/service/keychain'), + PrivateKeyDAO = require('../../../src/js/service/privatekey'), + Crypto = require('../../../src/js/crypto/crypto'), + PGP = require('../../../src/js/crypto/pgp'), + Dialog = require('../../../src/js/util/dialog'), + appConfig = require('../../../src/js/app-config'); var testUser = 'test@example.com'; describe('Keychain DAO unit tests', function() { - var keychainDao, lawnchairDaoStub, pubkeyDaoStub, privkeyDaoStub, cryptoStub, pgpStub; + var keychainDao, lawnchairDaoStub, pubkeyDaoStub, privkeyDaoStub, cryptoStub, pgpStub, dialogStub; beforeEach(function() { lawnchairDaoStub = sinon.createStubInstance(LawnchairDAO); @@ -19,11 +21,25 @@ describe('Keychain DAO unit tests', function() { privkeyDaoStub = sinon.createStubInstance(PrivateKeyDAO); cryptoStub = sinon.createStubInstance(Crypto); pgpStub = sinon.createStubInstance(PGP); - keychainDao = new KeychainDAO(lawnchairDaoStub, pubkeyDaoStub, privkeyDaoStub, cryptoStub, pgpStub); + dialogStub = sinon.createStubInstance(Dialog); + keychainDao = new KeychainDAO(lawnchairDaoStub, pubkeyDaoStub, privkeyDaoStub, cryptoStub, pgpStub, dialogStub, appConfig); }); afterEach(function() {}); + describe('requestPermissionForKeyUpdate', function() { + it('should work', function() { + var opt = { + newKey: {}, + userId: 'asdf@example.com' + }; + + keychainDao.requestPermissionForKeyUpdate(opt, function() { + expect(dialogStub.confirm.calledOnce).to.be.true; + }); + }); + }); + describe('verify public key', function() { it('should verify public key', function(done) { var uuid = 'asdfasdfasdfasdf'; diff --git a/test/unit/service/lawnchair-dao-test.js b/test/unit/service/lawnchair-dao-test.js index 5eb3d5f..0ece202 100644 --- a/test/unit/service/lawnchair-dao-test.js +++ b/test/unit/service/lawnchair-dao-test.js @@ -1,6 +1,6 @@ 'use strict'; -var LawnchairDAO = require('../../src/js/dao/lawnchair-dao'); +var LawnchairDAO = require('../../../src/js/service/lawnchair'); var dbName = 'lawnchair@test.com'; @@ -20,13 +20,10 @@ var data2 = { describe('Lawnchair DAO unit tests', function() { var lawnchairDao; - beforeEach(function(done) { + beforeEach(function() { lawnchairDao = new LawnchairDAO(); - lawnchairDao.init(dbName, function(err) { - expect(err).to.not.exist; - expect(lawnchairDao._db).to.exist; - done(); - }); + lawnchairDao.init(dbName); + expect(lawnchairDao._db).to.exist; }); afterEach(function(done) { diff --git a/test/unit/service/mail-config-service-test.js b/test/unit/service/mail-config-service-test.js index 893dad7..34bd0df 100644 --- a/test/unit/service/mail-config-service-test.js +++ b/test/unit/service/mail-config-service-test.js @@ -1,16 +1,14 @@ 'use strict'; -var mocks = angular.mock, - cfg = require('../../src/js/app-config').config; -require('../../src/js/service/mail-config'); +var cfg = require('../../../src/js/app-config').config; describe('Mail Config Service unit test', function() { var mailConfig, httpBackend; beforeEach(function() { angular.module('mail-config-test', ['woServices']); - mocks.module('mail-config-test'); - mocks.inject(function($injector, $httpBackend) { + angular.mock.module('mail-config-test'); + angular.mock.inject(function($injector, $httpBackend) { httpBackend = $httpBackend; mailConfig = $injector.get('mailConfig'); }); diff --git a/test/unit/service/newsletter-service-test.js b/test/unit/service/newsletter-service-test.js index 38bbd2f..874a345 100644 --- a/test/unit/service/newsletter-service-test.js +++ b/test/unit/service/newsletter-service-test.js @@ -1,15 +1,12 @@ 'use strict'; -var mocks = angular.mock; -require('../../src/js/service/newsletter'); - describe('Newsletter Service unit test', function() { var newsletter; beforeEach(function() { angular.module('newsletter-test', ['woServices']); - mocks.module('newsletter-test'); - mocks.inject(function($injector) { + angular.mock.module('newsletter-test'); + angular.mock.inject(function($injector) { newsletter = $injector.get('newsletter'); }); }); diff --git a/test/unit/service/oauth-test.js b/test/unit/service/oauth-test.js index 5178c0f..51d516e 100644 --- a/test/unit/service/oauth-test.js +++ b/test/unit/service/oauth-test.js @@ -1,7 +1,7 @@ 'use strict'; -var OAuth = require('../../src/js/util/oauth'), - RestDAO = require('../../src/js/dao/rest-dao'); +var OAuth = require('../../../src/js/service/oauth'), + RestDAO = require('../../../src/js/service/rest'); describe('OAuth unit tests', function() { var oauth, googleApiStub, identityStub, getPlatformInfoStub, removeCachedStub, diff --git a/test/unit/service/privatekey-dao-test.js b/test/unit/service/privatekey-dao-test.js index 63bcd3c..d8a9ea6 100644 --- a/test/unit/service/privatekey-dao-test.js +++ b/test/unit/service/privatekey-dao-test.js @@ -1,7 +1,8 @@ 'use strict'; -var RestDAO = require('../../src/js/dao/rest-dao'), - PrivateKeyDAO = require('../../src/js/dao/privatekey-dao'); +var RestDAO = require('../../../src/js/service/rest'), + PrivateKeyDAO = require('../../../src/js/service/privatekey'), + appConfig = require('../../../src/js/app-config'); describe('Private Key DAO unit tests', function() { @@ -11,7 +12,7 @@ describe('Private Key DAO unit tests', function() { beforeEach(function() { restDaoStub = sinon.createStubInstance(RestDAO); - privkeyDao = new PrivateKeyDAO(restDaoStub); + privkeyDao = new PrivateKeyDAO(restDaoStub, appConfig); }); afterEach(function() {}); diff --git a/test/unit/service/publickey-dao-test.js b/test/unit/service/publickey-dao-test.js index 724fc62..577b123 100644 --- a/test/unit/service/publickey-dao-test.js +++ b/test/unit/service/publickey-dao-test.js @@ -1,7 +1,8 @@ 'use strict'; -var RestDAO = require('../../src/js/dao/rest-dao'), - PublicKeyDAO = require('../../src/js/dao/publickey-dao'); +var RestDAO = require('../../../src/js/service/rest'), + PublicKeyDAO = require('../../../src/js/service/publickey'), + appConfig = require('../../../src/js/app-config'); describe('Public Key DAO unit tests', function() { @@ -9,7 +10,7 @@ describe('Public Key DAO unit tests', function() { beforeEach(function() { restDaoStub = sinon.createStubInstance(RestDAO); - pubkeyDao = new PublicKeyDAO(restDaoStub); + pubkeyDao = new PublicKeyDAO(restDaoStub, appConfig); }); afterEach(function() {}); diff --git a/test/unit/service/rest-dao-test.js b/test/unit/service/rest-dao-test.js index 2686a04..c8ca3a6 100644 --- a/test/unit/service/rest-dao-test.js +++ b/test/unit/service/rest-dao-test.js @@ -1,6 +1,6 @@ 'use strict'; -var RestDAO = require('../../src/js/dao/rest-dao'); +var RestDAO = require('../../../src/js/service/rest'); describe('Rest DAO unit tests', function() { @@ -20,18 +20,12 @@ describe('Rest DAO unit tests', function() { xhrMock.restore(); }); - describe('contructor', function() { - it('should set default base uri', function() { - restDao = new RestDAO(); - expect(restDao).to.exist; - expect(restDao._baseUri).to.exist; - }); - - it('should accept default base uri', function() { + describe('setBaseUri', function() { + it('should accept base uri', function() { var baseUri = 'http://custom.com'; - - restDao = new RestDAO(baseUri); - expect(restDao).to.exist; + restDao = new RestDAO(); + expect(restDao._baseUri).to.not.exist; + restDao.setBaseUri(baseUri); expect(restDao._baseUri).to.equal(baseUri); }); });