Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/fetch/resources/thorough-util.js

Issue 2550363002: Add LayoutTests for URL list of Response (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
falken 2016/12/09 01:54:15 Can you add documentation about the format of test
horo 2016/12/09 05:04:11 Done.
378 function executeTest(test_target) { 392 function executeTest(test_target) {
379 if (test_target.length == 0) { 393 if (test_target.length == 0) {
380 return Promise.resolve(); 394 return Promise.resolve();
381 } 395 }
382 return doFetch(new Request(test_target[0], 396 return doFetch(new Request(test_target[0],
383 {credentials: 'same-origin', mode: 'no-cors'})) 397 {credentials: 'same-origin', mode: 'no-cors'}))
384 .then(function(message) { 398 .then(function(message) {
385 var checks = test_target[1].concat(showComment); 399 var checks = test_target[1].concat(showComment);
386 checks.forEach(function(checkFunc) { 400 checks.forEach(function(checkFunc) {
387 checkFunc.call(this, test_target[0], message); 401 checkFunc.call(this, test_target[0], message);
(...skipping 19 matching lines...) Expand all
407 421
408 function executeTests(test_targets) { 422 function executeTests(test_targets) {
409 for (var i = 0; i < test_targets.length; ++i) { 423 for (var i = 0; i < test_targets.length; ++i) {
410 promise_test( 424 promise_test(
411 function(counter, t) { 425 function(counter, t) {
412 return executeTest(test_targets[counter]); 426 return executeTest(test_targets[counter]);
413 }.bind(this, i), 427 }.bind(this, i),
414 "executeTest-" + i); 428 "executeTest-" + i);
415 } 429 }
416 } 430 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698