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

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

Issue 1056813002: [Fetch] Request.clone() should reflect body consumption. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@body-used
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
« no previous file with comments | « LayoutTests/http/tests/fetch/script-tests/request.js ('k') | Source/modules/fetch/Request.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 size(headers) { 5 function size(headers) {
6 var count = 0; 6 var count = 0;
7 for (var header of headers) { 7 for (var header of headers) {
8 ++count; 8 ++count;
9 } 9 }
10 return count; 10 return count;
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 var res = new Response('hello'); 348 var res = new Response('hello');
349 var body = res.body; 349 var body = res.body;
350 var clone = res.clone(); 350 var clone = res.clone();
351 assert_not_equals(res.body, body); 351 assert_not_equals(res.body, body);
352 assert_not_equals(res.body, clone.body); 352 assert_not_equals(res.body, clone.body);
353 assert_not_equals(body, clone.body); 353 assert_not_equals(body, clone.body);
354 assert_throws({name: 'TypeError'}, function() { body.getReader(); }); 354 assert_throws({name: 'TypeError'}, function() { body.getReader(); });
355 return Promise.all([res.text(), clone.text()]).then(function(r) { 355 return Promise.all([res.text(), clone.text()]).then(function(r) {
356 assert_equals(r[0], 'hello'); 356 assert_equals(r[0], 'hello');
357 assert_equals(r[1], 'hello'); 357 assert_equals(r[1], 'hello');
358 return Promise.all([res.text(), clone.text(), res.clone().text()]);
359 }).then(function(r) {
360 assert_equals(r[0], '');
361 assert_equals(r[1], '');
362 assert_equals(r[2], '');
358 }); 363 });
359 }, 'Clone on Response (text)'); 364 }, 'Clone on Response (text)');
360 365
361 promise_test(function(t) { 366 promise_test(function(t) {
362 var res = new Response('hello'); 367 var res = new Response('hello');
363 var body = res.body; 368 var body = res.body;
364 var clone = res.clone(); 369 var clone = res.clone();
365 assert_not_equals(res.body, body); 370 assert_not_equals(res.body, body);
366 assert_not_equals(res.body, clone.body); 371 assert_not_equals(res.body, clone.body);
367 assert_not_equals(body, clone.body); 372 assert_not_equals(body, clone.body);
368 assert_throws({name: 'TypeError'}, function() { body.getReader(); }); 373 assert_throws({name: 'TypeError'}, function() { body.getReader(); });
369 var reader1 = res.body.getReader(); 374 var reader1 = res.body.getReader();
370 var reader2 = clone.body.getReader(); 375 var reader2 = clone.body.getReader();
371 return Promise.all([consume(reader1), consume(reader2)]).then(function(r) { 376 return Promise.all([consume(reader1), consume(reader2)]).then(function(r) {
372 assert_equals(decode(r[0]), 'hello'); 377 assert_equals(decode(r[0]), 'hello');
373 assert_equals(decode(r[1]), 'hello'); 378 assert_equals(decode(r[1]), 'hello');
379 return Promise.all([res.text(), clone.text(), res.clone().text()]);
380 }).then(function(r) {
381 assert_equals(r[0], '');
382 assert_equals(r[1], '');
383 assert_equals(r[2], '');
374 }); 384 });
375 }, 'Clone on Response (manual read)'); 385 }, 'Clone on Response (manual read)');
376 386
377 promise_test(function(t) { 387 promise_test(function(t) {
378 var res = new Response('hello'); 388 var res = new Response('hello');
379 var clone = res.clone(); 389 var clone = res.clone();
380 res.body.cancel(); 390 res.body.cancel();
381 return Promise.all([res.text(), clone.text()]).then(function(r) { 391 return Promise.all([res.text(), clone.text()]).then(function(r) {
382 assert_equals(r[0], ''); 392 assert_equals(r[0], '');
383 assert_equals(r[1], 'hello'); 393 assert_equals(r[1], 'hello');
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 assert_equals(texts[0], ''); 512 assert_equals(texts[0], '');
503 assert_equals(texts[1], ''); 513 assert_equals(texts[1], '');
504 return res.body.getReader().read(); 514 return res.body.getReader().read();
505 }).then(function(r) { 515 }).then(function(r) {
506 assert_true(r.done); 516 assert_true(r.done);
507 assert_equals(r.value, undefined); 517 assert_equals(r.value, undefined);
508 }); 518 });
509 }, 'Read after text()'); 519 }, 'Read after text()');
510 520
511 done(); 521 done();
OLDNEW
« no previous file with comments | « LayoutTests/http/tests/fetch/script-tests/request.js ('k') | Source/modules/fetch/Request.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698