OLD | NEW |
1 if (self.importScripts) { | 1 if (self.importScripts) { |
2 importScripts('../resources/fetch-test-helpers.js'); | 2 importScripts('../resources/fetch-test-helpers.js'); |
3 importScripts('/serviceworker/resources/fetch-access-control-util.js'); | 3 importScripts('/serviceworker/resources/fetch-access-control-util.js'); |
4 } | 4 } |
5 | 5 |
| 6 // Tests for CORS check and CORS filtered response. |
| 7 |
6 var TEST_TARGETS = [ | 8 var TEST_TARGETS = [ |
7 // CORS test | 9 // CORS test |
8 [OTHER_BASE_URL + 'method=GET&headers=CUSTOM', | |
9 [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque], | |
10 onlyOnServiceWorkerProxiedTest([methodIsGET, noCustomHeader, authCheck2])], | |
11 [OTHER_BASE_URL + 'method=POST&headers=CUSTOM', | |
12 [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque], | |
13 onlyOnServiceWorkerProxiedTest([methodIsPOST, noCustomHeader])], | |
14 [OTHER_BASE_URL + 'method=PUT&headers=CUSTOM', | |
15 [fetchError]], | |
16 [OTHER_BASE_URL + 'method=XXX&headers=CUSTOM', | |
17 [fetchError]], | |
18 | 10 |
19 [OTHER_BASE_URL + 'mode=same-origin&method=GET', [fetchRejected]], | 11 [OTHER_BASE_URL + 'mode=same-origin&method=GET', [fetchRejected]], |
20 [OTHER_BASE_URL + 'mode=same-origin&method=POST', [fetchRejected]], | 12 [OTHER_BASE_URL + 'mode=same-origin&method=POST', [fetchRejected]], |
21 [OTHER_BASE_URL + 'mode=same-origin&method=PUT', [fetchRejected]], | 13 [OTHER_BASE_URL + 'mode=same-origin&method=PUT', [fetchRejected]], |
22 [OTHER_BASE_URL + 'mode=same-origin&method=XXX', [fetchRejected]], | 14 [OTHER_BASE_URL + 'mode=same-origin&method=XXX', [fetchRejected]], |
23 | 15 |
24 [OTHER_BASE_URL + 'mode=no-cors&method=GET&headers=CUSTOM', | |
25 [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque], | |
26 onlyOnServiceWorkerProxiedTest([methodIsGET, noCustomHeader, authCheck2])], | |
27 [OTHER_BASE_URL + 'mode=no-cors&method=POST&headers=CUSTOM', | |
28 [fetchResolved, noContentLength, noServerHeader, noBody, typeOpaque], | |
29 onlyOnServiceWorkerProxiedTest([methodIsPOST, noCustomHeader])], | |
30 [OTHER_BASE_URL + 'mode=no-cors&method=PUT&headers=CUSTOM', | |
31 [fetchError]], | |
32 [OTHER_BASE_URL + 'mode=no-cors&method=XXX&headers=CUSTOM', | |
33 [fetchError]], | |
34 | |
35 // method=GET | 16 // method=GET |
36 | 17 |
37 // CORS check | 18 // CORS check |
38 // https://fetch.spec.whatwg.org/#concept-cors-check | 19 // https://fetch.spec.whatwg.org/#concept-cors-check |
39 // Tests for Access-Control-Allow-Origin header. | 20 // Tests for Access-Control-Allow-Origin header. |
40 [OTHER_BASE_URL + 'mode=cors&method=GET', | 21 [OTHER_BASE_URL + 'mode=cors&method=GET', |
41 [fetchRejected]], | 22 [fetchRejected]], |
42 [OTHER_BASE_URL + 'mode=cors&method=GET&ACAOrigin=*', | 23 [OTHER_BASE_URL + 'mode=cors&method=GET&ACAOrigin=*', |
43 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | 24 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], |
44 [methodIsGET, authCheckNone]], | 25 [methodIsGET, authCheckNone]], |
(...skipping 17 matching lines...) Expand all Loading... |
62 [fetchResolved, noContentLength, hasServerHeader, hasBody, typeCors], | 43 [fetchResolved, noContentLength, hasServerHeader, hasBody, typeCors], |
63 [methodIsGET]], | 44 [methodIsGET]], |
64 [OTHER_BASE_URL + 'mode=cors&method=GET&ACAOrigin=*&ACEHeaders=Content-Length,
X-ServiceWorker-ServerHeader', | 45 [OTHER_BASE_URL + 'mode=cors&method=GET&ACAOrigin=*&ACEHeaders=Content-Length,
X-ServiceWorker-ServerHeader', |
65 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | 46 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], |
66 [methodIsGET]], | 47 [methodIsGET]], |
67 [OTHER_BASE_URL + 'mode=cors&method=GET&ACAOrigin=' + BASE_ORIGIN + | 48 [OTHER_BASE_URL + 'mode=cors&method=GET&ACAOrigin=' + BASE_ORIGIN + |
68 '&ACEHeaders=Content-Length, X-ServiceWorker-ServerHeader', | 49 '&ACEHeaders=Content-Length, X-ServiceWorker-ServerHeader', |
69 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | 50 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], |
70 [methodIsGET]], | 51 [methodIsGET]], |
71 | 52 |
72 // CORS preflight fetch | |
73 // https://fetch.spec.whatwg.org/#cors-preflight-fetch | |
74 // Tests for Access-Control-Allow-Headers header. | |
75 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM', | |
76 [fetchRejected]], | |
77 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*', | |
78 [fetchRejected]], | |
79 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=' + | |
80 BASE_ORIGIN, | |
81 [fetchRejected]], | |
82 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&ACAHeaders=
x-serviceworker-test', | |
83 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
84 [methodIsGET, hasCustomHeader]], | |
85 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=' + | |
86 BASE_ORIGIN + '&ACAHeaders=x-serviceworker-test', | |
87 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
88 [methodIsGET, hasCustomHeader]], | |
89 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&ACAHeaders=
x-serviceworker-test&ACEHeaders=Content-Length, X-ServiceWorker-ServerHeader', | |
90 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
91 [methodIsGET, hasCustomHeader]], | |
92 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=' + | |
93 BASE_ORIGIN + | |
94 '&ACAHeaders=x-serviceworker-test&ACEHeaders=Content-Length, X-ServiceWorker-
ServerHeader', | |
95 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
96 [methodIsGET, hasCustomHeader]], | |
97 | |
98 // Test that Access-Control-Allow-Headers is checked in CORS preflight fetch. | |
99 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAHeaders=x-serviceworker-test&PreflightTest=200', | |
100 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
101 [methodIsGET, hasCustomHeader]], | |
102 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&ACAHeaders=x-serviceworker-test&PreflightTest=200', | |
103 [fetchRejected]], | |
104 | |
105 // Test that CORS check is done in both preflight and main fetch. | |
106 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAHeaders
=x-serviceworker-test&PreflightTest=200', | |
107 [fetchRejected]], | |
108 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&PACAOrigin=*&PACAHeader
s=x-serviceworker-test&PreflightTest=200', | |
109 [fetchRejected]], | |
110 | |
111 // Test that Access-Control-Expose-Headers of CORS preflight is ignored. | |
112 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAHeaders=x-serviceworker-test&PACEHeaders=Content-Length, X-ServiceWorker-S
erverHeader&PreflightTest=200', | |
113 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
114 [methodIsGET, hasCustomHeader]], | |
115 | |
116 // Test that CORS preflight with Status 2XX succeeds. | |
117 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAHeaders=x-serviceworker-test&PreflightTest=201', | |
118 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
119 [methodIsGET, hasCustomHeader]], | |
120 | |
121 // Test that CORS preflight with Status other than 2XX fails. | |
122 // https://crbug.com/452394 | |
123 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAHeaders=x-serviceworker-test&PreflightTest=301', | |
124 [fetchRejected]], | |
125 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAHeaders=x-serviceworker-test&PreflightTest=401', | |
126 [fetchRejected]], | |
127 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAHeaders=x-serviceworker-test&PreflightTest=500', | |
128 [fetchRejected]], | |
129 | |
130 // Test CORS preflight with multiple request headers. | |
131 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-servicEworker-u, x-servicEworker-ua, x-servicewOrker-test, x-sE
rviceworker-s, x-sErviceworker-v&PreflightTest=200', | |
132 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
133 [methodIsGET, hasCustomHeader2]], | |
134 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-servicewOrker-test&PreflightTest=200', | |
135 [fetchRejected]], | |
136 | |
137 // Test request headers sent in CORS preflight requests. | |
138 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAHeaders=x-serviceworker-test&PreflightTest=200&PACRMethod=GET&PACRHeaders=
x-serviceworker-test', | |
139 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
140 [methodIsGET, hasCustomHeader]], | |
141 // Test Access-Control-Request-Headers is sorted https://crbug.com/452391 | |
142 [OTHER_BASE_URL + 'mode=cors&method=GET&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-servicEworker-u, x-servicEworker-ua, x-servicewOrker-test, x-sE
rviceworker-s, x-sErviceworker-v&PreflightTest=200&PACRMethod=GET&PACRHeaders=x-
serviceworker-s, x-serviceworker-test, x-serviceworker-u, x-serviceworker-ua, x-
serviceworker-v', | |
143 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
144 [methodIsGET, hasCustomHeader2]], | |
145 | |
146 // method=POST | 53 // method=POST |
147 | 54 |
148 // CORS check | 55 // CORS check |
149 // https://fetch.spec.whatwg.org/#concept-cors-check | 56 // https://fetch.spec.whatwg.org/#concept-cors-check |
150 // Tests for Access-Control-Allow-Origin header. | 57 // Tests for Access-Control-Allow-Origin header. |
151 [OTHER_BASE_URL + 'mode=cors&method=POST', | 58 [OTHER_BASE_URL + 'mode=cors&method=POST', |
152 [fetchRejected]], | 59 [fetchRejected]], |
153 [OTHER_BASE_URL + 'mode=cors&method=POST&ACAOrigin=*', | 60 [OTHER_BASE_URL + 'mode=cors&method=POST&ACAOrigin=*', |
154 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | 61 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], |
155 [methodIsPOST]], | 62 [methodIsPOST]], |
(...skipping 16 matching lines...) Expand all Loading... |
172 '&ACEHeaders=X-ServiceWorker-ServerHeader', | 79 '&ACEHeaders=X-ServiceWorker-ServerHeader', |
173 [fetchResolved, noContentLength, hasServerHeader, hasBody, typeCors], | 80 [fetchResolved, noContentLength, hasServerHeader, hasBody, typeCors], |
174 [methodIsPOST]], | 81 [methodIsPOST]], |
175 [OTHER_BASE_URL + 'mode=cors&method=POST&ACAOrigin=*&ACEHeaders=Content-Length
, X-ServiceWorker-ServerHeader', | 82 [OTHER_BASE_URL + 'mode=cors&method=POST&ACAOrigin=*&ACEHeaders=Content-Length
, X-ServiceWorker-ServerHeader', |
176 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | 83 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], |
177 [methodIsPOST]], | 84 [methodIsPOST]], |
178 [OTHER_BASE_URL + 'mode=cors&method=POST&ACAOrigin=' + BASE_ORIGIN + | 85 [OTHER_BASE_URL + 'mode=cors&method=POST&ACAOrigin=' + BASE_ORIGIN + |
179 '&ACEHeaders=Content-Length, X-ServiceWorker-ServerHeader', | 86 '&ACEHeaders=Content-Length, X-ServiceWorker-ServerHeader', |
180 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | 87 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], |
181 [methodIsPOST]], | 88 [methodIsPOST]], |
182 | |
183 // CORS preflight fetch | |
184 // https://fetch.spec.whatwg.org/#cors-preflight-fetch | |
185 // Tests for Access-Control-Allow-Headers header. | |
186 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM', | |
187 [fetchRejected]], | |
188 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*', | |
189 [fetchRejected]], | |
190 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&ACAHeaders
=x-serviceworker-test', | |
191 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
192 [methodIsPOST, hasCustomHeader]], | |
193 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&ACAHeaders
=x-serviceworker-test&ACEHeaders=Content-Length, X-ServiceWorker-ServerHeader', | |
194 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
195 [methodIsPOST, hasCustomHeader]], | |
196 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=' + | |
197 BASE_ORIGIN, | |
198 [fetchRejected]], | |
199 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=' + | |
200 BASE_ORIGIN + '&ACAHeaders=x-serviceworker-test', | |
201 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
202 [methodIsPOST, hasCustomHeader]], | |
203 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=' + | |
204 BASE_ORIGIN + | |
205 '&ACAHeaders=x-serviceworker-test&ACEHeaders=Content-Length, X-ServiceWorker-
ServerHeader', | |
206 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
207 [methodIsPOST, hasCustomHeader]], | |
208 | |
209 // Test that Access-Control-Allow-Headers is checked in CORS preflight fetch. | |
210 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-serviceworker-test&PreflightTest=200', | |
211 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
212 [methodIsPOST, hasCustomHeader]], | |
213 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAOrigin
=*&ACAHeaders=x-serviceworker-test&PreflightTest=200', | |
214 [fetchRejected]], | |
215 | |
216 // Test that CORS check is done in both preflight and main fetch. | |
217 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAHeader
s=x-serviceworker-test&PreflightTest=200', | |
218 [fetchRejected]], | |
219 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&PACAOrigin=*&PACAHeade
rs=x-serviceworker-test&PreflightTest=200', | |
220 [fetchRejected]], | |
221 | |
222 // Test that Access-Control-Expose-Headers of CORS preflight is ignored. | |
223 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-serviceworker-test&PACEHeaders=Content-Length, X-ServiceWorker-
ServerHeader&PreflightTest=200', | |
224 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
225 [methodIsPOST, hasCustomHeader]], | |
226 | |
227 // Test that CORS preflight with Status 2XX succeeds. | |
228 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-serviceworker-test&PreflightTest=201', | |
229 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
230 [methodIsPOST, hasCustomHeader]], | |
231 | |
232 // Test that CORS preflight with Status other than 2XX fails. | |
233 // https://crbug.com/452394 | |
234 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-serviceworker-test&PreflightTest=301', | |
235 [fetchRejected]], | |
236 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-serviceworker-test&PreflightTest=401', | |
237 [fetchRejected]], | |
238 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-serviceworker-test&PreflightTest=500', | |
239 [fetchRejected]], | |
240 | |
241 // Test CORS preflight with multiple request headers. | |
242 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM2&ACAOrigin=*&PACAOrigi
n=*&PACAHeaders=x-servicEworker-u, x-servicEworker-ua, x-servicewOrker-test, x-s
Erviceworker-s, x-sErviceworker-v&PreflightTest=200', | |
243 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
244 [methodIsPOST, hasCustomHeader2]], | |
245 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM2&ACAOrigin=*&PACAOrigi
n=*&PACAHeaders=x-servicewOrker-test&PreflightTest=200', | |
246 [fetchRejected]], | |
247 | |
248 // Test request headers sent in CORS preflight requests. | |
249 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM&ACAOrigin=*&PACAOrigin
=*&PACAHeaders=x-serviceworker-test&PreflightTest=200&PACRMethod=POST&PACRHeader
s=x-serviceworker-test', | |
250 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
251 [methodIsPOST, hasCustomHeader]], | |
252 // Test Access-Control-Request-Headers is sorted https://crbug.com/452391 | |
253 [OTHER_BASE_URL + 'mode=cors&method=POST&headers=CUSTOM2&ACAOrigin=*&PACAOrigi
n=*&PACAHeaders=x-servicEworker-u, x-servicEworker-ua, x-servicewOrker-test, x-s
Erviceworker-s, x-sErviceworker-v&PreflightTest=200&PACRMethod=POST&PACRHeaders=
x-serviceworker-s, x-serviceworker-test, x-serviceworker-u, x-serviceworker-ua,
x-serviceworker-v', | |
254 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
255 [methodIsPOST, hasCustomHeader2]], | |
256 | |
257 // method=PUT | |
258 | |
259 // CORS check | |
260 // https://fetch.spec.whatwg.org/#concept-cors-check | |
261 // Tests for Access-Control-Allow-Origin header. | |
262 // CORS preflight fetch | |
263 // https://fetch.spec.whatwg.org/#cors-preflight-fetch | |
264 // Tests for Access-Control-Allow-Methods header. | |
265 // Tests for Access-Control-Allow-Headers header. | |
266 [OTHER_BASE_URL + 'mode=cors&method=PUT', | |
267 [fetchRejected]], | |
268 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAMethods=PUT', | |
269 [fetchRejected]], | |
270 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*', | |
271 [fetchRejected]], | |
272 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&ACAMethods=PUT', | |
273 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
274 [methodIsPUT]], | |
275 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT', | |
276 [fetchRejected]], | |
277 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT&ACAHeaders=x-serviceworker-test', | |
278 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
279 [methodIsPUT, hasCustomHeader]], | |
280 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT&ACAHeaders=x-serviceworker-test&ACEHeaders=Content-Length, X-ServiceWorker-S
erverHeader', | |
281 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
282 [methodIsPUT, hasCustomHeader]], | |
283 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT, XXX', | |
284 [fetchRejected]], | |
285 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT, XXX&ACAHeaders=x-serviceworker-test', | |
286 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
287 [methodIsPUT, hasCustomHeader]], | |
288 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT, XXX&ACAHeaders=x-serviceworker-test&ACEHeaders=Content-Length, X-ServiceWor
ker-ServerHeader', | |
289 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
290 [methodIsPUT, hasCustomHeader]], | |
291 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=' + BASE_ORIGIN, | |
292 [fetchRejected]], | |
293 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=' + BASE_ORIGIN + | |
294 '&ACAMethods=PUT', | |
295 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
296 [methodIsPUT]], | |
297 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=' + BASE_ORIGIN + | |
298 '&headers=CUSTOM&ACAMethods=PUT', | |
299 [fetchRejected]], | |
300 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=' + BASE_ORIGIN + | |
301 '&headers=CUSTOM&ACAMethods=PUT&ACAHeaders=x-serviceworker-test', | |
302 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
303 [methodIsPUT, hasCustomHeader]], | |
304 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=' + BASE_ORIGIN + | |
305 '&headers=CUSTOM&ACAMethods=PUT&ACAHeaders=x-serviceworker-test&ACEHeaders=Co
ntent-Length, X-ServiceWorker-ServerHeader', | |
306 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
307 [methodIsPUT, hasCustomHeader]], | |
308 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=' + BASE_ORIGIN + | |
309 '&headers=CUSTOM&ACAMethods=PUT, XXX', | |
310 [fetchRejected]], | |
311 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=' + BASE_ORIGIN + | |
312 '&headers=CUSTOM&ACAMethods=PUT, XXX&ACAHeaders=x-serviceworker-test', | |
313 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
314 [methodIsPUT, hasCustomHeader]], | |
315 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=' + BASE_ORIGIN + | |
316 '&headers=CUSTOM&ACAMethods=PUT, XXX&ACAHeaders=x-serviceworker-test&ACEHeade
rs=Content-Length, X-ServiceWorker-ServerHeader', | |
317 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
318 [methodIsPUT, hasCustomHeader]], | |
319 | |
320 // Test that Access-Control-Allow-Methods is checked in CORS preflight fetch. | |
321 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&PACAOrigin=*&PACAMethods=P
UT&PreflightTest=200', | |
322 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
323 [methodIsPUT]], | |
324 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&PACAOrigin=*&ACAMethods=PU
T&PreflightTest=200', | |
325 [fetchRejected]], | |
326 | |
327 // Test that Access-Control-Allow-Headers is checked in CORS preflight fetch. | |
328 [OTHER_BASE_URL + 'mode=cors&method=PUT&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAMethods=PUT&PACAHeaders=x-serviceworker-test&PreflightTest=200', | |
329 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
330 [methodIsPUT, hasCustomHeader]], | |
331 [OTHER_BASE_URL + 'mode=cors&method=PUT&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAMethods=PUT&ACAHeaders=x-serviceworker-test&PreflightTest=200', | |
332 [fetchRejected]], | |
333 | |
334 // Test that CORS check is done in both preflight and main fetch. | |
335 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&PACAMethods=PUT&PreflightT
est=200', | |
336 [fetchRejected]], | |
337 [OTHER_BASE_URL + 'mode=cors&method=PUT&PACAOrigin=*&PACAMethods=PUT&Preflight
Test=200', | |
338 [fetchRejected]], | |
339 | |
340 // Test that Access-Control-Expose-Headers of CORS preflight is ignored. | |
341 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&PACAOrigin=*&PACAMethods=P
UT&PACEHeaders=Content-Length, X-ServiceWorker-ServerHeader&PreflightTest=200', | |
342 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
343 [methodIsPUT]], | |
344 | |
345 // Test that CORS preflight with Status 2XX succeeds. | |
346 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&PACAOrigin=*&PACAMethods=P
UT&PreflightTest=201', | |
347 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
348 [methodIsPUT]], | |
349 | |
350 // Test that CORS preflight with Status other than 2XX fails. | |
351 // https://crbug.com/452394 | |
352 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&PACAOrigin=*&PACAMethods=P
UT&PreflightTest=301', | |
353 [fetchRejected]], | |
354 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&PACAOrigin=*&PACAMethods=P
UT&PreflightTest=401', | |
355 [fetchRejected]], | |
356 [OTHER_BASE_URL + 'mode=cors&method=PUT&ACAOrigin=*&PACAOrigin=*&PACAMethods=P
UT&PreflightTest=500', | |
357 [fetchRejected]], | |
358 | |
359 // Test CORS preflight with multiple request headers. | |
360 [OTHER_BASE_URL + 'mode=cors&method=PUT&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAMethods=PUT&PACAHeaders=x-servicEworker-u, x-servicEworker-ua, x-servicew
Orker-test, x-sErviceworker-s, x-sErviceworker-v&PreflightTest=200', | |
361 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
362 [methodIsPUT, hasCustomHeader2]], | |
363 [OTHER_BASE_URL + 'mode=cors&method=PUT&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAMethods=PUT&PACAHeaders=x-servicewOrker-test&PreflightTest=200', | |
364 [fetchRejected]], | |
365 | |
366 // Test request headers sent in CORS preflight requests. | |
367 [OTHER_BASE_URL + 'mode=cors&method=PUT&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAMethods=PUT&PACAHeaders=x-serviceworker-test&PreflightTest=200&PACRMethod=
PUT&PACRHeaders=x-serviceworker-test', | |
368 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
369 [methodIsPUT, hasCustomHeader]], | |
370 // Test Access-Control-Request-Headers is sorted https://crbug.com/452391 | |
371 [OTHER_BASE_URL + 'mode=cors&method=PUT&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAMethods=PUT&PACAHeaders=x-servicEworker-u, x-servicEworker-ua, x-servicew
Orker-test, x-sErviceworker-s, x-sErviceworker-v&PreflightTest=200&PACRMethod=PU
T&PACRHeaders=x-serviceworker-s, x-serviceworker-test, x-serviceworker-u, x-serv
iceworker-ua, x-serviceworker-v', | |
372 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
373 [methodIsPUT, hasCustomHeader2]], | |
374 | |
375 // method=XXX | |
376 | |
377 // CORS check | |
378 // https://fetch.spec.whatwg.org/#concept-cors-check | |
379 // Tests for Access-Control-Allow-Origin header. | |
380 // CORS preflight fetch | |
381 // https://fetch.spec.whatwg.org/#cors-preflight-fetch | |
382 // Tests for Access-Control-Allow-Methods header. | |
383 // Tests for Access-Control-Allow-Headers header. | |
384 | |
385 [OTHER_BASE_URL + 'mode=cors&method=XXX', | |
386 [fetchRejected]], | |
387 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAMethods=XXX', | |
388 [fetchRejected]], | |
389 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*', | |
390 [fetchRejected]], | |
391 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&ACAMethods=XXX', | |
392 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
393 [methodIsXXX]], | |
394 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&headers=CUSTOM&ACAMethods=
XXX', | |
395 [fetchRejected]], | |
396 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&headers=CUSTOM&ACAMethods=
XXX&ACAHeaders=x-serviceworker-test', | |
397 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
398 [methodIsXXX, hasCustomHeader]], | |
399 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&headers=CUSTOM&ACAMethods=
XXX&ACAHeaders=x-serviceworker-test&ACEHeaders=Content-Length, X-ServiceWorker-S
erverHeader', | |
400 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
401 [methodIsXXX, hasCustomHeader]], | |
402 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT, XXX', | |
403 [fetchRejected]], | |
404 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT, XXX&ACAHeaders=x-serviceworker-test', | |
405 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
406 [methodIsXXX, hasCustomHeader]], | |
407 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&headers=CUSTOM&ACAMethods=
PUT, XXX&ACAHeaders=x-serviceworker-test&ACEHeaders=Content-Length, X-ServiceWor
ker-ServerHeader', | |
408 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
409 [methodIsXXX, hasCustomHeader]], | |
410 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=' + BASE_ORIGIN, | |
411 [fetchRejected]], | |
412 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=' + BASE_ORIGIN + | |
413 '&ACAMethods=XXX', | |
414 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
415 [methodIsXXX]], | |
416 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=' + BASE_ORIGIN + | |
417 '&headers=CUSTOM&ACAMethods=XXX', | |
418 [fetchRejected]], | |
419 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=' + BASE_ORIGIN + | |
420 '&headers=CUSTOM&ACAMethods=XXX&ACAHeaders=x-serviceworker-test', | |
421 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
422 [methodIsXXX, hasCustomHeader]], | |
423 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=' + BASE_ORIGIN + | |
424 '&headers=CUSTOM&ACAMethods=XXX&ACAHeaders=x-serviceworker-test&ACEHeaders=Co
ntent-Length, X-ServiceWorker-ServerHeader', | |
425 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
426 [methodIsXXX, hasCustomHeader]], | |
427 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=' + BASE_ORIGIN + | |
428 '&headers=CUSTOM&ACAMethods=PUT, XXX', | |
429 [fetchRejected]], | |
430 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=' + BASE_ORIGIN + | |
431 '&headers=CUSTOM&ACAMethods=PUT, XXX&ACAHeaders=x-serviceworker-test', | |
432 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
433 [methodIsXXX, hasCustomHeader]], | |
434 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=' + BASE_ORIGIN + | |
435 '&headers=CUSTOM&ACAMethods=PUT, XXX&ACAHeaders=x-serviceworker-test&ACEHeade
rs=Content-Length, X-ServiceWorker-ServerHeader', | |
436 [fetchResolved, hasContentLength, hasServerHeader, hasBody, typeCors], | |
437 [methodIsXXX, hasCustomHeader]], | |
438 | |
439 // Test that Access-Control-Allow-Methods is checked in CORS preflight fetch. | |
440 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&PACAOrigin=*&PACAMethods=X
XX&PreflightTest=200', | |
441 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
442 [methodIsXXX]], | |
443 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&PACAOrigin=*&ACAMethods=XX
X&PreflightTest=200', | |
444 [fetchRejected]], | |
445 | |
446 // Test that Access-Control-Allow-Headers is checked in CORS preflight fetch. | |
447 [OTHER_BASE_URL + 'mode=cors&method=XXX&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAMethods=XXX&PACAHeaders=x-serviceworker-test&PreflightTest=200', | |
448 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
449 [methodIsXXX, hasCustomHeader]], | |
450 [OTHER_BASE_URL + 'mode=cors&method=XXX&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAMethods=XXX&ACAHeaders=x-serviceworker-test&PreflightTest=200', | |
451 [fetchRejected]], | |
452 | |
453 // Test that CORS check is done in both preflight and main fetch. | |
454 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&PACAMethods=XXX&PreflightT
est=200', | |
455 [fetchRejected]], | |
456 [OTHER_BASE_URL + 'mode=cors&method=XXX&PACAOrigin=*&PACAMethods=XXX&Preflight
Test=200', | |
457 [fetchRejected]], | |
458 | |
459 // Test that Access-Control-Expose-Headers of CORS preflight is ignored. | |
460 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&PACAOrigin=*&PACAMethods=X
XX&PACEHeaders=Content-Length, X-ServiceWorker-ServerHeader&PreflightTest=200', | |
461 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
462 [methodIsXXX]], | |
463 | |
464 // Test that CORS preflight with Status 2XX succeeds. | |
465 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&PACAOrigin=*&PACAMethods=X
XX&PreflightTest=201', | |
466 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
467 [methodIsXXX]], | |
468 | |
469 // Test that CORS preflight with Status other than 2XX fails. | |
470 // https://crbug.com/452394 | |
471 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&PACAOrigin=*&PACAMethods=X
XX&PreflightTest=301', | |
472 [fetchRejected]], | |
473 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&PACAOrigin=*&PACAMethods=X
XX&PreflightTest=401', | |
474 [fetchRejected]], | |
475 [OTHER_BASE_URL + 'mode=cors&method=XXX&ACAOrigin=*&PACAOrigin=*&PACAMethods=X
XX&PreflightTest=500', | |
476 [fetchRejected]], | |
477 | |
478 // Test CORS preflight with multiple request headers. | |
479 [OTHER_BASE_URL + 'mode=cors&method=XXX&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAMethods=XXX&PACAHeaders=x-servicEworker-u, x-servicEworker-ua, x-servicew
Orker-test, x-sErviceworker-s, x-sErviceworker-v&PreflightTest=200', | |
480 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
481 [methodIsXXX, hasCustomHeader2]], | |
482 [OTHER_BASE_URL + 'mode=cors&method=XXX&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAMethods=XXX&PACAHeaders=x-servicewOrker-test&PreflightTest=200', | |
483 [fetchRejected]], | |
484 | |
485 // Test request headers sent in CORS preflight requests. | |
486 [OTHER_BASE_URL + 'mode=cors&method=XXX&headers=CUSTOM&ACAOrigin=*&PACAOrigin=
*&PACAMethods=XXX&PACAHeaders=x-serviceworker-test&PreflightTest=200&PACRMethod=
XXX&PACRHeaders=x-serviceworker-test', | |
487 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
488 [methodIsXXX, hasCustomHeader]], | |
489 // Test Access-Control-Request-Headers is sorted https://crbug.com/452391 | |
490 [OTHER_BASE_URL + 'mode=cors&method=XXX&headers=CUSTOM2&ACAOrigin=*&PACAOrigin
=*&PACAMethods=XXX&PACAHeaders=x-servicEworker-u, x-servicEworker-ua, x-servicew
Orker-test, x-sErviceworker-s, x-sErviceworker-v&PreflightTest=200&PACRMethod=XX
X&PACRHeaders=x-serviceworker-s, x-serviceworker-test, x-serviceworker-u, x-serv
iceworker-ua, x-serviceworker-v', | |
491 [fetchResolved, noContentLength, noServerHeader, hasBody, typeCors], | |
492 [methodIsXXX, hasCustomHeader2]], | |
493 ]; | 89 ]; |
494 | 90 |
495 if (self.importScripts) { | 91 if (self.importScripts) { |
496 executeTests(TEST_TARGETS); | 92 executeTests(TEST_TARGETS); |
497 done(); | 93 done(); |
498 } | 94 } |
OLD | NEW |