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 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 Loading... |
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 Loading... |
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 Loading... |
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(); |
OLD | NEW |