#import test

This commit is contained in:
Matias Alejo Garcia 2014-10-21 12:03:09 -03:00
commit 02d5604497
4 changed files with 40 additions and 14 deletions

View file

@ -343,11 +343,13 @@ Identity.prototype.closeWallet = function(wid, cb) {
*/ */
Identity.import = function(str, password, opts, cb) { Identity.import = function(str, password, opts, cb) {
preconditions.checkArgument(str); preconditions.checkArgument(str);
console.log('[Identity.js.347:str::]',str); //TODO
var json = JSON.parse(str); var json = JSON.parse(str);
preconditions.checkArgument(_.isNumber(json.iterations));
if (!_.isNumber(json.iterations))
return cb('BADSTR: Missing iterations');
if (!json.profile)
return cb('BADSTR: Missing profile');
var iden = new Identity(password, opts); var iden = new Identity(password, opts);
@ -383,7 +385,7 @@ Identity.prototype.export = function() {
ret.wallets = {}; ret.wallets = {};
_.each(this.openWallets, function(w) { _.each(this.openWallets, function(w) {
ret.wallets[w.getId()] = w.toEncryptedObj(); ret.wallets[w.getId()] = w.export();
}); });
var r = JSON.stringify(ret); var r = JSON.stringify(ret);

View file

@ -233,17 +233,17 @@ Storage.prototype.clearAll = function(cb) {
Storage.prototype.decrypt = function(base64, password, iterations) { Storage.prototype.decrypt = function(base64, password, iterations) {
if (password) { if (password) {
this.storage.savePassphrase(); this.savePassphrase();
var opts = iterations ? {iterations: iterations} : {}; var opts = iterations ? {iterations: iterations} : {};
this.storage.setPassword(password, opts); this.setPassword(password, opts);
} }
var decryptedStr = this._decrypt(base64); var decryptedStr = this._decrypt(base64);
var ret = JSON.parse(decryptedStr); var ret = JSON.parse(decryptedStr);
if (password) if (password)
this.storage.restorePassphrase(); this.restorePassphrase();
return ret; return ret;
}; };

View file

@ -108,7 +108,7 @@ describe('Identity model', function() {
describe('#constructors', function() { describe('#constructors', function() {
describe('#new', function() { describe('#new', function() {
it('should create an identity', function() { it('should create an identity', function() {
var iden = new Identity(email, password, config); var iden = new Identity(password, config);
should.exist(iden); should.exist(iden);
iden.walletDefaults.should.deep.equal(config.walletDefaults); iden.walletDefaults.should.deep.equal(config.walletDefaults);
}); });
@ -358,7 +358,7 @@ describe('Identity model', function() {
}); });
}); });
describe.only('#import', function() { describe('#import', function() {
beforeEach(function() { beforeEach(function() {
var ws = []; var ws = [];
@ -375,14 +375,37 @@ describe('Identity model', function() {
email: '1@1.com', email: '1@1.com',
hash: 'hash1234' hash: 'hash1234'
}); });
}); });
it('should create an encrypted object', function(done) {
it('should check the import string', function(done) {
Identity.import(JSON.stringify({ Identity.import(JSON.stringify({
iterations: 10 profile: '1234'
}), '1234', config, function(err, ret) { }), '1234', config, function(err, ret) {
err.should.contain('BADSTR');
done();
});
});
it('should check the import string 2', function(done) {
Identity.import(JSON.stringify({
iterations: 10,
}), '1234', config, function(err, ret) {
err.should.contain('BADSTR');
done();
});
});
it('should import a simple wallet', function(done) {
Identity.import(JSON.stringify({
iterations: 10,
profile: '1234'
}), '1234', config, function(err, iden) {
should.not.exist(err); should.not.exist(err);
should.exist(ret); should.exist(iden);
iden.profile.email.should.equal('1@1.com');
done(); done();
}); });
}); });

View file

@ -420,10 +420,11 @@ describe('Storage model', function() {
should.not.exist(wo); should.not.exist(wo);
}); });
it('should call save / restorePassphrase', function() { it('should call save / restorePassphrase', function() {
var wo = s.decrypt(encryptedLegacy1, 'xxx'); sinon.spy(s,'savePassphrase');
sinon.spy(s,'restorePassphrase');
s.decrypt(encryptedLegacy1, 'xxx');
s.savePassphrase.calledOnce.should.equal(true); s.savePassphrase.calledOnce.should.equal(true);
s.restorePassphrase.calledOnce.should.equal(true); s.restorePassphrase.calledOnce.should.equal(true);
should.not.exist(wo);
}); });