Chromium Code Reviews| Index: LayoutTests/svg/animations/svg-animation-policy-once.html |
| diff --git a/LayoutTests/svg/animations/svg-animation-policy-once.html b/LayoutTests/svg/animations/svg-animation-policy-once.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..47e7e937c5acada3f7ef3621f54b453ffd0cdd0b |
| --- /dev/null |
| +++ b/LayoutTests/svg/animations/svg-animation-policy-once.html |
| @@ -0,0 +1,95 @@ |
| +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
|
fs
2014/12/27 15:36:35
<!DOCTYPE html>
je_julie(Not used)
2014/12/28 05:50:26
Done.
|
| +<script src="../../resources/js-test.js"></script> |
| +<script src="resources/SVGAnimationTestCase.js"></script> |
| +<script> |
| +if (window.internals) |
| + internals.settings.setImageAnimationPolicy("once"); |
| +if (window.testRunner) { |
| + testRunner.dumpAsText(); |
| + testRunner.waitUntilDone(); |
| + window.jsTestIsAsync = true; |
|
fs
2014/12/27 15:36:35
Probably better to just set this(once) outside of
je_julie(Not used)
2014/12/28 05:50:26
Done.
|
| +} |
| + |
| +var rootSVGElement; |
| +var iframeElement; |
| + |
| +function embedSVGTestCase(uri) { |
| + window.jsTestIsAsync = true; |
|
fs
2014/12/27 15:36:35
No need to set this here (again).
je_julie(Not used)
2014/12/28 05:50:26
Done.
|
| + iframeElement = document.createElement("iframe"); |
| + iframeElement.setAttribute("style", "width: 300px; height: 300px;"); |
| + iframeElement.setAttribute("src", uri); |
| + iframeElement.setAttribute("onload", "iframeLoaded()"); |
| + |
| + var bodyElement = document.documentElement.lastChild; |
| + bodyElement.insertBefore(iframeElement, document.getElementById("description")); |
|
fs
2014/12/27 15:36:35
This could be:
<iframe src="resources/animation-p
je_julie(Not used)
2014/12/28 05:50:26
Done.
|
| +} |
| + |
| +function iframeLoaded() { |
| + rootSVGElement = iframeElement.getSVGDocument().rootElement; |
|
fs
2014/12/27 15:36:35
Use contentDocument.documentElement here instead o
je_julie(Not used)
2014/12/28 05:50:26
Done.
|
| +} |
| + |
| +embedSVGTestCase("resources/animation-policy.svg"); |
| + |
| +function timerFired() |
| +{ |
| + // It should be True because animation is frozen by animation policy. |
|
fs
2014/12/27 15:36:35
Drop the the "It should be" part (it doesn't reall
je_julie(Not used)
2014/12/28 05:50:26
Done.
|
| + shouldBeTrue("rootSVGElement.animationsPaused()"); |
| + |
| + // pauseAnimations after animation is frozen. |
| + rootSVGElement.pauseAnimations(); |
| + shouldBeTrue("rootSVGElement.animationsPaused()"); |
| + |
| + // unpauseAnimations after animation is frozen. |
| + rootSVGElement.unpauseAnimations(); |
| + shouldBeFalse("rootSVGElement.animationsPaused()"); |
| + |
| + // setCurrentTime after animation is frozen. |
| + rootSVGElement.setCurrentTime(5.0); |
| + shouldBe("rootSVGElement.getCurrentTime()", "5.0"); |
| + shouldBeCloseEnough("rect.y.animVal.value", "100"); |
|
fs
2014/12/27 15:36:35
It should be possible to make all the shouldBeClos
je_julie(Not used)
2014/12/28 05:50:26
Done.
|
| + |
| + finishJSTest(); |
| +} |
| + |
| +function runTest() { |
| + // SVG is not suspened. |
|
fs
2014/12/27 15:36:35
Nit: suspended (missing 'd')
je_julie(Not used)
2014/12/28 05:50:26
Done.
|
| + // Check setCurrentTime before animation is frozen. |
| + shouldBeFalse("rootSVGElement.animationsPaused()"); |
| + rootSVGElement.setCurrentTime(2.5); |
| + shouldBe("rootSVGElement.getCurrentTime()", "2.5"); |
| + shouldBeCloseEnough("rect.y.animVal.value", "100"); |
| + |
| + // Check pauseAnimations before animation is frozen. |
| + rootSVGElement.pauseAnimations(); |
| + shouldBeTrue("rootSVGElement.animationsPaused()"); |
| + |
| + // Check unpauseAnimations before animation is frozen. |
| + rootSVGElement.unpauseAnimations(); |
| + shouldBeFalse("rootSVGElement.animationsPaused()"); |
| + |
| + // Check setCurrentTime over duration before animation is frozen. |
| + rootSVGElement.setCurrentTime(5.0); |
| + shouldBe("rootSVGElement.getCurrentTime()", "5.0"); |
| + shouldBeCloseEnough("rect.y.animVal.value", "100"); |
| + shouldBeFalse("rootSVGElement.animationsPaused()"); |
| + |
| + // It will be fired after animation is frozen. |
| + // It's to check working after animation policy timer is fired. |
| + // animation policy timer is 3 secs. |
| + setTimeout(timerFired, 3000); |
| +} |
| + |
| +function prepareTest() { |
| + rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0]; |
| + description("This tests svg animation with animation policy once"); |
| + |
| + // Check SVG is not paused. |
| + shouldBeFalse("rootSVGElement.animationsPaused()"); |
| + setTimeout(runTest, 0); |
| +} |
| +</script> |
| +<body onload="prepareTest()"> |
| +<h1>SVG with animation policy, once</h1> |
| +<p id="description"></p> |
| +<div id="console"></div> |
| +</body> |