blob: c682622f9a6ac407d01adcc5301f3764aa1676d1 [file] [log] [blame]
<!DOCTYPE html>
<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)";
}
function checkTransformAndFinishTest()
{
shouldBecomeEqual("window.getComputedStyle(testDiv).transform != pausedTransform", "true", finishJSTest);
}
onload = function() {
debug("Suspend animations");
internals.suspendAnimations();
setTimeout(function() {
registerAnimation("170");
setTimeout(function() {
shouldBeTrue("internals.animationsAreSuspended()");
shouldBe("internals.numberOfActiveAnimations()", "0");
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()");
shouldBe("internals.numberOfActiveAnimations()", "0");
setTimeout(function() {
shouldBe("window.getComputedStyle(testDiv).transform", "pausedTransform");
debug("Resume animations");
internals.resumeAnimations();
shouldBecomeEqual("internals.numberOfActiveAnimations()", "1", checkTransformAndFinishTest);
}, 50);
}, 500);
}, 0);
}
</script>
</body>
</html>