ladybird/Tests/LibWeb/Text/input/HTML/data-transfer.html
Timothy Flynn c9cbaeb59d LibWeb: Convert some sync tests to be async
The events tested here are decidedly async. We also can't really write
sync tests of the form "test(async () => {})". Nothing will await the
async callback.
2024-10-03 07:07:28 -04:00

56 lines
2 KiB
HTML

<script src="../include.js"></script>
<script>
asyncTest(async done => {
let dataTransfer = new DataTransfer();
println(`dropEffect: ${dataTransfer.dropEffect}`);
println(`effectAllowed: ${dataTransfer.effectAllowed}`);
let dataTransferItemList = dataTransfer.items;
println(`length=${dataTransferItemList.length}, types=${dataTransfer.types}`);
let stringItem = dataTransferItemList.add("well hello friends", "custom-type");
println(`stringItem: kind=${stringItem.kind}, type=${stringItem.type}`);
println(`length=${dataTransferItemList.length}, types=${dataTransfer.types}`);
if (dataTransferItemList[0] !== stringItem) {
println("FAILED");
}
let promise = new Promise((resolve, reject) => {
stringItem.getAsString(data => {
println(`stringItemAsString: data=${data}`);
resolve();
});
});
await promise;
try {
dataTransferItemList.add("well hello friends", "custom-type");
println("FAILED");
} catch (e) {}
let file = new File(["well hello friends"], "file.txt", {
type: "text/plain",
});
let fileItem = dataTransferItemList.add(file);
println(`fileItem: kind=${fileItem.kind}, type=${fileItem.type}`);
println(`length=${dataTransferItemList.length}, types=${dataTransfer.types}`);
let fileItemAsFile = fileItem.getAsFile();
println(`fileItemAsFile: name=${fileItemAsFile.name}, type=${fileItemAsFile.type}`);
let fileItemAsEntry = fileItem.webkitGetAsEntry();
println(`fileItemAsEntry: name=${fileItemAsEntry.name}, file=${fileItemAsEntry.isFile}, directory=${fileItemAsEntry.isDirectory}`);
if (dataTransferItemList[1] !== fileItem) {
println("FAILED");
}
if (dataTransferItemList[2] !== undefined) {
println("FAILED");
}
done();
});
</script>