mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 23:17:46 +00:00
LibWeb: Begin implementing the HTMLInputElement 'image' type state
This implements enough to represent <input type=image> with its loaded source image (or fallback to its alt text, if applicable). This does not implement acquring coordinates from user-activated click events on the image.
This commit is contained in:
parent
45a47cb32b
commit
debb5690ce
7 changed files with 214 additions and 2 deletions
31
Tests/LibWeb/Text/input/input-image.html
Normal file
31
Tests/LibWeb/Text/input/input-image.html
Normal file
|
@ -0,0 +1,31 @@
|
|||
<script src="./include.js"></script>
|
||||
<script type="text/javascript">
|
||||
const SOURCES = ["../../Layout/input/120.png", "file:///i-do-no-exist-i-swear.png"];
|
||||
|
||||
const runTest = source => {
|
||||
let input = document.createElement("input");
|
||||
input.type = "image";
|
||||
input.alt = "submit";
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
input.addEventListener("load", () => {
|
||||
resolve(`${input.src} loaded`);
|
||||
});
|
||||
input.addEventListener("error", () => {
|
||||
resolve(`${input.src} failed`);
|
||||
});
|
||||
|
||||
input.setAttribute("src", source);
|
||||
});
|
||||
};
|
||||
|
||||
asyncTest(done => {
|
||||
let promises = SOURCES.map(source => runTest(source));
|
||||
|
||||
Promise.allSettled(promises)
|
||||
.then(results => results.map(result => result.value))
|
||||
.then(results => results.sort())
|
||||
.then(results => results.forEach(println))
|
||||
.finally(done);
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue