summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-no-fetch-handler.https.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-no-fetch-handler.https.html')
-rw-r--r--testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-no-fetch-handler.https.html48
1 files changed, 48 insertions, 0 deletions
diff --git a/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-no-fetch-handler.https.html b/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-no-fetch-handler.https.html
new file mode 100644
index 0000000000..e98dd08a90
--- /dev/null
+++ b/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-no-fetch-handler.https.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>
+ Static Router: routers are evaluated when there is no fetch handler.
+</title>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/service-workers/service-worker/resources/test-helpers.sub.js">
+</script>
+<script src="resources/static-router-helpers.sub.js">
+</script>
+<body>
+<script>
+const RULE_KEY_SOURCE_CACHE = 'condition-urlpattern-string-source-cache';
+const RULE_KEY_SOURCE_FETCH_EVENT =
+ 'condition-request-source-fetch-event';
+const SW_SRC = 'resources/static-router-no-fetch-handler-sw.js';
+const CACHED_FILE = 'cache.txt';
+
+promise_test(async t => {
+ const worker = await registerAndActivate(t, RULE_KEY_SOURCE_CACHE, SW_SRC);
+
+ // Matched with the main reosurce load.
+ const {contentWindow} = await createIframe(t, `resources/${CACHED_FILE}`);
+ assert_equals(contentWindow.document.body.innerText, "From cache");
+
+ // Matched with the subreosurce load.
+ const response = await contentWindow.fetch(CACHED_FILE);
+ assert_equals(response.status, 200);
+ assert_equals(await response.text(), "From cache");
+
+ // Both requests are served from cache.
+ const {requests} = await get_info_from_worker(worker);
+ assert_equals(requests.length, 0);
+}, 'The router rule is evaluated without fetch handlers in service worker');
+
+promise_test(async t => {
+ const worker =
+ await registerAndActivate(t, RULE_KEY_SOURCE_FETCH_EVENT, SW_SRC);
+ t.add_cleanup(() => {reset_info_in_worker(worker)});
+
+ const {errors} = await get_info_from_worker(worker);
+ assert_equals(errors.length, 1);
+}, 'addRoutes should raise if the fetch-event source is used without onfetch')
+
+</script>
+</body>