summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js
blob: c3aef4272f2cf5e9e2b54fbf0fd72557ae46221a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
const routerRules = {
  'condition-urlpattern-constructed-source-network': [{
    condition: {urlPattern: new URLPattern({pathname: '/**/direct.txt'})},
    source: 'network'
  }],
  'condition-urlpattern-urlpatterninit-source-network': [
    {condition: {urlPattern: {pathname: '/**/direct.txt'}}, source: 'network'},
  ],
  'condition-urlpattern-string-source-network': [
    {condition: {urlPattern: '/**/direct.txt'}, source: 'network'},
  ],
  'condition-urlpattern-string-source-cache': [
    {condition: {urlPattern: '/**/cache.txt'}, source: 'cache'},
  ],
  'condition-urlpattern-constructed-ignore-case-source-network': [{
    condition: {
      urlPattern:
          new URLPattern({pathname: '/**/DiReCT.TxT'}, {ignoreCase: true})
    },
    source: 'network'
  }],
  'condition-urlpattern-constructed-respect-case-source-network': [{
    condition: {urlPattern: new URLPattern({pathname: '/**/DiReCT.TxT'})},
    source: 'network'
  }],
  'condition-request-source-network':
      [{condition: {requestMode: 'no-cors'}, source: 'network'}],
  'condition-request-navigate-source-cache':
      [{condition: {requestMode: 'navigate'}, source: 'cache'}],
  'condition-request-method-get-network':
      [{condition: {requestMethod: 'GET'}, source: 'network'}],
  'condition-request-method-post-network':
      [{condition: {requestMethod: 'POST'}, source: 'network'}],
  'condition-request-method-put-network':
      [{condition: {requestMethod: 'PUT'}, source: 'network'}],
  'condition-request-method-delete-network':
      [{condition: {requestMethod: 'DELETE'}, source: 'network'}],
  'condition-invalid-request-method': [{
    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': [{
    condition: {
      or: [
        {
          or: [{urlPattern: '/**/or-test/direct1.*??*'}],
        },
        {urlPattern: '/**/or-test/direct2.*??*'}
      ]
    },
    source: 'network'
  }],
  'condition-request-source-fetch-event':
      [{condition: {requestMode: 'no-cors'}, source: 'fetch-event'}],
  'condition-urlpattern-string-source-fetch-event':
      [{condition: {urlPattern: '/**/*'}, source: 'fetch-event'}],
  'multiple-router-rules': [
    {
      condition: {
        urlPattern: '/**/direct.txt',
      },
      source: 'network'
    },
    {condition: {urlPattern: '/**/direct.html'}, source: 'network'}
  ],
  'condition-urlpattern-string-source-race-network-and-fetch-handler': [
    {
      condition: {urlPattern: '/**/direct.py'},
      source: 'race-network-and-fetch-handler'
    },
  ],
};

export {routerRules};