| 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 |