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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/request.js

Issue 1844413006: Support ReferrerPolicy in Fetch API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@update-referrer-policy
Patch Set: rebase Created 4 years, 8 months 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 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 var URL = 'https://www.example.com/test.html'; 5 var URL = 'https://www.example.com/test.html';
6 6
7 test(function() { 7 test(function() {
8 var headers = new Headers; 8 var headers = new Headers;
9 headers.set('User-Agent', 'Mozilla/5.0'); 9 headers.set('User-Agent', 'Mozilla/5.0');
10 headers.set('Accept', 'text/html'); 10 headers.set('Accept', 'text/html');
11 headers.set('X-Fetch-Test', 'request test field'); 11 headers.set('X-Fetch-Test', 'request test field');
12 12
13 var request = new Request(URL, {method: 'GET', headers: headers}); 13 var request = new Request(URL, {method: 'GET', headers: headers});
14 14
15 assert_equals(request.url, URL, 'Request.url should match'); 15 assert_equals(request.url, URL, 'Request.url should match');
16 assert_equals(request.method, 'GET', 'Request.method should match'); 16 assert_equals(request.method, 'GET', 'Request.method should match');
17 assert_equals(request.referrer, 'about:client', 17 assert_equals(request.referrer, 'about:client',
18 'Request.referrer should be about:client'); 18 'Request.referrer should be about:client');
19 assert_equals(request.referrerPolicy, '',
20 'Request.referrerPolicy should be empty');
19 assert_true(request.headers instanceof Headers, 21 assert_true(request.headers instanceof Headers,
20 'Request.headers should be Headers'); 22 'Request.headers should be Headers');
21 23
22 // 'User-Agent' is a forbidden header. 24 // 'User-Agent' is a forbidden header.
23 assert_equals(size(request.headers), 2, 25 assert_equals(size(request.headers), 2,
24 'Request.headers size should match'); 26 'Request.headers size should match');
25 // Note: detailed behavioral tests for Headers are in another test, 27 // Note: detailed behavioral tests for Headers are in another test,
26 // http/tests/fetch/*/headers.html. 28 // http/tests/fetch/*/headers.html.
27 29
28 request.url = 'http://localhost/'; 30 request.url = 'http://localhost/';
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 392
391 assert_false(req.bodyUsed, 'After the forbidden method case'); 393 assert_false(req.bodyUsed, 'After the forbidden method case');
392 394
393 var req2 = new Request(req); 395 var req2 = new Request(req);
394 assert_true(req.bodyUsed, 396 assert_true(req.bodyUsed,
395 'Request should be flagged as used if it has been consumed.'); 397 'Request should be flagged as used if it has been consumed.');
396 }, 'Request construction failure should not set "bodyUsed"'); 398 }, 'Request construction failure should not set "bodyUsed"');
397 399
398 test(function() { 400 test(function() {
399 assert_equals(new Request(URL).referrer, 'about:client'); 401 assert_equals(new Request(URL).referrer, 'about:client');
402 assert_equals(new Request(URL).referrerPolicy, '');
400 }, 'Request without RequestInit.'); 403 }, 'Request without RequestInit.');
401 404
402 test(function() { 405 test(function() {
403 var req = new Request(URL, {referrer: 'about:client'}); 406 var req = new Request(URL, {referrer: 'about:client'});
404 407
405 assert_equals(req.referrer, 'about:client', 408 assert_equals(req.referrer, 'about:client',
406 'constructed with referrer=about:client'); 409 'constructed with referrer=about:client');
407 assert_equals(new Request(req.clone()).referrer, 'about:client', 410 assert_equals(new Request(req.clone()).referrer, 'about:client',
408 'cloned from a request with referrer=about:client'); 411 'cloned from a request with referrer=about:client');
409 assert_equals(new Request(req.clone(), {foo: null}).referrer, 412 assert_equals(new Request(req.clone(), {foo: null}).referrer,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
461 () => new Request(URL, {referrer: referrer})); 464 () => new Request(URL, {referrer: referrer}));
462 }, 'Request with an invalid referrer'); 465 }, 'Request with an invalid referrer');
463 466
464 test(function() { 467 test(function() {
465 var referrer = '/path?query'; 468 var referrer = '/path?query';
466 var expected = BASE_ORIGIN + '/path?query'; 469 var expected = BASE_ORIGIN + '/path?query';
467 470
468 assert_equals(new Request(URL, {referrer: referrer}).referrer, expected); 471 assert_equals(new Request(URL, {referrer: referrer}).referrer, expected);
469 }, 'Request with a relative referrer'); 472 }, 'Request with a relative referrer');
470 473
474 test(() => {
475 assert_equals(new Request('/', {referrerPolicy: ''}).referrerPolicy, '');
476 assert_equals(new Request('/', {referrerPolicy: 'no-referrer'})
477 .referrerPolicy, 'no-referrer');
478 assert_equals(new Request('/',
479 {referrerPolicy: 'no-referrer-when-downgrade'}).referrerPolicy,
480 'no-referrer-when-downgrade');
481 assert_equals(new Request('/', {referrerPolicy: 'origin'})
482 .referrerPolicy, 'origin');
483 assert_equals(new Request('/', {referrerPolicy: 'origin-when-cross-origin'})
484 .referrerPolicy, 'origin-when-cross-origin');
485 assert_equals(new Request('/', {referrerPolicy: 'unsafe-url'})
486 .referrerPolicy, 'unsafe-url');
487 assert_throws(
488 {name: 'TypeError'},
489 () => new Request('/', {referrerPolicy: 'invalid'}),
490 'Setting invalid referrer policy should be thrown.');
491 }, 'Referrer policy settings');
492
493 test(() => {
494 let r = new Request('/', {referrerPolicy: 'origin'});
495 assert_equals(r.referrerPolicy, 'origin', 'original policy');
496
497 assert_equals(new Request(r, {foo: 32}).referrerPolicy,
498 'origin', 'kept original policy');
499 assert_equals(new Request(r, {mode: 44}).referrerPolicy,
500 '', 'cleared policy');
501 assert_equals(new Request(r, {referrerPolicy: 'unsafe-url'}).referrerPolicy,
502 'unsafe-url', 'overriden policy');
503 }, 'Referrer policy should be cleared when any members are set');
504
471 // Spec: https://fetch.spec.whatwg.org/#dom-request 505 // Spec: https://fetch.spec.whatwg.org/#dom-request
472 // Step 21: 506 // Step 21:
473 // If request's method is `GET` or `HEAD`, throw a TypeError. 507 // If request's method is `GET` or `HEAD`, throw a TypeError.
474 promise_test(function() { 508 promise_test(function() {
475 var headers = new Headers; 509 var headers = new Headers;
476 headers.set('Content-Language', 'ja'); 510 headers.set('Content-Language', 'ja');
477 ['GET', 'HEAD'].forEach(function(method) { 511 ['GET', 'HEAD'].forEach(function(method) {
478 assert_throws( 512 assert_throws(
479 {name: 'TypeError'}, 513 {name: 'TypeError'},
480 function() { 514 function() {
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 credentials: 'include', 788 credentials: 'include',
755 body: 'this is a body'}); 789 body: 'this is a body'});
756 790
757 return req.text() 791 return req.text()
758 .then(t => { 792 .then(t => {
759 assert_equals(t, 'this is a body'); 793 assert_equals(t, 'this is a body');
760 }); 794 });
761 }, 'Credentials and body can both be set.'); 795 }, 'Credentials and body can both be set.');
762 796
763 done(); 797 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698