mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 01:05:45 +00:00
25349d2601
Differential Revision: https://phabricator.services.mozilla.com/D17526 --HG-- extra : moz-landing-system : lando
44 lines
1.8 KiB
JavaScript
44 lines
1.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/* Ensure that clicking the button in the Offline mode neterror page makes the browser go online. See bug 435325. */
|
|
|
|
add_task(async function checkSwitchPageToOnlineMode() {
|
|
// Go offline and disable the proxy and cache, then try to load the test URL.
|
|
Services.io.offline = true;
|
|
|
|
// Tests always connect to localhost, and per bug 87717, localhost is now
|
|
// reachable in offline mode. To avoid this, disable any proxy.
|
|
let proxyPrefValue = SpecialPowers.getIntPref("network.proxy.type");
|
|
await SpecialPowers.pushPrefEnv({"set": [
|
|
["network.proxy.type", 0],
|
|
["browser.cache.disk.enable", false],
|
|
["browser.cache.memory.enable", false],
|
|
]});
|
|
|
|
await BrowserTestUtils.withNewTab("about:blank", async function(browser) {
|
|
let netErrorLoaded = BrowserTestUtils.waitForErrorPage(browser);
|
|
|
|
await BrowserTestUtils.loadURI(browser, "http://example.com/");
|
|
await netErrorLoaded;
|
|
|
|
// Re-enable the proxy so example.com is resolved to localhost, rather than
|
|
// the actual example.com.
|
|
await SpecialPowers.pushPrefEnv({"set": [["network.proxy.type", proxyPrefValue]]});
|
|
let changeObserved = TestUtils.topicObserved("network:offline-status-changed");
|
|
|
|
// Click on the 'Try again' button.
|
|
await ContentTask.spawn(browser, null, async function() {
|
|
ok(content.document.documentURI.startsWith("about:neterror?e=netOffline"), "Should be showing error page");
|
|
content.document.getElementById("errorTryAgain").click();
|
|
});
|
|
|
|
await changeObserved;
|
|
ok(!Services.io.offline, "After clicking the 'Try Again' button, we're back online.");
|
|
});
|
|
});
|
|
|
|
registerCleanupFunction(function() {
|
|
Services.io.offline = false;
|
|
});
|