OLD | NEW |
1 var SCOPE = BASE_ORIGIN + | 1 var SCOPE = BASE_ORIGIN + |
2 '/fetch/resources/thorough-iframe.html?' + TEST_OPTIONS; | 2 '/fetch/resources/thorough-iframe.html?' + TEST_OPTIONS; |
3 var IFRAME_ORIGIN = BASE_ORIGIN; | 3 var IFRAME_ORIGIN = BASE_ORIGIN; |
4 var BASE_URL = BASE_ORIGIN + | 4 var BASE_URL = BASE_ORIGIN + |
5 '/serviceworker/resources/fetch-access-control.php?'; | 5 '/serviceworker/resources/fetch-access-control.php?'; |
6 var OTHER_BASE_URL = OTHER_ORIGIN + | 6 var OTHER_BASE_URL = OTHER_ORIGIN + |
7 '/serviceworker/resources/fetch-access-control.php?'; | 7 '/serviceworker/resources/fetch-access-control.php?'; |
8 var BASE_URL_WITH_USERNAME = BASE_URL.replace('://', '://user@'); | 8 var BASE_URL_WITH_USERNAME = BASE_URL.replace('://', '://user@'); |
9 var OTHER_BASE_URL_WITH_USERNAME = OTHER_BASE_URL.replace('://', '://user@'); | 9 var OTHER_BASE_URL_WITH_USERNAME = OTHER_BASE_URL.replace('://', '://user@'); |
10 var BASE_URL_WITH_PASSWORD = BASE_URL.replace('://', '://user:pass@'); | 10 var BASE_URL_WITH_PASSWORD = BASE_URL.replace('://', '://user:pass@'); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 'header check failed url: ' + url + ' name: ' + name); | 58 'header check failed url: ' + url + ' name: ' + name); |
59 }; | 59 }; |
60 var checkFetchResponseType = function(type, url, data) { | 60 var checkFetchResponseType = function(type, url, data) { |
61 assert_equals(data.fetchResult, | 61 assert_equals(data.fetchResult, |
62 'resolved', | 62 'resolved', |
63 'fetchResult must be resolved. url = ' + url); | 63 'fetchResult must be resolved. url = ' + url); |
64 assert_equals(data.type, | 64 assert_equals(data.type, |
65 type, | 65 type, |
66 'type must match. url: ' + url); | 66 'type must match. url: ' + url); |
67 }; | 67 }; |
| 68 var checkURLList = function(redirectedURLList, url, data) { |
| 69 if (!self.internals) |
| 70 return; |
| 71 var expectedURLList = [url].concat(redirectedURLList); |
| 72 assert_equals(data.fetchResult, |
| 73 'resolved', |
| 74 'fetchResult must be resolved. url = ' + url); |
| 75 assert_array_equals(data.urlList, |
| 76 expectedURLList, |
| 77 url + ' URL list should match'); |
| 78 }; |
68 | 79 |
69 var showComment = function(url, data) { | 80 var showComment = function(url, data) { |
70 assert_true(!data.comment, 'Show comment: ' + data.comment + ' url: ' + url); | 81 assert_true(!data.comment, 'Show comment: ' + data.comment + ' url: ' + url); |
71 } | 82 } |
72 | 83 |
73 var fetchIgnored = checkFetchResult.bind(this, 'ignored'); | 84 var fetchIgnored = checkFetchResult.bind(this, 'ignored'); |
74 var fetchResolved = checkFetchResult.bind(this, 'resolved'); | 85 var fetchResolved = checkFetchResult.bind(this, 'resolved'); |
75 var fetchRejected = checkFetchResult.bind(this, 'rejected'); | 86 var fetchRejected = checkFetchResult.bind(this, 'rejected'); |
76 var fetchError = checkFetchResult.bind(this, 'error'); | 87 var fetchError = checkFetchResult.bind(this, 'error'); |
77 var hasBody = checkFetchResponseBody.bind(this, true); | 88 var hasBody = checkFetchResponseBody.bind(this, true); |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 // Setting a comment will fail the test and show the | 358 // Setting a comment will fail the test and show the |
348 // comment in the result. Use this for debugging | 359 // comment in the result. Use this for debugging |
349 // tests. | 360 // tests. |
350 comment: undefined, | 361 comment: undefined, |
351 | 362 |
352 fetchResult: 'resolved', | 363 fetchResult: 'resolved', |
353 body: body, | 364 body: body, |
354 status: response.status, | 365 status: response.status, |
355 headers: headersToArray(response.headers), | 366 headers: headersToArray(response.headers), |
356 type: response.type, | 367 type: response.type, |
| 368 urlList: self.internals ? |
| 369 self.internals.getInternalResponseURLList(response) : |
| 370 [], |
357 response: response, | 371 response: response, |
358 originalURL: originalURL | 372 originalURL: originalURL |
359 }); | 373 }); |
360 }) | 374 }) |
361 .catch(function(e) { | 375 .catch(function(e) { |
362 return Promise.resolve({fetchResult: 'error'}); | 376 return Promise.resolve({fetchResult: 'error'}); |
363 }); | 377 }); |
364 }) | 378 }) |
365 .catch(function(e) { | 379 .catch(function(e) { |
366 return Promise.resolve({fetchResult: 'rejected'}); | 380 return Promise.resolve({fetchResult: 'rejected'}); |
367 }); | 381 }); |
368 } catch (e) { | 382 } catch (e) { |
369 return Promise.resolve({fetchResult: 'error'}); | 383 return Promise.resolve({fetchResult: 'error'}); |
370 } | 384 } |
371 } | 385 } |
372 | 386 |
373 var report_data = {}; | 387 var report_data = {}; |
374 function report(data) { | 388 function report(data) { |
375 report_data = data; | 389 report_data = data; |
376 } | 390 } |
377 | 391 |
| 392 // |test_target| is an array. The first element of |test_target| is the URL to |
| 393 // be fetched. The second element of |test_target| is an array of test functions |
| 394 // which will be called with the result of doFetch(). The third element of |
| 395 // |test_target| is an array of test functions which will be called with |
| 396 // |report_data| set by report() which is called while executing |
| 397 // "eval(message.body)". |
378 function executeTest(test_target) { | 398 function executeTest(test_target) { |
379 if (test_target.length == 0) { | 399 if (test_target.length == 0) { |
380 return Promise.resolve(); | 400 return Promise.resolve(); |
381 } | 401 } |
382 return doFetch(new Request(test_target[0], | 402 return doFetch(new Request(test_target[0], |
383 {credentials: 'same-origin', mode: 'no-cors'})) | 403 {credentials: 'same-origin', mode: 'no-cors'})) |
384 .then(function(message) { | 404 .then(function(message) { |
385 var checks = test_target[1].concat(showComment); | 405 var checks = test_target[1].concat(showComment); |
386 checks.forEach(function(checkFunc) { | 406 checks.forEach(function(checkFunc) { |
387 checkFunc.call(this, test_target[0], message); | 407 checkFunc.call(this, test_target[0], message); |
(...skipping 19 matching lines...) Expand all Loading... |
407 | 427 |
408 function executeTests(test_targets) { | 428 function executeTests(test_targets) { |
409 for (var i = 0; i < test_targets.length; ++i) { | 429 for (var i = 0; i < test_targets.length; ++i) { |
410 promise_test( | 430 promise_test( |
411 function(counter, t) { | 431 function(counter, t) { |
412 return executeTest(test_targets[counter]); | 432 return executeTest(test_targets[counter]); |
413 }.bind(this, i), | 433 }.bind(this, i), |
414 "executeTest-" + i); | 434 "executeTest-" + i); |
415 } | 435 } |
416 } | 436 } |
OLD | NEW |