Bug 1143981 - Reroute all fetch tests through a transparent service worker; r=nsm

--HG--
rename : dom/tests/mochitest/fetch/test_request.html => dom/tests/mochitest/fetch/reroute.html
rename : dom/tests/mochitest/fetch/test_request.html => dom/tests/mochitest/fetch/test_fetch_basic_http_sw_reroute.html
rename : dom/tests/mochitest/fetch/test_request.html => dom/tests/mochitest/fetch/test_fetch_basic_sw_reroute.html
rename : dom/tests/mochitest/fetch/test_request.html => dom/tests/mochitest/fetch/test_fetch_cors_sw_reroute.html
rename : dom/tests/mochitest/fetch/test_request.html => dom/tests/mochitest/fetch/test_formdataparsing_sw_reroute.html
rename : dom/tests/mochitest/fetch/test_request.html => dom/tests/mochitest/fetch/test_headers_sw_reroute.html
rename : dom/tests/mochitest/fetch/test_request.html => dom/tests/mochitest/fetch/test_request_sw_reroute.html
rename : dom/tests/mochitest/fetch/test_request.html => dom/tests/mochitest/fetch/test_response_sw_reroute.html
This commit is contained in:
Ehsan Akhgari 2015-05-13 08:56:25 -04:00
parent 9406e010c1
commit 3560287639
14 changed files with 231 additions and 4 deletions

View File

@ -67,8 +67,20 @@ function testScript(script) {
document.body.appendChild(iframe);
}
navigator.serviceWorker.ready.then(setupSW);
navigator.serviceWorker.register("worker_wrapper.js", {scope: "."});
navigator.serviceWorker.register("worker_wrapper.js", {scope: "."})
.then(function(registration) {
if (registration.installing) {
var done = false;
registration.installing.onstatechange = function() {
if (!done) {
done = true;
setupSW(registration);
}
};
} else {
setupSW(registration);
}
});
});
}
@ -104,7 +116,11 @@ function testScript(script) {
return Promise.resolve();
})
.then(function() {
SimpleTest.finish();
if (parent && parent.finishTest) {
parent.finishTest();
} else {
SimpleTest.finish();
}
});
}

View File

@ -12,13 +12,33 @@ support-files =
utils.js
worker_wrapper.js
message_receiver.html
reroute.html
reroute.js
reroute.js^headers^
sw_reroute.js
[test_headers.html]
[test_headers_sw_reroute.html]
skip-if = buildapp == 'b2g' # Bug 1137683
[test_headers_mainthread.html]
[test_fetch_app_protocol.html]
[test_fetch_basic.html]
[test_fetch_basic_sw_reroute.html]
skip-if = buildapp == 'b2g' # Bug 1137683
[test_fetch_basic_http.html]
[test_fetch_basic_http_sw_reroute.html]
skip-if = true # Bug 1122161, need proper support for redirects
#skip-if = buildapp == 'b2g' # Bug 1137683
[test_fetch_cors.html]
[test_fetch_cors_sw_reroute.html]
skip-if = true # Bug 1122161, need proper support for redirects
#skip-if = buildapp == 'b2g' # Bug 1137683
[test_formdataparsing.html]
[test_formdataparsing_sw_reroute.html]
skip-if = buildapp == 'b2g' # Bug 1137683
[test_request.html]
[test_request_sw_reroute.html]
skip-if = buildapp == 'b2g' # Bug 1137683
[test_response.html]
[test_response_sw_reroute.html]
skip-if = buildapp == 'b2g' # Bug 1137683

View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<script>
["SimpleTest", "ok", "info", "is", "$"]
.forEach((v) => window[v] = window.parent[v]);
</script>
<script type="text/javascript" src="utils.js"> </script>
<script type="text/javascript" src="fetch_test_framework.js"> </script>
<script>
testScript(location.search.substring(1) + ".js");
</script>

View File

@ -0,0 +1,3 @@
onfetch = function(e) {
e.respondWith(fetch(e.request));
};

View File

@ -0,0 +1 @@
Service-Worker-Allowed: /

View File

@ -0,0 +1,29 @@
var gRegistration;
function testScript(script) {
function setupSW(registration) {
gRegistration = registration;
var iframe = document.createElement("iframe");
iframe.src = "reroute.html?" + script.replace(".js", "");
document.body.appendChild(iframe);
}
SpecialPowers.pushPrefEnv({
"set": [["dom.serviceWorkers.enabled", true],
["dom.serviceWorkers.testing.enabled", true],
["dom.serviceWorkers.exemptFromPerDomainMax", true]]
}, function() {
navigator.serviceWorker.ready.then(setupSW);
navigator.serviceWorker.register("reroute.js", {scope: "/"});
});
}
function finishTest() {
gRegistration.unregister().then(SimpleTest.finish, function(e) {
dump("unregistration failed: " + e + "\n");
SimpleTest.finish();
});
}
SimpleTest.waitForExplicitFinish();

View File

@ -0,0 +1,22 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1039846 - Test fetch() http fetching in worker</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
<script type="text/javascript" src="sw_reroute.js"> </script>
<script class="testbody" type="text/javascript">
testScript("test_fetch_basic_http.js");
</script>
</body>
</html>

View File

@ -0,0 +1,22 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1039846 - Test fetch() function in worker</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
<script type="text/javascript" src="sw_reroute.js"> </script>
<script class="testbody" type="text/javascript">
testScript("test_fetch_basic.js");
</script>
</body>
</html>

View File

@ -0,0 +1,22 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1039846 - Test fetch() CORS mode</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
<script type="text/javascript" src="sw_reroute.js"> </script>
<script class="testbody" type="text/javascript">
testScript("test_fetch_cors.js");
</script>
</body>
</html>

View File

@ -0,0 +1,22 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1109751 - Test FormData parsing</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
<script type="text/javascript" src="sw_reroute.js"> </script>
<script class="testbody" type="text/javascript">
testScript("test_formdataparsing.js");
</script>
</body>
</html>

View File

@ -0,0 +1,16 @@
<!-- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ -->
<!DOCTYPE HTML>
<html>
<head>
<title>Test Fetch Headers - Basic</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<script type="text/javascript" src="sw_reroute.js"> </script>
<script class="testbody" type="text/javascript">
testScript("test_headers_common.js");
</script>
</body>
</html>

View File

@ -5,7 +5,7 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Bug XXXXXX - Test Request object in worker</title>
<title>Test Request object in worker</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>

View File

@ -0,0 +1,22 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Test Request object in worker</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
<script type="text/javascript" src="sw_reroute.js"> </script>
<script class="testbody" type="text/javascript">
testScript("test_request.js");
</script>
</body>
</html>

View File

@ -0,0 +1,22 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 1039846 - Test Response object in worker</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
<script type="text/javascript" src="sw_reroute.js"> </script>
<script class="testbody" type="text/javascript">
testScript("test_response.js");
</script>
</body>
</html>