mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-28 10:37:17 +02:00
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:
committed by
Andreas Kling
parent
d3b2cd8ab6
commit
8ff52582ce
Notes:
sideshowbarker
2024-07-17 05:02:42 +09:00
Author: https://github.com/kennethmyhra Commit: https://github.com/SerenityOS/serenity/commit/8ff52582ce Pull-request: https://github.com/SerenityOS/serenity/pull/23869 Reviewed-by: https://github.com/shannonbooth ✅
47
Tests/LibWeb/Text/input/Streams/ReadableStream-pipeTo.html
Normal file
47
Tests/LibWeb/Text/input/Streams/ReadableStream-pipeTo.html
Normal 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>
|
||||
Reference in New Issue
Block a user