author | Mark Banner <standard8@mozilla.com> |
Fri, 01 May 2015 18:02:03 +0100 | |
changeset 242007 | 20d215b7378b769f47881ae815f96708d91b0a1e |
parent 242006 | 3e1cb78ad72beeab811453987537f1bf1e087da5 |
child 242008 | 263afadf0838ca9921e04df9b46e60636b41df03 |
push id | 28673 |
push user | kwierso@gmail.com |
push date | Sat, 02 May 2015 00:14:13 +0000 |
treeherder | mozilla-central@47ea4e2d91ed [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mikedeboer |
bugs | 1153806 |
milestone | 40.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
browser/components/loop/modules/LoopRooms.jsm | file | annotate | diff | comparison | revisions | |
browser/components/loop/test/xpcshell/test_looprooms.js | file | annotate | diff | comparison | revisions |
--- a/browser/components/loop/modules/LoopRooms.jsm +++ b/browser/components/loop/modules/LoopRooms.jsm @@ -213,21 +213,16 @@ let LoopRoomsInternal = { serverRoomData.roomName = roomData.decryptedContext.roomName; return { all: roomData, encrypted: serverRoomData }; } - // For now, disable encryption/context if context is disabled - if (!MozLoopService.getLoopPref("contextInConverations.enabled")) { - return getUnencryptedData(); - } - var newRoomData = extend({}, roomData); if (!newRoomData.context) { newRoomData.context = {}; } // First get the room key. let key = yield this.promiseGetOrCreateRoomKey(newRoomData); @@ -695,17 +690,18 @@ let LoopRoomsInternal = { let {all, encrypted} = yield this.promiseEncryptRoomData(roomData); // For patch, we only send the context data. let sendData = { context: encrypted.context }; // If we're not encrypting currently, then only send the roomName. - if (!Services.prefs.getBoolPref("loop.contextInConverations.enabled")) { + // XXX This should go away once bug 1153788 is fixed. + if (!sendData.context) { sendData = { roomName: newRoomName }; } let response = yield MozLoopService.hawkRequest(this.sessionType, url, "PATCH", sendData);
--- a/browser/components/loop/test/xpcshell/test_looprooms.js +++ b/browser/components/loop/test/xpcshell/test_looprooms.js @@ -6,18 +6,16 @@ Cu.import("resource://services-common/utils.js"); Cu.import("resource:///modules/loop/LoopRooms.jsm"); Cu.import("resource:///modules/Chat.jsm"); Cu.import("resource://gre/modules/Promise.jsm"); let openChatOrig = Chat.open; -const kContextEnabledPref = "loop.contextInConverations.enabled"; - const kGuestKey = "uGIs-kGbYt1hBBwjyW7MLQ"; // Rooms details as responded by the server. const kRoomsResponses = new Map([ ["_nxD4V4FflQ", { roomToken: "_nxD4V4FflQ", // Encrypted with roomKey "FliIGLUolW-xkKZVWstqKw". // roomKey is wrapped with kGuestKey. @@ -294,24 +292,20 @@ add_task(function* setup_server() { loopServer.registerPathHandler("/rooms", (req, res) => { res.setStatusLine(null, 200, "OK"); if (req.method == "POST") { Assert.ok(req.bodyInputStream, "POST request should have a payload"); let body = CommonUtils.readBytesFromInputStream(req.bodyInputStream); let data = JSON.parse(body); - if (Services.prefs.getBoolPref(kContextEnabledPref)) { - Assert.equal(data.roomOwner, kCreateRoomProps.roomOwner); - Assert.equal(data.maxSize, kCreateRoomProps.maxSize); - Assert.ok(!("decryptedContext" in data), "should not have any decrypted data"); - Assert.ok("context" in data, "should have context"); - } else { - Assert.deepEqual(data, kCreateRoomUnencryptedProps); - } + Assert.equal(data.roomOwner, kCreateRoomProps.roomOwner); + Assert.equal(data.maxSize, kCreateRoomProps.maxSize); + Assert.ok(!("decryptedContext" in data), "should not have any decrypted data"); + Assert.ok("context" in data, "should have context"); res.write(JSON.stringify(kCreateRoomData)); } else { if (req.queryString) { let qs = parseQueryString(req.queryString); let room = kRoomsResponses.get("_nxD4V4FflQ"); room.participants = kRoomUpdates[qs.version].participants; room.deleted = kRoomUpdates[qs.version].deleted; @@ -348,25 +342,21 @@ add_task(function* setup_server() { if (req.method == "POST") { let data = getJSONData(req.bodyInputStream); res.setStatusLine(null, 200, "OK"); res.write(JSON.stringify(data)); res.processAsync(); res.finish(); } else if (req.method == "PATCH") { let data = getJSONData(req.bodyInputStream); - if (Services.prefs.getBoolPref(kContextEnabledPref)) { - Assert.ok("context" in data, "should have encrypted context"); - // We return a fake encrypted name here as the context is - // encrypted. - returnRoomDetails(res, "fakeEncrypted"); - } else { - Assert.ok(!("context" in data), "should not have encrypted context"); - returnRoomDetails(res, data.roomName); - } + + Assert.ok("context" in data, "should have encrypted context"); + // We return a fake encrypted name here as the context is + // encrypted. + returnRoomDetails(res, "fakeEncrypted"); } else { roomDetail.context = room.context; res.setStatusLine(null, 200, "OK"); res.write(JSON.stringify(roomDetail)); res.processAsync(); res.finish(); } }); @@ -410,30 +400,16 @@ add_task(function* test_getRoom() { // Test if fetching a room with incorrect token or return values yields an error. add_task(function* test_errorStates() { yield Assert.rejects(LoopRooms.promise("get", "error401"), /Not Found/, "Fetching a non-existent room should fail"); yield Assert.rejects(LoopRooms.promise("get", "errorMalformed"), /SyntaxError/, "Wrong message format should reject"); }); // Test if creating a new room works as expected. add_task(function* test_createRoom() { - Services.prefs.setBoolPref(kContextEnabledPref, true); - - var expectedRoom = extend({}, kCreateRoomProps); - expectedRoom.roomToken = kCreateRoomData.roomToken; - - gExpectedAdds.push(expectedRoom); - let room = yield LoopRooms.promise("create", kCreateRoomProps); - compareRooms(room, expectedRoom); -}); - -// XXX Test unencrypted rooms. This will go away once we switch encryption on. -add_task(function* test_createRoom_unencrypted() { - Services.prefs.setBoolPref(kContextEnabledPref, false); - var expectedRoom = extend({}, kCreateRoomProps); expectedRoom.roomToken = kCreateRoomData.roomToken; gExpectedAdds.push(expectedRoom); let room = yield LoopRooms.promise("create", kCreateRoomProps); compareRooms(room, expectedRoom); }); @@ -596,29 +572,21 @@ add_task(function* test_sendConnectionSt extraData.action = "status"; extraData.sessionToken = "fakeStatusSessionToken"; Assert.deepEqual(statusData, extraData); }); // Test if renaming a room works as expected. add_task(function* test_renameRoom() { - Services.prefs.setBoolPref(kContextEnabledPref, true); let roomToken = "_nxD4V4FflQ"; let renameData = yield LoopRooms.promise("rename", roomToken, "fakeName"); Assert.equal(renameData.roomName, "fakeEncrypted", "should have set the new name"); }); -add_task(function* test_renameRoom_unencrpyted() { - Services.prefs.setBoolPref(kContextEnabledPref, false); - let roomToken = "_nxD4V4FflQ"; - let renameData = yield LoopRooms.promise("rename", roomToken, "fakeName"); - Assert.equal(renameData.roomName, "fakeName", "should have set the new name"); -}); - add_task(function* test_roomDeleteNotifications() { gExpectedDeletes.push("_nxD4V4FflQ"); roomsPushNotification("5", kChannelGuest); yield waitForCondition(() => gExpectedDeletes.length === 0); }); // Test if deleting a room works as expected. add_task(function* test_deleteRoom() { @@ -652,17 +620,16 @@ function run_test() { LoopRooms.on("delete", onRoomDeleted); LoopRooms.on("joined", onRoomJoined); LoopRooms.on("left", onRoomLeft); LoopRooms.on("refresh", onRefresh); do_register_cleanup(function () { // Revert original Chat.open implementation Chat.open = openChatOrig; - Services.prefs.clearUserPref(kContextEnabledPref); Services.prefs.clearUserPref("loop.key"); MozLoopServiceInternal.fxAOAuthTokenData = null; MozLoopServiceInternal.fxAOAuthProfile = null; LoopRooms.off("add", onRoomAdded); LoopRooms.off("update", onRoomUpdated); LoopRooms.off("delete", onRoomDeleted);