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

Unified Diff: LayoutTests/http/tests/fetch/script-tests/fetch-body-mixin.js

Issue 1004623007: Streams Implementation Update: async read (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@stream-reader-read
Patch Set: Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | LayoutTests/http/tests/fetch/script-tests/stream-reader.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/http/tests/fetch/script-tests/fetch-body-mixin.js
diff --git a/LayoutTests/http/tests/fetch/script-tests/fetch-body-mixin.js b/LayoutTests/http/tests/fetch/script-tests/fetch-body-mixin.js
index 2e52fe8df97de685a89a0d7a972028c0244fd490..9e2a8697b0db48cbd36a723ad8f32cfb31f07053 100644
--- a/LayoutTests/http/tests/fetch/script-tests/fetch-body-mixin.js
+++ b/LayoutTests/http/tests/fetch/script-tests/fetch-body-mixin.js
@@ -13,40 +13,16 @@ function arrayBufferToString(buffer) {
}
function readStream(reader, values) {
- while (reader.state === 'readable') {
- values.push(reader.read());
- }
- if (reader.state === 'waiting') {
- return reader.ready.then(function() {
+ reader.read().then(function(r) {
+ if (!r.done) {
+ values.push(r.value);
readStream(reader, values);
- });
- }
+ }
+ });
return reader.closed;
}
sequential_promise_test(function(test) {
- var response;
- var reader;
- return fetch('/fetch/resources/doctype.html')
- .then(function(resp) {
- response = resp;
- reader = resp.body.getReader();
- return reader.ready;
- })
- .then(function() {
- if (reader.state !== 'readable') {
- return Promise.reject(TypeError('stream state get wrong'));
- } else {
- reader.releaseLock();
- return response.text();
- }
- })
- .then(function(text) {
- assert_equals(text, '<!DOCTYPE html>\n', 'response.body');
- })
- }, 'FetchTextAfterStreamGetReadableTest');
-
-sequential_promise_test(function(test) {
return fetch('/fetch/resources/doctype.html')
.then(function(response) {
// Accessing the body property makes the stream start working.
@@ -151,35 +127,34 @@ sequential_promise_test(function(test) {
expectedText += i;
var values = [];
- function partialReadResponse(response, read_count) {
- var reader = response.body.getReader();
- function read(resolve, reject) {
- while (reader.state === 'readable') {
- values.push(reader.read());
- if (values.length > read_count) {
- reader.releaseLock();
- resolve();
- return;
+ function partialReadResponse(reader, read_count) {
+ return Promise.resolve().then(function() {
+ var promise = Promise.resolve();
+ for (var i = 0; i < read_count; ++i) {
+ promise = reader.read().then(function(r) {
+ if (!r.done) {
+ values.push(r.value);
+ }
+ });
}
- }
- if (reader.state === 'closed') {
- reader.releaseLock();
- resolve();
- return;
- }
- reader.ready.then(function() {
- read(resolve, reject);
- }).catch(reject);
- }
- return new Promise(read);
+ return promise;
+ });
}
var response;
+ var reader;
return fetch('/fetch/resources/progressive.php')
.then(function(res) {
response = res;
- return partialReadResponse(response, 10);
+ reader = response.body.getReader();
+ return partialReadResponse(reader, 10);
})
.then(function() {
+ return response.text().then(unreached_fulfillment(test), function() {
+ // response.text() should fail because we have a reader.
+ });
+ })
+ .then(function() {
+ reader.releaseLock();
return Promise.all(
values.map(arrayBufferToString).concat(response.text()));
})
« no previous file with comments | « no previous file | LayoutTests/http/tests/fetch/script-tests/stream-reader.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698