1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-08-18 05:42:00 +03:00

Return device key list in a stable order, add a check for the list in the tests

This commit is contained in:
Mark Haines
2015-07-22 11:34:38 +01:00
parent 28a5719f5f
commit 319ca5123e
2 changed files with 24 additions and 10 deletions

View File

@@ -267,8 +267,16 @@ MatrixClient.prototype.listDeviceKeys = function(userId) {
var devices = this.sessionStore.getEndToEndDevicesForUser(userId);
var result = [];
if (devices) {
for (var deviceId in devices) {
var deviceId;
var deviceIds = [];
for (deviceId in devices) {
if (devices.hasOwnProperty(deviceId)) {
deviceIds.push(deviceId);
}
}
deviceIds.sort();
for (var i = 0; i < deviceIds.length; ++i) {
deviceId = deviceIds[i];
var device = devices[deviceId];
var ed25519Key = device.keys["ed25519:" + deviceId];
if (ed25519Key) {
@@ -279,7 +287,6 @@ MatrixClient.prototype.listDeviceKeys = function(userId) {
}
}
}
}
return result;
};

View File

@@ -32,6 +32,7 @@ describe("MatrixClient crypto", function() {
var bobOneTimeKeys;
var bobDeviceKeys;
var bobDeviceCurve25519Key;
var bobDeviceEd25519Key;
var aliLocalStore;
var aliStorage;
var bobStorage;
@@ -101,6 +102,7 @@ describe("MatrixClient crypto", function() {
expect(bobDeviceKeys).toBeDefined();
expect(bobOneTimeKeys).toBeDefined();
bobDeviceCurve25519Key = bobDeviceKeys.keys["curve25519:bvcxz"];
bobDeviceEd25519Key = bobDeviceKeys.keys["ed25519:bvcxz"];
done();
});
}
@@ -116,7 +118,12 @@ describe("MatrixClient crypto", function() {
result[bobUserId] = bobKeys;
return {device_keys: result};
});
aliClient.downloadKeys([bobUserId]);
aliClient.downloadKeys([bobUserId]).then(function() {
expect(aliClient.listDeviceKeys(bobUserId)).toEqual([{
id: "bvcxz",
key: bobDeviceEd25519Key
}]);
});
httpBackend.flush().done(function() {
var devices = aliStorage.getEndToEndDevicesForUser(bobUserId);
expect(devices).toEqual(bobKeys);