diff options
Diffstat (limited to 'test/wpt/tests/service-workers/service-worker/controller-with-no-fetch-event-handler.https.html')
-rw-r--r-- | test/wpt/tests/service-workers/service-worker/controller-with-no-fetch-event-handler.https.html | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/test/wpt/tests/service-workers/service-worker/controller-with-no-fetch-event-handler.https.html b/test/wpt/tests/service-workers/service-worker/controller-with-no-fetch-event-handler.https.html new file mode 100644 index 0000000..d947139 --- /dev/null +++ b/test/wpt/tests/service-workers/service-worker/controller-with-no-fetch-event-handler.https.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Service Worker: controller without a fetch event handler</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="resources/test-helpers.sub.js?pipe=sub"></script> +<body> +<script> +let registration; +let frame; +const host_info = get_host_info(); +const remote_base_url = + new URL(`${host_info.HTTPS_REMOTE_ORIGIN}${base_path()}resources/`); + +promise_test(async t => { + const script = 'resources/empty.js' + const scope = 'resources/'; + + promise_test(async t => { + if (frame) + frame.remove(); + + if (registration) + await registration.unregister(); + }, 'cleanup global state'); + + registration = await + service_worker_unregister_and_register(t, script, scope); + await wait_for_state(t, registration.installing, 'activated'); + frame = await with_iframe(scope + 'blank.html'); +}, 'global setup'); + +promise_test(async t => { + const url = new URL('cors-approved.txt', remote_base_url); + const response = await frame.contentWindow.fetch(url, {mode:'no-cors'}); + const text = await response.text(); + assert_equals(text, ''); +}, 'cross-origin request, no-cors mode'); + + +promise_test(async t => { + const url = new URL('cors-denied.txt', remote_base_url); + const response = frame.contentWindow.fetch(url); + await promise_rejects_js(t, frame.contentWindow.TypeError, response); +}, 'cross-origin request, cors denied'); + +promise_test(async t => { + const url = new URL('cors-approved.txt', remote_base_url); + response = await frame.contentWindow.fetch(url); + let text = await response.text(); + text = text.trim(); + assert_equals(text, 'plaintext'); +}, 'cross-origin request, cors approved'); +</script> +</body> |