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(); |