<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<html>
<head>
<style>
#testDiv {
    transition: transform 30s linear, color 2s, left 4s linear, top 4s linear;
    position: absolute;
}
</style>
</head>
<body>
<script src="../../../resources/js-test.js"></script>
<div id="testDiv">TEST</div>
<script>
description("Tests that CSS animations that are created while the page is hidden are properly resumed when the page becomes visible.");
jsTestIsAsync = true;

function registerAnimation()
{
    testDiv.style.transform = "rotate(170deg) scale(0.2781941414347284)";
}

onload = function() {
    setTimeout(function() {
        registerAnimation("170");

        setTimeout(function() {
            shouldBeFalse("internals.animationsAreSuspended()");
            shouldBe("internals.numberOfActiveAnimations()", "1");

            debug("Suspend animations");
            internals.suspendAnimations();
            setTimeout(function() {
                shouldBeTrue("internals.animationsAreSuspended()");

                pausedTransform = window.getComputedStyle(testDiv).transform;

                // Change style to make sure it does not make the animation active.
                testDiv.style.backgroundColor = "green";
                testDiv.offsetLeft;

                shouldBeTrue("internals.animationsAreSuspended()");

                setTimeout(function() {
                    shouldBeTrue("internals.animationsAreSuspended()");
                    shouldBe("window.getComputedStyle(testDiv).transform", "pausedTransform");

                    debug("Resume animations...");
                    internals.resumeAnimations();
                    shouldBecomeEqual("window.getComputedStyle(testDiv).transform != pausedTransform", "true", finishJSTest);
                }, 100);
            }, 0);
        }, 500);
    }, 0);
}
</script>
</body>
</html>
