<!DOCTYPE html>
<html>
<head>
    <style>
        #box {
            width: 100px;
            height: 100px;
            background-color: blue;
        }

        .animating {
            animation: move 150ms linear 2;
        }

        @keyframes move {
            from { transform: translateX(0); }
            to   { transform: translateX(500px); }
        }
    </style>
    <script>

        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }

        window.addEventListener("load", () => {
            if (!window.internals || !window.testRunner)
                return;

            const box = document.getElementById("box");
            const result = document.getElementById("result");

            box.addEventListener("animationstart", () => internals.startTrackingStyleRecalcs());
            box.addEventListener("animationiteration", () => result.innerText = "Got iteration event.\n");
            box.addEventListener("animationend", () => {
                const numRecalcs = internals.styleRecalcCount();
                if (numRecalcs > 3)
                    result.innerText += "FAIL: saw " + numRecalcs + " style recalcs during the animation, should only see three."
                else 
                    result.innerText += "PASS: saw three or fewer style recalcs during the animation."

                if (window.testRunner)
                    testRunner.notifyDone();
            });
            box.classList.add("animating");
        });
    </script>
</head>
<body>
<div id="box"></div>
<p id="result"></p>
</body>
</html>
