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

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

Issue 2691513002: Fetch: Make Headers' constructor match the current spec IDL. (Closed)
Patch Set: Rebase again Created 3 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');
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 var request3 = new Request(URL, 122 var request3 = new Request(URL,
123 {headers: [['X-Fetch-Foo', 'foo1'], 123 {headers: [['X-Fetch-Foo', 'foo1'],
124 ['X-Fetch-Foo', 'foo2'], 124 ['X-Fetch-Foo', 'foo2'],
125 ['X-Fetch-Bar', 'bar']]}); 125 ['X-Fetch-Bar', 'bar']]});
126 assert_equals(request3.headers.getAll('X-Fetch-Foo')[0], 'foo1', 126 assert_equals(request3.headers.getAll('X-Fetch-Foo')[0], 'foo1',
127 'Request.headers should match'); 127 'Request.headers should match');
128 assert_equals(request3.headers.getAll('X-Fetch-Foo')[1], 'foo2', 128 assert_equals(request3.headers.getAll('X-Fetch-Foo')[1], 'foo2',
129 'Request.headers should match'); 129 'Request.headers should match');
130 assert_equals(request3.headers.getAll('X-Fetch-Bar')[0], 'bar', 130 assert_equals(request3.headers.getAll('X-Fetch-Bar')[0], 'bar',
131 'Request.headers should match'); 131 'Request.headers should match');
132 var request4 = new Request(URL,
133 {headers: {'X-Fetch-Foo': 'foo1',
134 'X-Fetch-Foo': 'foo2',
135 'X-Fetch-Bar': 'bar'}});
136 assert_equals(request4.headers.getAll('X-Fetch-Foo')[0], 'foo2',
137 'Request.headers should match');
138 assert_equals(request4.headers.getAll('X-Fetch-Bar')[0], 'bar',
139 'Request.headers should match');
140 // https://github.com/whatwg/fetch/issues/479
141 var request5 = new Request(request, {headers: undefined});
142 assert_equals(request5.headers.getAll('X-Fetch-Foo')[0], 'foo1',
143 'Request.headers should match');
144 assert_equals(request5.headers.getAll('X-Fetch-Foo')[1], 'foo2',
145 'Request.headers should match');
146 assert_equals(request5.headers.getAll('X-Fetch-Bar')[0], 'bar',
147 'Request.headers should match');
148 var request6 = new Request(request, {});
149 assert_equals(request6.headers.getAll('X-Fetch-Foo')[0], 'foo1',
150 'Request.headers should match');
151 assert_equals(request6.headers.getAll('X-Fetch-Foo')[1], 'foo2',
152 'Request.headers should match');
153 assert_equals(request6.headers.getAll('X-Fetch-Bar')[0], 'bar',
154 'Request.headers should match');
155 assert_throws(new TypeError(),
156 () => { new Request(request, {headers: null}) },
157 'null cannot be converted to a HeaderInit');
132 }, 'Request header test'); 158 }, 'Request header test');
133 159
134 test(function() { 160 test(function() {
135 var request1 = {}; 161 var request1 = {};
136 var request2 = {}; 162 var request2 = {};
137 var METHODS = ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'OPTIONS', 163 var METHODS = ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'OPTIONS',
138 undefined]; 164 undefined];
139 var MODES = ['same-origin', 'no-cors', 'cors', '', undefined]; 165 var MODES = ['same-origin', 'no-cors', 'cors', '', undefined];
140 function isSimpleMethod(method) { 166 function isSimpleMethod(method) {
141 return ['GET', 'HEAD', 'POST', undefined].indexOf(method) != -1; 167 return ['GET', 'HEAD', 'POST', undefined].indexOf(method) != -1;
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 .then(function() { 714 .then(function() {
689 t.done(); 715 t.done();
690 }) 716 })
691 .catch(unreached_rejection(t)); 717 .catch(unreached_rejection(t));
692 assert_true(request.bodyUsed, 718 assert_true(request.bodyUsed,
693 'bodyUsed must be true after calling text()'); 719 'bodyUsed must be true after calling text()');
694 }, 'Request body test'); 720 }, 'Request body test');
695 721
696 test(function() { 722 test(function() {
697 // https://fetch.spec.whatwg.org/#dom-request 723 // https://fetch.spec.whatwg.org/#dom-request
698 // Step 20: 724 // Step 32:
699 // Fill r's Headers object with headers. Rethrow any exceptions. 725 // Fill r's Headers object with headers. Rethrow any exceptions.
700 INVALID_HEADER_NAMES.forEach(function(name) { 726 INVALID_HEADER_NAMES.forEach(function(name) {
701 assert_throws( 727 assert_throws(
702 {name: 'TypeError'}, 728 {name: 'TypeError'},
703 function() { 729 function() {
704 var obj = {}; 730 var obj = {};
705 obj[name] = 'a'; 731 obj[name] = 'a';
706 new Request('http://localhost/', {headers: obj}); 732 new Request('http://localhost/', {headers: obj});
707 }, 733 },
708 'new Request with headers with an invalid name (' + name + 734 'new Request with headers with an invalid name (' + name +
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 credentials: 'include', 852 credentials: 'include',
827 body: 'this is a body'}); 853 body: 'this is a body'});
828 854
829 return req.text() 855 return req.text()
830 .then(t => { 856 .then(t => {
831 assert_equals(t, 'this is a body'); 857 assert_equals(t, 'this is a body');
832 }); 858 });
833 }, 'Credentials and body can both be set.'); 859 }, 'Credentials and body can both be set.');
834 860
835 done(); 861 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698