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

Side by Side Diff: LayoutTests/http/tests/fetch/script-tests/response.js

Issue 1098473003: Implement redirect() API for Fetch Response (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 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 function consume(reader) { 5 function consume(reader) {
6 var chunks = []; 6 var chunks = [];
7 function rec(reader) { 7 function rec(reader) {
8 return reader.read().then(function(r) { 8 return reader.read().then(function(r) {
9 if (r.done) { 9 if (r.done) {
10 return chunks; 10 return chunks;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 'Response.headers must not have Content-Type ' + 110 'Response.headers must not have Content-Type ' +
111 'for Blob with type = empty string (2)'); 111 'for Blob with type = empty string (2)');
112 }, 'Response content type test'); 112 }, 'Response content type test');
113 113
114 test(function() { 114 test(function() {
115 [0, 1, 100, 199, 600, 700].forEach(function(status) { 115 [0, 1, 100, 199, 600, 700].forEach(function(status) {
116 assert_throws({name: 'RangeError'}, 116 assert_throws({name: 'RangeError'},
117 function() { 117 function() {
118 new Response(new Blob(), {status: status}); 118 new Response(new Blob(), {status: status});
119 }, 119 },
120 'new Response with status = ' + status + ' should throw'); 120 'new Response with status = ' + status +
121 'should throw');
121 }); 122 });
123
124 [300, 0, 304, 305, 306, 309, 500].forEach(function(status) {
125 assert_throws({name: 'RangeError'},
126 function() {
127 Response.redirect('https://www.example.com/test.html',
128 status);
129 },
130 'Response.redirect() with invalid status = ' + status +
131 'should throw');
132 });
133
134 assert_throws(
135 {name: 'TypeError'},
136 function() {
137 Response.redirect('https://', 301);
138 },
139 'Response.redirect() with invalid URL https://' +
140 'status as 301 should throw');
hiroshige 2015/04/27 11:47:25 nit: ' and status 301 should throw'. - space after
shiva.jm 2015/04/28 06:06:48 Done.
141
142 INVALID_URLS.forEach(function(url) {
143 assert_throws(
144 {name: 'TypeError'},
145 function() {
146 Response.redirect(url);
147 },
148 'Response.redirect() with invalid URL' + url +
hiroshige 2015/04/27 11:47:25 nit: 'Response.redirect() with invalid URL ' + url
shiva.jm 2015/04/28 06:06:48 Done.
149 'default status value should throw');
150 });
151
152 assert_throws(
153 {name: 'TypeError'},
154 function() {
155 Response.redirect('https://', 300);
156 },
157 'Response.redirect() with invalid URL https://' +
158 'invalid status 300 should throw');
hiroshige 2015/04/27 11:47:25 nit: ' and invalid status 300 should throw TypeErr
shiva.jm 2015/04/28 06:06:48 Done.
159
122 [200, 300, 400, 500, 599].forEach(function(status) { 160 [200, 300, 400, 500, 599].forEach(function(status) {
123 var response = new Response(new Blob(), {status: status}); 161 var response = new Response(new Blob(), {status: status});
124 assert_equals(response.status, status, 'Response.status should match'); 162 assert_equals(response.status, status, 'Response.status should match');
125 if (200 <= status && status <= 299) 163 if (200 <= status && status <= 299)
126 assert_true(response.ok, 'Response.ok must be true for ' + status); 164 assert_true(response.ok, 'Response.ok must be true for ' + status);
127 else 165 else
128 assert_false(response.ok, 'Response.ok must be false for ' + status); 166 assert_false(response.ok, 'Response.ok must be false for ' + status);
129 }); 167 });
130 168
131 INVALID_HEADER_NAMES.forEach(function(name) { 169 INVALID_HEADER_NAMES.forEach(function(name) {
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 }).then(function(texts) { 456 }).then(function(texts) {
419 assert_equals(texts[0], ''); 457 assert_equals(texts[0], '');
420 assert_equals(texts[1], ''); 458 assert_equals(texts[1], '');
421 return res.body.getReader().read(); 459 return res.body.getReader().read();
422 }).then(function(r) { 460 }).then(function(r) {
423 assert_true(r.done); 461 assert_true(r.done);
424 assert_equals(r.value, undefined); 462 assert_equals(r.value, undefined);
425 }); 463 });
426 }, 'Read after text()'); 464 }, 'Read after text()');
427 465
466 promise_test(function() {
467 var response = Response.redirect('https://www.example.com/test.html');
468 return response.text().then(function(text) {
469 assert_equals(response.status, 302,
470 'default value of status is always 302');
471 assert_equals(response.headers.get('location'),
472 'https://www.example.com/test.html',
473 'Location header should be correct absoulte URL');
474 assert_throws({name: 'TypeError'},
475 function() {
476 response.headers.append('Accept-Language', 'test');
477 },
478 'response.headers must throw since guard is immutable');
479 });
480 }, 'Response.redirect() with default status value');
481
482 promise_test(function() {
483 var response = Response.redirect('https://www.example.com/test.html',
484 301);
485 return response.text().then(function(text) {
486 assert_equals(response.status, 301,
487 'value of status is 301');
488 assert_equals(response.headers.get('location'),
489 'https://www.example.com/test.html',
490 'Location header should be correct absoulte URL');
491 });
492 }, 'Response.redirect() with 301');
493
428 done(); 494 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698