ladybird/Tests/LibWeb/Text/input/HTML/SVGImageElement-load-and-error-events.html

42 lines
1.4 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<script src="../include.js"></script>
<script type="text/javascript">
const SOURCES = [
"data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==", // Valid
"file:///i-do-not-exist", // invalid
"https://something.invalid", // invalid
];
const runTest = (source) => {
const svgNamespace = "http://www.w3.org/2000/svg";
const image = document.createElementNS(svgNamespace, "image");
const svg = document.createElementNS(svgNamespace, "svg");
svg.appendChild(image);
document.body.appendChild(svg);
return new Promise((resolve) => {
image.addEventListener("load", () => {
resolve(`SUCCESS: "${source}"`);
document.body.removeChild(svg);
});
image.addEventListener("error", () => {
resolve(`FAIL: "${source}"`);
document.body.removeChild(svg);
});
image.setAttributeNS("http://www.w3.org/1999/xlink", "href", source);
});
};
asyncTest(done => {
const promises = SOURCES.map(source => runTest(source));
Promise.allSettled(promises)
.then(results => {
results.forEach(result => println(result.value));
})
.finally(done);
});
</script>