ladybird/Tests/LibWeb/Text/input/HTML/HTMLVideoElement-resize-event-during-playback.html
Zaggy1024 af9ab3b3fa Tests: Complete the resize during playback test upon ended and seeked
Otherwise, we may miss the ended event if the order of the events is
changed.
2026-06-11 05:49:14 -05:00

36 lines
1.3 KiB
HTML

<!DOCTYPE html>
<script src="../include.js"></script>
<video id="video"></video>
<script>
const video = document.getElementById("video");
function logEvent(name) {
println(`${name}: videoWidth=${video.videoWidth} videoHeight=${video.videoHeight}`);
}
for (const name of ["loadedmetadata", "resize", "ended", "seeked"]) {
video.addEventListener(name, () => logEvent(name));
}
asyncTest(async done => {
video.src = "../../../Assets/resize-320x240-640x480.webm";
await new Promise(resolve => video.addEventListener("loadedmetadata", resolve, { once: true }));
println("--- play ---");
await video.play();
await new Promise(resolve => video.addEventListener("ended", resolve, { once: true }));
println("--- seek to 0 ---");
video.currentTime = 0;
await new Promise(resolve => video.addEventListener("seeked", resolve, { once: true }));
println("--- seek to end ---");
const sawEnded = new Promise(resolve => video.addEventListener("ended", resolve, { once: true }));
const sawSeeked = new Promise(resolve => video.addEventListener("seeked", resolve, { once: true }));
video.currentTime = video.duration;
await Promise.all([sawEnded, sawSeeked]);
done();
});
</script>