/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
add_task(async
function test_set_tab_offline() {
await BrowserTestUtils.withNewTab(
"https://example.com", async browser => {
// Set the tab to offline
gBrowser.selectedBrowser.browsingContext.forceOffline =
true;
await SpecialPowers.spawn(browser, [], async () => {
try {
await content.fetch(
"https://example.com/empty.html");
ok(
false,
"Should not load since tab is offline");
}
catch (err) {
is(err.name,
"TypeError",
"Should fail since tab is offline");
}
});
});
});
add_task(async
function test_set_tab_online() {
await BrowserTestUtils.withNewTab(
"https://example.com", async browser => {
// Set the tab to online
gBrowser.selectedBrowser.browsingContext.forceOffline =
false;
await SpecialPowers.spawn(browser, [], async () => {
try {
await content.fetch(
"https://example.com/empty.html");
ok(
true,
"Should load since tab is online");
}
catch (err) {
ok(
false,
"Should not fail since tab is online");
}
});
});
});
add_task(async
function test_set_tab_offline_events() {
await BrowserTestUtils.withNewTab(
"https://example.com", async browser => {
await SpecialPowers.spawn(browser, [], async () => {
content.events = [];
content.window.addEventListener(
"offline", () =>
content.events.push(
"offline")
);
content.window.addEventListener(
"online", () =>
content.events.push(
"online")
);
});
gBrowser.selectedBrowser.browsingContext.forceOffline =
true;
Assert.deepEqual(
await SpecialPowers.spawn(browser, [], async () => content.events),
[
"offline"],
"events should be fired"
);
gBrowser.selectedBrowser.browsingContext.forceOffline =
false;
Assert.deepEqual(
await SpecialPowers.spawn(browser, [], async () => content.events),
[
"offline",
"online"],
"events should be fired"
);
});
});