blob: 2a02e1f60ac9c1b271bfc647cc4112666228e34a [file] [log] [blame]
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Response consume blob and http bodies</title>
<meta name="help" href="https://fetch.spec.whatwg.org/#response">
<meta name="help" href="https://fetch.spec.whatwg.org/#body-mixin">
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script src="../resources/utils.js"></script>
<script>
promise_test(function(test) {
return new Response(new Blob([], { "type" : "text/plain" })).body.cancel();
}, "Cancelling a starting blob Response stream");
promise_test(function(test) {
var response = new Response(new Blob(["This is data"], { "type" : "text/plain" }));
var reader = response.body.getReader();
reader.read();
return reader.cancel();
}, "Cancelling a loading blob Response stream");
promise_test(function(test) {
var response = new Response(new Blob(["T"], { "type" : "text/plain" }));
var reader = response.body.getReader();
var closedPromise = reader.closed.then(function() {
return reader.cancel();
});
reader.read();
return closedPromise;
}, "Cancelling a closed blob Response stream");
promise_test(function(test) {
return fetch(RESOURCES_DIR + "trickle.py?ms=30&count=100").then(function(response) {
return response.body.cancel();
});
}, "Cancelling a starting Response stream");
promise_test(function() {
return fetch(RESOURCES_DIR + "trickle.py?ms=30&count=100").then(function(response) {
var reader = response.body.getReader();
return reader.read().then(function() {
return reader.cancel();
});
});
}, "Cancelling a loading Response stream");
promise_test(function() {
return fetch(RESOURCES_DIR + "top.txt").then(function(response) {
var reader = response.body.getReader();
var closedPromise = reader.closed.then(function() {
return reader.cancel();
});
reader.read();
return closedPromise;
});
}, "Cancelling a closed Response stream");
</script>
</body>
</html>