mirror of
https://github.com/servo/servo
synced 2026-05-11 09:26:59 +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 CustomTestError() {
|
|
const error = Error();
|
|
error.name = 'custom-test-error';
|
|
return error;
|
|
}
|
|
|
|
function newStreamWithStartError() {
|
|
return new ReadableStream({
|
|
start(controller) {
|
|
controller.error(CustomTestError());
|
|
}
|
|
})
|
|
}
|
|
|
|
function newStreamWithPullError() {
|
|
return new ReadableStream({
|
|
pull(controller) {
|
|
controller.error(CustomTestError());
|
|
}
|
|
})
|
|
}
|
|
|
|
function runRequestPromiseTest(stream, responseReaderMethod, testDescription) {
|
|
promise_test(test => {
|
|
return promise_rejects(
|
|
test,
|
|
CustomTestError(),
|
|
new Response(stream)[responseReaderMethod](),
|
|
'CustomTestError should propagate'
|
|
)
|
|
}, testDescription)
|
|
}
|
|
|
|
|
|
promise_test(test => {
|
|
return promise_rejects(test, CustomTestError(), newStreamWithStartError().getReader().read(), 'CustomTestError should propagate')
|
|
}, "ReadableStreamDefaultReader Promise receives ReadableStream start() Error")
|
|
|
|
promise_test(test => {
|
|
return promise_rejects(test, CustomTestError(), newStreamWithPullError().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>
|