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