mirror of
https://github.com/servo/servo
synced 2026-05-14 10:56:44 +02:00
70 lines
3.2 KiB
HTML
70 lines
3.2 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Response Receives Propagated Error from ReadableStream</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
function newStreamWithStartError() {
|
|
var err = new Error("Start error");
|
|
return [new ReadableStream({
|
|
start(controller) {
|
|
controller.error(err);
|
|
}
|
|
}),
|
|
err]
|
|
}
|
|
|
|
function newStreamWithPullError() {
|
|
var err = new Error("Pull error");
|
|
return [new ReadableStream({
|
|
pull(controller) {
|
|
controller.error(err);
|
|
}
|
|
}),
|
|
err]
|
|
}
|
|
|
|
function runRequestPromiseTest([stream, err], responseReaderMethod, testDescription) {
|
|
promise_test(test => {
|
|
return promise_rejects_exactly(
|
|
test,
|
|
err,
|
|
new Response(stream)[responseReaderMethod](),
|
|
'CustomTestError should propagate'
|
|
)
|
|
}, testDescription)
|
|
}
|
|
|
|
|
|
promise_test(test => {
|
|
var [stream, err] = newStreamWithStartError();
|
|
return promise_rejects_exactly(test, err, stream.getReader().read(), 'CustomTestError should propagate')
|
|
}, "ReadableStreamDefaultReader Promise receives ReadableStream start() Error")
|
|
|
|
promise_test(test => {
|
|
var [stream, err] = newStreamWithPullError();
|
|
return promise_rejects_exactly(test, err, stream.getReader().read(), 'CustomTestError should propagate')
|
|
}, "ReadableStreamDefaultReader Promise receives ReadableStream pull() Error")
|
|
|
|
|
|
// test start() errors for all Body reader methods
|
|
runRequestPromiseTest(newStreamWithStartError(), 'arrayBuffer', 'ReadableStream start() Error propagates to Response.arrayBuffer() Promise');
|
|
runRequestPromiseTest(newStreamWithStartError(), 'blob', 'ReadableStream start() Error propagates to Response.blob() Promise');
|
|
runRequestPromiseTest(newStreamWithStartError(), 'formData', 'ReadableStream start() Error propagates to Response.formData() Promise');
|
|
runRequestPromiseTest(newStreamWithStartError(), 'json', 'ReadableStream start() Error propagates to Response.json() Promise');
|
|
runRequestPromiseTest(newStreamWithStartError(), 'text', 'ReadableStream start() Error propagates to Response.text() Promise');
|
|
|
|
// test pull() errors for all Body reader methods
|
|
runRequestPromiseTest(newStreamWithPullError(), 'arrayBuffer', 'ReadableStream pull() Error propagates to Response.arrayBuffer() Promise');
|
|
runRequestPromiseTest(newStreamWithPullError(), 'blob', 'ReadableStream pull() Error propagates to Response.blob() Promise');
|
|
runRequestPromiseTest(newStreamWithPullError(), 'formData', 'ReadableStream pull() Error propagates to Response.formData() Promise');
|
|
runRequestPromiseTest(newStreamWithPullError(), 'json', 'ReadableStream pull() Error propagates to Response.json() Promise');
|
|
runRequestPromiseTest(newStreamWithPullError(), 'text', 'ReadableStream pull() Error propagates to Response.text() Promise');
|
|
</script>
|
|
</body>
|
|
</html>
|