From 3c7b3c832688f3221eaa383bcc26dfbb5394470e Mon Sep 17 00:00:00 2001 From: William Chen Date: Sat, 19 Mar 2016 00:35:57 -0700 Subject: [PATCH] Bug 1164432 - Update test_try_registering_offline_disabled.html to use mock push server. r=kitcambridge, a=test-only --- dom/push/test/mochitest.ini | 3 +-- dom/push/test/mockpushserviceparent.js | 10 ++++--- ...test_try_registering_offline_disabled.html | 27 ++++++++++--------- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/dom/push/test/mochitest.ini b/dom/push/test/mochitest.ini index 383c2d44627..d9339aa4bdd 100644 --- a/dom/push/test/mochitest.ini +++ b/dom/push/test/mochitest.ini @@ -18,6 +18,5 @@ skip-if = os == "android" || toolkit == "gonk" [test_multiple_register_different_scope.html] [test_subscription_change.html] [test_data.html] -# Disabled for too many intermittent failures (bug 1164432) -# [test_try_registering_offline_disabled.html] +[test_try_registering_offline_disabled.html] [test_serviceworker_lifetime.html] diff --git a/dom/push/test/mockpushserviceparent.js b/dom/push/test/mockpushserviceparent.js index 41da8a0b299..344dbf249ae 100644 --- a/dom/push/test/mockpushserviceparent.js +++ b/dom/push/test/mockpushserviceparent.js @@ -85,13 +85,17 @@ var mockWebSocket; addMessageListener("setup", function () { mockWebSocket = new Promise((resolve, reject) => { + var mockSocket = null; pushService.replaceServiceBackend({ serverURI: "wss://push.example.org/", networkInfo: new MockNetworkInfo(), makeWebSocket(uri) { - var socket = new MockWebSocketParent(uri); - resolve(socket); - return socket; + if (!mockSocket) { + mockSocket = new MockWebSocketParent(uri); + resolve(mockSocket); + } + + return mockSocket; } }); }); diff --git a/dom/push/test/test_try_registering_offline_disabled.html b/dom/push/test/test_try_registering_offline_disabled.html index 18760d94a7e..e2a801838c4 100644 --- a/dom/push/test/test_try_registering_offline_disabled.html +++ b/dom/push/test/test_try_registering_offline_disabled.html @@ -10,6 +10,7 @@ http://creativecommons.org/licenses/publicdomain/ Test for Bug 1150812 + @@ -86,6 +87,17 @@ http://creativecommons.org/licenses/publicdomain/ }); } + // Load chrome script to change offline status in the + // parent process. + var chromeScript = SpecialPowers.loadChromeScript(_ => { + var { classes: Cc, interfaces: Ci } = Components; + var ioService = Cc["@mozilla.org/network/io-service;1"] + .getService(Ci.nsIIOService); + addMessageListener("change-status", function(offline) { + ioService.offline = offline; + }); + }); + function offlineObserver(res) { this._res = res; } @@ -110,16 +122,13 @@ http://creativecommons.org/licenses/publicdomain/ obsService.addObserver(SpecialPowers.wrapCallbackObject(new offlineObserver(res)), "network:offline-status-changed", false); - var ioService = SpecialPowers.Cc["@mozilla.org/network/io-service;1"] - .getService(SpecialPowers.Ci.nsIIOService); - ioService.offline = offline; + chromeScript.sendAsyncMessage("change-status", offline); }); } function changePushServerConnectionEnabled(enable) { debug("changePushServerConnectionEnabled"); - SpecialPowers.pushPrefEnv({"set": [["dom.push.connection.enabled", enable]]}, - null); + SpecialPowers.setBoolPref("dom.push.connection.enabled", enable); } function unsubscribe(sub) { @@ -287,13 +296,7 @@ http://creativecommons.org/licenses/publicdomain/ .then(SimpleTest.finish); } - SpecialPowers.pushPrefEnv({"set": [ - ["dom.push.enabled", true], - ["dom.push.connection.enabled", true], - ["dom.serviceWorkers.exemptFromPerDomainMax", true], - ["dom.serviceWorkers.enabled", true], - ["dom.serviceWorkers.testing.enabled", true] - ]}, runTest); + setupPrefsAndMock(new MockWebSocket()).then(_ => runTest()); SpecialPowers.addPermission("desktop-notification", true, document); SimpleTest.waitForExplicitFinish();