Merge branch 'master' into development
Bringing beta up to date with production v1.0.40pull/749/head
commit
f013eed9d1
@ -0,0 +1,5 @@
|
||||
{
|
||||
"storageProfile": "test",
|
||||
"disableAutoUpdate": true,
|
||||
"openDevTools": false
|
||||
}
|
@ -0,0 +1,156 @@
|
||||
'use strict';
|
||||
|
||||
describe("AccountManager", function() {
|
||||
let accountManager;
|
||||
let originalServer;
|
||||
|
||||
before(function() {
|
||||
originalServer = window.TextSecureServer;
|
||||
window.TextSecureServer = function() {};
|
||||
});
|
||||
after(function() {
|
||||
window.TextSecureServer = originalServer;
|
||||
});
|
||||
|
||||
beforeEach(function() {
|
||||
accountManager = new window.textsecure.AccountManager();
|
||||
});
|
||||
|
||||
describe('#cleanSignedPreKeys', function() {
|
||||
let originalProtocolStorage;
|
||||
let signedPreKeys;
|
||||
const DAY = 1000 * 60 * 60 * 24;
|
||||
|
||||
beforeEach(function() {
|
||||
originalProtocolStorage = window.textsecure.storage.protocol;
|
||||
window.textsecure.storage.protocol = {
|
||||
loadSignedPreKeys: function() {
|
||||
return Promise.resolve(signedPreKeys);
|
||||
},
|
||||
};
|
||||
});
|
||||
afterEach(function() {
|
||||
window.textsecure.storage.protocol = originalProtocolStorage;
|
||||
});
|
||||
|
||||
it('keeps three confirmed keys even if over a week old', function() {
|
||||
const now = Date.now();
|
||||
signedPreKeys = [{
|
||||
keyId: 1,
|
||||
created_at: now - DAY * 21,
|
||||
confirmed: true,
|
||||
}, {
|
||||
keyId: 2,
|
||||
created_at: now - DAY * 14,
|
||||
confirmed: true,
|
||||
}, {
|
||||
keyId: 3,
|
||||
created_at: now - DAY * 18,
|
||||
confirmed: true,
|
||||
}];
|
||||
|
||||
// should be no calls to store.removeSignedPreKey, would cause crash
|
||||
return accountManager.cleanSignedPreKeys();
|
||||
});
|
||||
|
||||
it('eliminates confirmed keys over a week old, if more than three', function() {
|
||||
const now = Date.now();
|
||||
signedPreKeys = [{
|
||||
keyId: 1,
|
||||
created_at: now - DAY * 21,
|
||||
confirmed: true,
|
||||
}, {
|
||||
keyId: 2,
|
||||
created_at: now - DAY * 14,
|
||||
confirmed: true,
|
||||
}, {
|
||||
keyId: 3,
|
||||
created_at: now - DAY * 4,
|
||||
confirmed: true,
|
||||
}, {
|
||||
keyId: 4,
|
||||
created_at: now - DAY * 18,
|
||||
confirmed: true,
|
||||
}, {
|
||||
keyId: 5,
|
||||
created_at: now - DAY,
|
||||
confirmed: true,
|
||||
}];
|
||||
|
||||
let count = 0;
|
||||
window.textsecure.storage.protocol.removeSignedPreKey = function(keyId) {
|
||||
if (keyId !== 1 && keyId !== 4) {
|
||||
throw new Error('Wrong keys were eliminated! ' + keyId);
|
||||
}
|
||||
|
||||
count++;
|
||||
};
|
||||
|
||||
return accountManager.cleanSignedPreKeys().then(function() {
|
||||
assert.strictEqual(count, 2);
|
||||
});
|
||||
});
|
||||
|
||||
it('keeps at least three unconfirmed keys if no confirmed', function() {
|
||||
const now = Date.now();
|
||||
signedPreKeys = [{
|
||||
keyId: 1,
|
||||
created_at: now - DAY * 14,
|
||||
}, {
|
||||
keyId: 2,
|
||||
created_at: now - DAY * 21,
|
||||
}, {
|
||||
keyId: 3,
|
||||
created_at: now - DAY * 18,
|
||||
}, {
|
||||
keyId: 4,
|
||||
created_at: now - DAY
|
||||
}];
|
||||
|
||||
let count = 0;
|
||||
window.textsecure.storage.protocol.removeSignedPreKey = function(keyId) {
|
||||
if (keyId !== 2) {
|
||||
throw new Error('Wrong keys were eliminated! ' + keyId);
|
||||
}
|
||||
|
||||
count++;
|
||||
};
|
||||
|
||||
return accountManager.cleanSignedPreKeys().then(function() {
|
||||
assert.strictEqual(count, 1);
|
||||
});
|
||||
});
|
||||
|
||||
it('if some confirmed keys, keeps unconfirmed to addd up to three total', function() {
|
||||
const now = Date.now();
|
||||
signedPreKeys = [{
|
||||
keyId: 1,
|
||||
created_at: now - DAY * 21,
|
||||
confirmed: true,
|
||||
}, {
|
||||
keyId: 2,
|
||||
created_at: now - DAY * 14,
|
||||
confirmed: true,
|
||||
}, {
|
||||
keyId: 3,
|
||||
created_at: now - DAY * 12,
|
||||
}, {
|
||||
keyId: 4,
|
||||
created_at: now - DAY * 8,
|
||||
}];
|
||||
|
||||
let count = 0;
|
||||
window.textsecure.storage.protocol.removeSignedPreKey = function(keyId) {
|
||||
if (keyId !== 3) {
|
||||
throw new Error('Wrong keys were eliminated! ' + keyId);
|
||||
}
|
||||
|
||||
count++;
|
||||
};
|
||||
|
||||
return accountManager.cleanSignedPreKeys().then(function() {
|
||||
assert.strictEqual(count, 1);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
@ -1 +0,0 @@
|
||||
../../protos/
|
Loading…
Reference in New Issue