1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 12:24:57 +00:00
serenity/Tests/LibWeb/Text/input/FileAPI/filereader-basic.html
Shannon Booth 77d32fcb5f LibWeb: Add an initial implementation for Web::FileAPI::FileReader
Some steps are still to be implemented, namely:
 * Properly aborting the read algorithm
 * Handling BinaryString type properly
 * Setting error on any error

But as it stands, this is enough functionality for the basic case of
reading the contents of a blob using the FileReader API.
2023-09-17 16:37:31 -06:00

28 lines
1.1 KiB
HTML

<script src="../include.js"></script>
<script>
asyncTest((done) => {
const array = ['This is some data to be read! 🦬'];
let blob = new Blob(array, { type: "application/octet-stream"});
let fileReader = new FileReader();
let count = 0;
// Trigger events in order of readAs Text->DataURL->ArrayBuffer
fileReader.addEventListener("loadend", () => {
++count;
if (count === 1) {
println(`${count}: readAsText(): '${fileReader.result}' error: '${fileReader.error}'`);
fileReader.readAsDataURL(blob);
} else if (count === 2) {
println(`${count}: readAsDataURL(): '${fileReader.result}' error: '${fileReader.error}'`);
fileReader.readAsArrayBuffer(blob);
} else if (count === 3) {
println(`${count}: readAsArrayBuffer(): '${new TextDecoder().decode(fileReader.result)}' error: '${fileReader.error}'`);
done();
}
});
fileReader.readAsText(blob);
});
</script>