1 description("Test 'to' animation of SVGNumberOptionalNumber with optional number.");
5 var defs
= createSVGElement("defs");
6 rootSVGElement
.appendChild(defs
);
8 var filter
= createSVGElement("filter");
9 filter
.setAttribute("id", "filter");
10 filter
.setAttribute("x", "-30%");
11 filter
.setAttribute("y", "-30%");
12 filter
.setAttribute("width", "160%");
13 filter
.setAttribute("height", "160%");
14 defs
.appendChild(filter
);
16 var feGaussianBlur
= createSVGElement("feGaussianBlur");
17 feGaussianBlur
.setAttribute("id", "blur");
18 feGaussianBlur
.setAttribute("stdDeviation", "5");
19 filter
.appendChild(feGaussianBlur
);
21 var rect
= createSVGElement("rect");
22 rect
.setAttribute("id", "rect");
23 rect
.setAttribute("x", "50");
24 rect
.setAttribute("y", "50");
25 rect
.setAttribute("width", "200");
26 rect
.setAttribute("height", "200");
27 rect
.setAttribute("fill", "green");
28 rect
.setAttribute("filter", "url(#filter)");
29 rect
.setAttribute("onclick", "executeTest()");
30 rootSVGElement
.appendChild(rect
);
32 var animate
= createSVGElement("animate");
33 animate
.setAttribute("id", "animation");
34 animate
.setAttribute("attributeName", "stdDeviation");
35 animate
.setAttribute("begin", "rect.click");
36 animate
.setAttribute("dur", "4s");
37 animate
.setAttribute("from", "5 5");
38 animate
.setAttribute("to", "40 10");
39 feGaussianBlur
.appendChild(animate
);
41 // Setup animation test
43 shouldBeCloseEnough("feGaussianBlur.stdDeviationX.animVal", "5");
44 shouldBeCloseEnough("feGaussianBlur.stdDeviationY.animVal", "5");
46 shouldBe("feGaussianBlur.stdDeviationX.baseVal", "5");
47 shouldBe("feGaussianBlur.stdDeviationY.baseVal", "5");
51 shouldBeCloseEnough("feGaussianBlur.stdDeviationX.animVal", "22.5");
52 shouldBeCloseEnough("feGaussianBlur.stdDeviationY.animVal", "7.5");
54 shouldBe("feGaussianBlur.stdDeviationX.baseVal", "5");
55 shouldBe("feGaussianBlur.stdDeviationY.baseVal", "5");
59 shouldBeCloseEnough("feGaussianBlur.stdDeviationX.animVal", "40");
60 shouldBeCloseEnough("feGaussianBlur.stdDeviationY.animVal", "10");
62 shouldBe("feGaussianBlur.stdDeviationX.baseVal", "5");
63 shouldBe("feGaussianBlur.stdDeviationY.baseVal", "5");
66 function executeTest() {
67 const expectedValues
= [
68 // [animationId, time, sampleCallback]
69 ["animation", 0.0, sample1
],
70 ["animation", 2.0, sample2
],
71 ["animation", 3.999, sample3
],
72 ["animation", 4.001, sample1
]
75 runAnimationTest(expectedValues
);
80 var successfullyParsed
= true;