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 } | 3 } |
4 | 4 |
5 promise_test(function(t) { | 5 promise_test(function(t) { |
6 return fetch('http://') | 6 return fetch('http://') |
7 .then( | 7 .then( |
8 t.unreached_func('fetch of invalid URL must fail'), | 8 t.unreached_func('fetch of invalid URL must fail'), |
9 function() {}); | 9 function() {}); |
10 }, 'Fetch invalid URL'); | 10 }, 'Fetch invalid URL'); |
(...skipping 11 matching lines...) Expand all Loading... |
22 | 22 |
23 // Tests for data: scheme. | 23 // Tests for data: scheme. |
24 promise_test(function(t) { | 24 promise_test(function(t) { |
25 return fetch('data:,Foobar') | 25 return fetch('data:,Foobar') |
26 .then(function(response) { | 26 .then(function(response) { |
27 assert_equals(response.status, 200); | 27 assert_equals(response.status, 200); |
28 assert_equals(response.statusText, 'OK'); | 28 assert_equals(response.statusText, 'OK'); |
29 assert_equals(response.headers.get('Content-Type'), | 29 assert_equals(response.headers.get('Content-Type'), |
30 'text/plain;charset=US-ASCII'); | 30 'text/plain;charset=US-ASCII'); |
31 assert_equals(size(response.headers), 1); | 31 assert_equals(size(response.headers), 1); |
| 32 assert_false(response.redirected); |
32 if (self.internals) { | 33 if (self.internals) { |
33 assert_array_equals( | 34 assert_array_equals( |
34 self.internals.getInternalResponseURLList(response), | 35 self.internals.getInternalResponseURLList(response), |
35 ['data:,Foobar']); | 36 ['data:,Foobar']); |
36 } | 37 } |
37 return response.text(); | 38 return response.text(); |
38 }) | 39 }) |
39 .then(function(text) { | 40 .then(function(text) { |
40 assert_equals(text, 'Foobar'); | 41 assert_equals(text, 'Foobar'); |
41 }); | 42 }); |
(...skipping 19 matching lines...) Expand all Loading... |
61 }, 'fetch data: URL with the POST method'); | 62 }, 'fetch data: URL with the POST method'); |
62 | 63 |
63 promise_test(function(t) { | 64 promise_test(function(t) { |
64 return fetch('data:text/html;charset=utf-8;base64,5paH5a2X') | 65 return fetch('data:text/html;charset=utf-8;base64,5paH5a2X') |
65 .then(function(response) { | 66 .then(function(response) { |
66 assert_equals(response.status, 200); | 67 assert_equals(response.status, 200); |
67 assert_equals(response.statusText, 'OK'); | 68 assert_equals(response.statusText, 'OK'); |
68 assert_equals(response.headers.get('Content-Type'), | 69 assert_equals(response.headers.get('Content-Type'), |
69 'text/html;charset=utf-8'); | 70 'text/html;charset=utf-8'); |
70 assert_equals(size(response.headers), 1); | 71 assert_equals(size(response.headers), 1); |
| 72 assert_false(response.redirected); |
71 if (self.internals) { | 73 if (self.internals) { |
72 assert_array_equals( | 74 assert_array_equals( |
73 self.internals.getInternalResponseURLList(response), | 75 self.internals.getInternalResponseURLList(response), |
74 ['data:text/html;charset=utf-8;base64,5paH5a2X']); | 76 ['data:text/html;charset=utf-8;base64,5paH5a2X']); |
75 } | 77 } |
76 return response.text(); | 78 return response.text(); |
77 }) | 79 }) |
78 .then(function(text) { | 80 .then(function(text) { |
79 assert_equals(text, '\u6587\u5b57'); | 81 assert_equals(text, '\u6587\u5b57'); |
80 }); | 82 }); |
(...skipping 11 matching lines...) Expand all Loading... |
92 // Tests for blob: scheme. | 94 // Tests for blob: scheme. |
93 promise_test(function(t) { | 95 promise_test(function(t) { |
94 var url = URL.createObjectURL(new Blob(['fox'], {type: 'text/fox'})); | 96 var url = URL.createObjectURL(new Blob(['fox'], {type: 'text/fox'})); |
95 return fetch(url) | 97 return fetch(url) |
96 .then(function(response) { | 98 .then(function(response) { |
97 assert_equals(response.status, 200); | 99 assert_equals(response.status, 200); |
98 assert_equals(response.statusText, 'OK'); | 100 assert_equals(response.statusText, 'OK'); |
99 assert_equals(response.headers.get('Content-Type'), 'text/fox'); | 101 assert_equals(response.headers.get('Content-Type'), 'text/fox'); |
100 assert_equals(response.headers.get('Content-Length'), '3'); | 102 assert_equals(response.headers.get('Content-Length'), '3'); |
101 assert_equals(size(response.headers), 2); | 103 assert_equals(size(response.headers), 2); |
| 104 assert_false(response.redirected); |
102 if (self.internals) { | 105 if (self.internals) { |
103 assert_array_equals( | 106 assert_array_equals( |
104 self.internals.getInternalResponseURLList(response), [url]); | 107 self.internals.getInternalResponseURLList(response), [url]); |
105 } | 108 } |
106 return response.text(); | 109 return response.text(); |
107 }) | 110 }) |
108 .then(function(text) { | 111 .then(function(text) { |
109 assert_equals(text, 'fox'); | 112 assert_equals(text, 'fox'); |
110 }); | 113 }); |
111 }, 'fetch blob: URL'); | 114 }, 'fetch blob: URL'); |
(...skipping 17 matching lines...) Expand all Loading... |
129 t.unreached_func('scheme not listed in basic fetch spec must fail'), | 132 t.unreached_func('scheme not listed in basic fetch spec must fail'), |
130 function() {}); | 133 function() {}); |
131 }, 'fetch of scheme not listed in basic fetch spec'); | 134 }, 'fetch of scheme not listed in basic fetch spec'); |
132 | 135 |
133 promise_test(function(t) { | 136 promise_test(function(t) { |
134 var request = new Request('/fetch/resources/fetch-status.php?status=200'); | 137 var request = new Request('/fetch/resources/fetch-status.php?status=200'); |
135 return fetch(request) | 138 return fetch(request) |
136 .then(function(response) { | 139 .then(function(response) { |
137 assert_equals(response.status, 200); | 140 assert_equals(response.status, 200); |
138 assert_equals(response.statusText, 'OK'); | 141 assert_equals(response.statusText, 'OK'); |
| 142 assert_false(response.redirected); |
139 if (self.internals) { | 143 if (self.internals) { |
140 assert_array_equals( | 144 assert_array_equals( |
141 self.internals.getInternalResponseURLList(response), | 145 self.internals.getInternalResponseURLList(response), |
142 [request.url]); | 146 [request.url]); |
143 } | 147 } |
144 }); | 148 }); |
145 }, 'Fetch result of 200 response'); | 149 }, 'Fetch result of 200 response'); |
146 | 150 |
147 promise_test(function(t) { | 151 promise_test(function(t) { |
148 var request = new Request('/fetch/resources/fetch-status.php?status=404'); | 152 var request = new Request('/fetch/resources/fetch-status.php?status=404'); |
149 return fetch(request) | 153 return fetch(request) |
150 .then(function(response) { | 154 .then(function(response) { |
151 assert_equals(response.status, 404); | 155 assert_equals(response.status, 404); |
152 assert_equals(response.statusText, 'Not Found'); | 156 assert_equals(response.statusText, 'Not Found'); |
| 157 assert_false(response.redirected); |
153 if (self.internals) { | 158 if (self.internals) { |
154 assert_array_equals( | 159 assert_array_equals( |
155 self.internals.getInternalResponseURLList(response), | 160 self.internals.getInternalResponseURLList(response), |
156 [request.url]); | 161 [request.url]); |
157 } | 162 } |
158 }); | 163 }); |
159 }, 'Fetch result of 404 response'); | 164 }, 'Fetch result of 404 response'); |
160 | 165 |
161 promise_test(function(t) { | 166 promise_test(function(t) { |
162 var request = new Request( | 167 var request = new Request( |
163 '/fetch/resources/fetch-status.php?status=200#fragment'); | 168 '/fetch/resources/fetch-status.php?status=200#fragment'); |
164 | 169 |
165 // The url attribute's getter must return request's url, | 170 // The url attribute's getter must return request's url, |
166 // serialized with the exclude fragment flag set. | 171 // serialized with the exclude fragment flag set. |
167 assert_equals(request.url, | 172 assert_equals(request.url, |
168 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'); | 173 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'); |
169 | 174 |
170 return fetch(request) | 175 return fetch(request) |
171 .then(function(response) { | 176 .then(function(response) { |
172 assert_equals(response.status, 200); | 177 assert_equals(response.status, 200); |
173 assert_equals(response.statusText, 'OK'); | 178 assert_equals(response.statusText, 'OK'); |
174 // The url attribute's getter must return the empty string | 179 // The url attribute's getter must return the empty string |
175 // if response's url is null and response's url, | 180 // if response's url is null and response's url, |
176 // serialized with the exclude fragment flag set, otherwise. | 181 // serialized with the exclude fragment flag set, otherwise. |
177 assert_equals(response.url, | 182 assert_equals(response.url, |
178 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'); | 183 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'); |
| 184 assert_false(response.redirected); |
179 if (self.internals) { | 185 if (self.internals) { |
180 assert_array_equals( | 186 assert_array_equals( |
181 self.internals.getInternalResponseURLList(response), | 187 self.internals.getInternalResponseURLList(response), |
182 [BASE_ORIGIN + | 188 [BASE_ORIGIN + |
183 '/fetch/resources/fetch-status.php?status=200#fragment']); | 189 '/fetch/resources/fetch-status.php?status=200#fragment']); |
184 } | 190 } |
185 }); | 191 }); |
186 }, 'Request/response url attribute getter with fragment'); | 192 }, 'Request/response url attribute getter with fragment'); |
187 | 193 |
188 promise_test(function(t) { | 194 promise_test(function(t) { |
189 var redirect_target_url = | 195 var redirect_target_url = |
190 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; | 196 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; |
191 var redirect_original_url = | 197 var redirect_original_url = |
192 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + | 198 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + |
193 redirect_target_url; | 199 redirect_target_url; |
194 | 200 |
195 var request = new Request(redirect_original_url); | 201 var request = new Request(redirect_original_url); |
196 assert_equals(request.url, redirect_original_url, | 202 assert_equals(request.url, redirect_original_url, |
197 'Request\'s url is the original URL'); | 203 'Request\'s url is the original URL'); |
198 assert_equals(request.redirect, 'follow'); | 204 assert_equals(request.redirect, 'follow'); |
199 | 205 |
200 return fetch(request) | 206 return fetch(request) |
201 .then(function(response) { | 207 .then(function(response) { |
202 assert_equals(response.status, 200); | 208 assert_equals(response.status, 200); |
203 assert_equals(response.statusText, 'OK'); | 209 assert_equals(response.statusText, 'OK'); |
204 assert_equals(response.url, redirect_target_url, | 210 assert_equals(response.url, redirect_target_url, |
205 'Response\'s url is locationURL'); | 211 'Response\'s url is locationURL'); |
206 assert_equals(request.url, redirect_original_url, | 212 assert_equals(request.url, redirect_original_url, |
207 'Request\'s url remains the original URL'); | 213 'Request\'s url remains the original URL'); |
| 214 assert_true(response.redirected); |
208 if (self.internals) { | 215 if (self.internals) { |
209 assert_array_equals( | 216 assert_array_equals( |
210 self.internals.getInternalResponseURLList(response), | 217 self.internals.getInternalResponseURLList(response), |
211 [request.url, response.url]); | 218 [request.url, response.url]); |
212 } | 219 } |
213 }); | 220 }); |
214 }, 'Request/response url attribute getter with redirect'); | 221 }, 'Request/response url attribute getter with redirect'); |
215 | 222 |
216 promise_test(function(t) { | 223 promise_test(function(t) { |
217 var redirect_target_url = | 224 var redirect_target_url = |
218 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; | 225 BASE_ORIGIN + '/fetch/resources/fetch-status.php?status=200'; |
219 var redirect_original_url = | 226 var redirect_original_url = |
220 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + | 227 BASE_ORIGIN + '/serviceworker/resources/redirect.php?Redirect=' + |
221 redirect_target_url; | 228 redirect_target_url; |
222 | 229 |
223 var request = new Request(redirect_original_url, {redirect: 'manual'}); | 230 var request = new Request(redirect_original_url, {redirect: 'manual'}); |
224 assert_equals(request.url, redirect_original_url, | 231 assert_equals(request.url, redirect_original_url, |
225 'Request\'s url is the original URL'); | 232 'Request\'s url is the original URL'); |
226 assert_equals(request.redirect, 'manual'); | 233 assert_equals(request.redirect, 'manual'); |
227 | 234 |
228 return fetch(request) | 235 return fetch(request) |
229 .then(function(response) { | 236 .then(function(response) { |
230 assert_equals(response.status, 0); | 237 assert_equals(response.status, 0); |
231 assert_equals(response.type, 'opaqueredirect'); | 238 assert_equals(response.type, 'opaqueredirect'); |
232 assert_equals(response.url, request.url); | 239 assert_equals(response.url, request.url); |
| 240 assert_false(response.redirected); |
233 if (self.internals) { | 241 if (self.internals) { |
234 assert_array_equals( | 242 assert_array_equals( |
235 self.internals.getInternalResponseURLList(response), | 243 self.internals.getInternalResponseURLList(response), |
236 [redirect_original_url]); | 244 [redirect_original_url]); |
237 } | 245 } |
238 }); | 246 }); |
239 }, 'Manual redirect fetch returns opaque redirect response'); | 247 }, 'Manual redirect fetch returns opaque redirect response'); |
240 | 248 |
241 promise_test(function(t) { | 249 promise_test(function(t) { |
242 var redirect_target_url = | 250 var redirect_target_url = |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 function() {}); | 286 function() {}); |
279 }, 'Redirect response must cause an error when redirect mode is error.'); | 287 }, 'Redirect response must cause an error when redirect mode is error.'); |
280 | 288 |
281 promise_test(function(test) { | 289 promise_test(function(test) { |
282 var url = BASE_ORIGIN + '/fetch/resources/doctype.html'; | 290 var url = BASE_ORIGIN + '/fetch/resources/doctype.html'; |
283 return fetch(new Request(url, {redirect: 'manual'})) | 291 return fetch(new Request(url, {redirect: 'manual'})) |
284 .then(function(response) { | 292 .then(function(response) { |
285 assert_equals(response.status, 200); | 293 assert_equals(response.status, 200); |
286 assert_equals(response.statusText, 'OK'); | 294 assert_equals(response.statusText, 'OK'); |
287 assert_equals(response.url, url); | 295 assert_equals(response.url, url); |
| 296 assert_false(response.redirected); |
288 if (self.internals) { | 297 if (self.internals) { |
289 assert_array_equals( | 298 assert_array_equals( |
290 self.internals.getInternalResponseURLList(response), [url]); | 299 self.internals.getInternalResponseURLList(response), [url]); |
291 } | 300 } |
292 return response.text(); | 301 return response.text(); |
293 }) | 302 }) |
294 .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); }) | 303 .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); }) |
295 }, 'No-redirect fetch completes normally even if redirect mode is manual'); | 304 }, 'No-redirect fetch completes normally even if redirect mode is manual'); |
296 | 305 |
297 promise_test(function(test) { | 306 promise_test(function(test) { |
298 var url = BASE_ORIGIN + '/fetch/resources/doctype.html'; | 307 var url = BASE_ORIGIN + '/fetch/resources/doctype.html'; |
299 return fetch(new Request(url, {redirect: 'error'})) | 308 return fetch(new Request(url, {redirect: 'error'})) |
300 .then(function(response) { | 309 .then(function(response) { |
301 assert_equals(response.status, 200); | 310 assert_equals(response.status, 200); |
302 assert_equals(response.statusText, 'OK'); | 311 assert_equals(response.statusText, 'OK'); |
303 assert_equals(response.url, url); | 312 assert_equals(response.url, url); |
| 313 assert_false(response.redirected); |
304 if (self.internals) { | 314 if (self.internals) { |
305 assert_array_equals( | 315 assert_array_equals( |
306 self.internals.getInternalResponseURLList(response), [url]); | 316 self.internals.getInternalResponseURLList(response), [url]); |
307 } | 317 } |
308 return response.text(); | 318 return response.text(); |
309 }) | 319 }) |
310 .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); }) | 320 .then(function(text) { assert_equals(text, '<!DOCTYPE html>\n'); }) |
311 }, 'No-redirect fetch completes normally even if redirect mode is error'); | 321 }, 'No-redirect fetch completes normally even if redirect mode is error'); |
312 | 322 |
313 function evalJsonp(text) { | 323 function evalJsonp(text) { |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
433 assert_true(req.bodyUsed); | 443 assert_true(req.bodyUsed); |
434 }, 'Calling fetch() disturbs body if not null'); | 444 }, 'Calling fetch() disturbs body if not null'); |
435 | 445 |
436 test(t => { | 446 test(t => { |
437 var req = new Request('/', {method: 'POST'}); | 447 var req = new Request('/', {method: 'POST'}); |
438 fetch(req); | 448 fetch(req); |
439 assert_false(req.bodyUsed); | 449 assert_false(req.bodyUsed); |
440 }, 'Calling fetch() doesn\'t disturb body if null'); | 450 }, 'Calling fetch() doesn\'t disturb body if null'); |
441 | 451 |
442 done(); | 452 done(); |
OLD | NEW |