summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/service-workers/service-worker/tentative
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/service-workers/service-worker/tentative')
-rw-r--r--testing/web-platform/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js19
-rw-r--r--testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html20
2 files changed, 37 insertions, 2 deletions
diff --git a/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js b/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js
index 4e6f8bb955..c3aef4272f 100644
--- a/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js
+++ b/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js
@@ -39,6 +39,25 @@ const routerRules = {
condition: {requestMethod: String.fromCodePoint(0x3042)},
source: 'network'
}],
+ 'condition-invalid-or-condition-depth': (() => {
+ const max = 10;
+ const addOrCondition = (obj, depth) => {
+ if (depth > max) {
+ return obj;
+ }
+ return {
+ urlPattern: `/foo-${depth}`,
+ or: [addOrCondition(obj, depth + 1)]
+ };
+ };
+ return {condition: addOrCondition({}, 0), source: 'network'};
+ })(),
+ 'condition-invalid-router-size': [...Array(512)].map((val, i) => {
+ return {
+ condition: {urlPattern: `/foo-${i}`},
+ source: 'network'
+ };
+ }),
'condition-request-destination-script-network':
[{condition: {requestDestination: 'script'}, source: 'network'}],
'condition-or-source-network': [{
diff --git a/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html b/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html
index 4ed4ad4b3c..9ef7cfdc9f 100644
--- a/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html
+++ b/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html
@@ -15,8 +15,10 @@
const ROUTER_RULE_KEY_INVALID_REQUEST_METHOD =
'condition-invalid-request-method';
-const ROUTER_RULE_KEY_SOURCE_FETCH_EVENT =
- 'condition-request-source-fetch-event';
+const ROUTER_RULE_KEY_INVALID_OR_CONDITION_DEPTH =
+ 'condition-invalid-or-condition-depth';
+const ROUTER_RULE_KEY_INVALID_ROUTER_SIZE =
+ 'condition-invalid-router-size';
promise_test(async t => {
const worker = await registerAndActivate(t, ROUTER_RULE_KEY_INVALID_REQUEST_METHOD);
@@ -25,5 +27,19 @@ promise_test(async t => {
assert_equals(errors.length, 1);
}, 'addRoutes should raise for invalid request method.');
+promise_test(async t => {
+ const worker = await registerAndActivate(t, ROUTER_RULE_KEY_INVALID_OR_CONDITION_DEPTH);
+ 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 or condition exceeds the depth limit');
+
+promise_test(async t => {
+ const worker = await registerAndActivate(t, ROUTER_RULE_KEY_INVALID_ROUTER_SIZE);
+ 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 number of router rules exceeds the length limit');
+
</script>
</body>