Merge pull request #2089 from isocolsky/remove_profile

Remove profile
This commit is contained in:
Matias Alejo Garcia 2014-12-12 10:15:30 -03:00
commit 57b98d24d4
7 changed files with 42 additions and 10 deletions

View file

@ -356,8 +356,13 @@ Identity.prototype.remove = function(opts, cb) {
self.storage.removeItem(self.getId(), function(err) { self.storage.removeItem(self.getId(), function(err) {
if (err) return cb(err); if (err) return cb(err);
self.emitAndKeepAlive('closed');
return cb(); self.storage.clear(function (err) {
if (err) return cb(err);
self.emitAndKeepAlive('closed');
return cb();
});
}); });
}); });
}; };

View file

@ -49,4 +49,8 @@ EncryptedInsightStorage.prototype.removeItem = function(name, callback) {
InsightStorage.prototype.removeItem.apply(this, [name, callback]); InsightStorage.prototype.removeItem.apply(this, [name, callback]);
}; };
EncryptedInsightStorage.prototype.clear = function(callback) {
InsightStorage.prototype.clear.apply(this, [callback]);
};
module.exports = EncryptedInsightStorage; module.exports = EncryptedInsightStorage;

View file

@ -52,6 +52,9 @@ EncryptedLocalStorage.prototype.removeItem = function(name, callback) {
LocalStorage.prototype.removeItem.apply(this, [name, callback]); LocalStorage.prototype.removeItem.apply(this, [name, callback]);
}; };
EncryptedLocalStorage.prototype.clear = function(callback) {
LocalStorage.prototype.clear.apply(this, [callback]);
};
module.exports = EncryptedLocalStorage; module.exports = EncryptedLocalStorage;

View file

@ -232,8 +232,28 @@ InsightStorage.prototype.removeItem = function(key, callback) {
}; };
InsightStorage.prototype.clear = function(callback) { InsightStorage.prototype.clear = function(callback) {
// NOOP var passphrase = this.getPassphrase();
callback(); var authHeader = new buffers.Buffer(this.email + ':' + passphrase).toString('base64');
var deleteUrl = this.storeUrl + '/delete/profile';
log.debug('Clearing storage for: ' + this.email);
this.request.post({
url: deleteUrl,
headers: {
'Authorization': authHeader
},
body: null,
}, function(err, response, body) {
if (err) {
return callback('Connection error');
}
if (response.statusCode === 409) {
return callback('BADCREDENTIALS: Invalid username or password');
} else if (response.statusCode !== 200) {
return callback('Unable to remove data on insight');
}
return callback();
});
}; };
module.exports = InsightStorage; module.exports = InsightStorage;

View file

@ -80,11 +80,7 @@ LocalStorage.prototype.removeItem = function(k, cb) {
}; };
LocalStorage.prototype.clear = function(cb) { LocalStorage.prototype.clear = function(cb) {
if (isChromeApp) { // NOP
chrome.storage.clear();
} else {
this.ls.clear();
}
return cb(); return cb();
}; };

View file

@ -171,6 +171,7 @@ describe('Identity model', function() {
var storage = sinon.stub(); var storage = sinon.stub();
storage.setCredentials = sinon.stub(); storage.setCredentials = sinon.stub();
storage.removeItem = sinon.stub().yields(null); storage.removeItem = sinon.stub().yields(null);
storage.clear = sinon.stub().yields();
var opts = { var opts = {
email: 'test@test.com', email: 'test@test.com',
@ -191,6 +192,7 @@ describe('Identity model', function() {
should.not.exist(err); should.not.exist(err);
storage.removeItem.calledOnce.should.be.true; storage.removeItem.calledOnce.should.be.true;
storage.removeItem.getCall(0).args[0].should.equal(iden.getId()); storage.removeItem.getCall(0).args[0].should.equal(iden.getId());
storage.clear.calledOnce.should.be.true;
done(); done();
}); });
}); });
@ -199,6 +201,7 @@ describe('Identity model', function() {
var storage = sinon.stub(); var storage = sinon.stub();
storage.setCredentials = sinon.stub(); storage.setCredentials = sinon.stub();
storage.removeItem = sinon.stub().yields(null); storage.removeItem = sinon.stub().yields(null);
storage.clear = sinon.stub().yields();
var opts = { var opts = {
email: 'test@test.com', email: 'test@test.com',
@ -231,6 +234,7 @@ describe('Identity model', function() {
storage.removeItem.callCount.should.equal(4); storage.removeItem.callCount.should.equal(4);
storage.removeItem.getCall(0).args[0].should.equal(Wallet.getStorageKey('wallet0')); storage.removeItem.getCall(0).args[0].should.equal(Wallet.getStorageKey('wallet0'));
storage.removeItem.getCall(3).args[0].should.equal(iden.getId()); storage.removeItem.getCall(3).args[0].should.equal(iden.getId());
storage.clear.calledOnce.should.be.true;
done(); done();
}); });
}); });

View file

@ -63,7 +63,7 @@ describe('local storage plugin', function() {
it('#clear', function(done) { it('#clear', function(done) {
storage.clear(function(err) { storage.clear(function(err) {
assert(!err); assert(!err);
storageMock.clear.calledOnce.should.equal(true); storageMock.clear.calledOnce.should.be.false;
return done(); return done();
}); });
}); });