blob: ce68ad52e2b5c8978f9543fc630d5eae0249ca75 [file] [log] [blame]
<html>
<head>
<script src="resources/sw-test-pre.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
promise_test(test => {
// Triggering potential preflight through custom header.
var fetchPromise = fetch("http://localhost:8080/resources/square100.png.fromserviceworker", { headers: {"custom": "header"}});
return promise_rejects_js(test, TypeError, fetchPromise);
}, "Testing unintercepted fetch with preflight, fetch should fail");
var frame;
promise_test(async test => {
frame = await interceptedFrame("resources/service-worker-crossorigin-fetch-worker.js", "/workers/service/resources/");
}, "Registering service worker and controlled frame");
promise_test(async test => {
// Triggering potential preflight through custom header.
var response = await frame.contentWindow.fetch("http://localhost:8080/resources/square100.png.fromserviceworker", { headers: {"custom": "header"}});
var buffer = await response.arrayBuffer();
assert_true(buffer.byteLength > 0);
}, "Testing intercepted fetch with preflight, fetch should succeed");
promise_test(test => {
// Triggering potential preflight through custom header.
var fetchPromise = frame.contentWindow.fetch("http://localhost:8080/resources/square100.png.error.fromserviceworker", { headers: {"custom": "header"}});
return promise_rejects_js(test, frame.contentWindow.TypeError, fetchPromise);
}, "Testing intercepted fetch with preflight, fetch should fail");
</script>
</body>
</html>