Tests/LibWeb: Add test to prove we can pipe to a WriteableStream

This proves our ability to pipe the current ReadableStream to a given
WriteableStream.
This commit is contained in:
Kenneth Myhra 2024-04-06 19:12:03 +02:00 committed by Andreas Kling
commit 8ff52582ce
Notes: sideshowbarker 2024-07-17 05:02:42 +09:00
2 changed files with 50 additions and 0 deletions

View file

@ -0,0 +1,47 @@
<script src="../include.js"></script>
<script>
const CHUNK1 = "abcdefghijklmnopqrstuvwxyz";
const CHUNK2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const CHUNK3 = "0123456789!@#$%^&*()-=_+,<";
asyncTest(done => {
const writableStream = new WritableStream(
{
write(chunk) {
return new Promise((resolve) => {
const textDecoder = new TextDecoder("utf-8");
println(textDecoder.decode(new Uint8Array(chunk)));
resolve();
});
}
}
);
const stream = new ReadableStream({
start(controller) {
pullCount = 0;
},
pull(controller) {
const textEncoder = new TextEncoder();
++pullCount;
if (pullCount == 1) {
controller.enqueue(textEncoder.encode(CHUNK1));
} else if (pullCount == 2) {
controller.enqueue(textEncoder.encode(CHUNK2));
} else if (pullCount == 3) {
controller.enqueue(textEncoder.encode(CHUNK3));
} else {
controller.close();
}
},
cancel() {},
});
stream.pipeTo(writableStream).then(() => {
done();
});
});
</script>