<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test.js"></script>
</head>
<body>
<img src="../resources/green-400x400.png"></img>
<script>
jsTestIsAsync = true;
let image = document.querySelector("img");
width = 0;
height = 0;

function updateImageOverlayTextDimensions() {
    let textBoundingRect = internals.shadowRoot(image).querySelector(".image-overlay-text").getBoundingClientRect();
    width = textBoundingRect.width;
    height = textBoundingRect.height;
}

addEventListener("load", async () => {
    internals.installImageOverlay(image, [
        {
            topLeft : new DOMPointReadOnly(0.5, 0.5),
            topRight : new DOMPointReadOnly(1, 0.5),
            bottomRight : new DOMPointReadOnly(1, 1),
            bottomLeft : new DOMPointReadOnly(0.5, 1),
            children: [
                {
                    text : "Hello",
                    topLeft : new DOMPointReadOnly(0.5, 0.5),
                    topRight : new DOMPointReadOnly(1, 0.5),
                    bottomRight : new DOMPointReadOnly(1, 1),
                    bottomLeft : new DOMPointReadOnly(0.5, 1),
                }
            ],
        }
    ]);

    updateImageOverlayTextDimensions();

    shouldBe("width", "200");
    shouldBe("height", "200");

    image.style.width = "100px";
    setInterval(updateImageOverlayTextDimensions, 10);

    await shouldBecomeEqual("width", "50");
    shouldBe("height", "50");

    image.style.width = "";
    await shouldBecomeEqual("width", "200");
    shouldBe("height", "200");

    finishJSTest();
});
</script>
</body>
</html>