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

Unified Diff: third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/stream-reader.js

Issue 1418813004: [Fetch API] Reflect spec changes of bodyUsed property (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/stream-reader.js
diff --git a/third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/stream-reader.js b/third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/stream-reader.js
index 0508ae808a86a6a44fb7e541c6f624ffb6e2245a..562782c057e8a99dbc361554a2d9c6fbcc78a34d 100644
--- a/third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/stream-reader.js
+++ b/third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/stream-reader.js
@@ -62,109 +62,38 @@ promise_test(function(t) {
}, 'acquiring a reader should set bodyUsed.');
promise_test(function(t) {
+ var reader;
var response;
return fetch('/fetch/resources/progressive.php').then(function(res) {
response = res;
- assert_false(res.bodyUsed);
- var p = res.arrayBuffer();
- assert_true(res.bodyUsed);
- assert_throws({name: 'TypeError'}, function() { res.body.getReader() });
- return p;
- }).then(function(buffer) {
- assert_equals(buffer.byteLength, 190);
- // Now we can obtain a (closed) reader.
- return response.body.getReader().closed;
- });
- }, 'Setting bodyUsed means the body is locked.');
-
-promise_test(function(t) {
- return fetch('/fetch/resources/slow-failure.cgi').then(function(res) {
- return res.text().then(function() {
- assert_unreached('text() should fail');
- }, function(e) {
- return res.body.getReader().closed.then(function() {
- assert_unreached('res.body should be errored');
- }, function(e) {});
- });
- });
- }, 'Error in text() should be propagated to the body stream.');
-
-promise_test(function(t) {
- var reader;
- var read = 0;
- var original;
- return fetch('/fetch/resources/progressive.php').then(function(res) {
- original = res;
reader = res.body.getReader();
return reader.read();
- }).then(function(r) {
- assert_false(r.done);
- read += r.value.byteLength;
- // Make sure that we received something but we didn't receive all.
- assert_not_equals(read, 0);
- assert_not_equals(read, 190);
-
+ }).then(() => {
reader.releaseLock();
- var original_body = original.body;
- var clone = original.clone();
- assert_not_equals(original.body, clone.body);
- assert_not_equals(original.body, original_body);
- assert_not_equals(clone.body, original_body);
- assert_throws({name: 'TypeError'}, function() {
- original_body.getReader();
- });
- var reader1 = original.body.getReader();
- var reader2 = clone.body.getReader();
- return Promise.all([read_until_end(reader1), read_until_end(reader2)]);
- }).then(function(r) {
- var read1 = 0;
- var read2 = 0;
- for (var chunk of r[0]) {
- read1 += chunk.byteLength;
- }
- for (var chunk of r[1]) {
- read2 += chunk.byteLength;
- }
- // Make sure that we received all data in total.
- assert_equals(read + read1, 190);
- assert_equals(read + read2, 190);
+ assert_true(response.bodyUsed);
+ assert_throws(new TypeError, () => { response.clone(); });
});
- }, 'Clone after reading partially');
+ }, 'Clone after reading');
promise_test(function(t) {
return fetch('/fetch/resources/progressive.php').then(function(res) {
res.body.cancel();
- return res.text();
- }).then(function(text) {
- assert_equals(text, '');
+ assert_true(res.bodyUsed);
});
}, 'Cancelling stream stops downloading.');
promise_test(function(t) {
+ var clone;
return fetch('/fetch/resources/progressive.php').then(function(res) {
- var clone = res.clone();
+ clone = res.clone();
res.body.cancel();
- return Promise.all([res.arrayBuffer(), clone.arrayBuffer()]);
+ assert_true(res.bodyUsed);
+ assert_false(clone.bodyUsed);
+ return clone.arrayBuffer();
}).then(function(r) {
- assert_equals(r[0].byteLength, 0);
- assert_equals(r[1].byteLength, 190);
+ assert_equals(r.byteLength, 190);
+ assert_true(clone.bodyUsed);
});
}, 'Cancelling stream should not affect cloned one.');
-promise_test(function(t) {
- var stream;
- return fetch('/fetch/resources/progressive.php').then(function(res) {
- var p = res.text();
- stream = res.body;
- assert_throws({name: 'TypeError'}, function() { stream.getReader() });
- return p;
- }).then(function(text) {
- assert_equals(text.length, 190);
- return stream.getReader().read();
- }).then(function(r) {
- assert_true(r.done);
- assert_equals(r.value, undefined);
- });
- }, 'Accessing body when processing text().');
-
done();

Powered by Google App Engine
This is Rietveld 408576698