summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/fetch/sw_reroute.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/tests/mochitest/fetch/sw_reroute.js')
-rw-r--r--dom/tests/mochitest/fetch/sw_reroute.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/dom/tests/mochitest/fetch/sw_reroute.js b/dom/tests/mochitest/fetch/sw_reroute.js
new file mode 100644
index 0000000000..73f4aecae6
--- /dev/null
+++ b/dom/tests/mochitest/fetch/sw_reroute.js
@@ -0,0 +1,43 @@
+var gRegistration;
+var iframe;
+
+function testScript(script) {
+ var scope = "./reroute.html?" + script.replace(".js", "");
+ function setupSW(registration) {
+ gRegistration = registration;
+
+ iframe = document.createElement("iframe");
+ iframe.src = scope;
+ document.body.appendChild(iframe);
+ }
+
+ SpecialPowers.pushPrefEnv(
+ {
+ set: [
+ ["dom.serviceWorkers.enabled", true],
+ ["dom.serviceWorkers.testing.enabled", true],
+ ["dom.serviceWorkers.exemptFromPerDomainMax", true],
+ ["dom.serviceWorkers.idle_timeout", 60000],
+ ],
+ },
+ function () {
+ var scriptURL = location.href.includes("sw_empty_reroute.html")
+ ? "empty.js"
+ : "reroute.js";
+ navigator.serviceWorker
+ .register(scriptURL, { scope })
+ .then(swr => waitForState(swr.installing, "activated", swr))
+ .then(setupSW);
+ }
+ );
+}
+
+function finishTest() {
+ iframe.remove();
+ gRegistration.unregister().then(SimpleTest.finish, function (e) {
+ dump("unregistration failed: " + e + "\n");
+ SimpleTest.finish();
+ });
+}
+
+SimpleTest.waitForExplicitFinish();