OLD | NEW |
1 description("Test calcMode spline with to animation. You should see a green 100x
100 path and only PASS messages"); | 1 description("Test calcMode spline with to animation. You should see a green 100x
100 path and only PASS messages"); |
2 createSVGTestCase(); | 2 createSVGTestCase(); |
3 | 3 |
4 // Setup test document | 4 // Setup test document |
5 var path = createSVGElement("path"); | 5 var path = createSVGElement("path"); |
6 path.setAttribute("id", "path"); | 6 path.setAttribute("id", "path"); |
7 path.setAttribute("d", "M 40 40 L 60 40 L 60 60 L 40 60 z"); | 7 path.setAttribute("d", "M 40 40 L 60 40 L 60 60 L 40 60 Z"); |
8 path.setAttribute("fill", "green"); | 8 path.setAttribute("fill", "green"); |
9 path.setAttribute("onclick", "executeTest()"); | 9 path.setAttribute("onclick", "executeTest()"); |
10 | 10 |
11 var animate = createSVGElement("animate"); | 11 var animate = createSVGElement("animate"); |
12 animate.setAttribute("id", "animation"); | 12 animate.setAttribute("id", "animation"); |
13 animate.setAttribute("attributeName", "d"); | 13 animate.setAttribute("attributeName", "d"); |
14 animate.setAttribute("to", "M 0 0 L 100 0 L 100 100 L 0 100 z"); | 14 animate.setAttribute("to", "M 0 0 L 100 0 L 100 100 L 0 100 z"); |
15 animate.setAttribute("begin", "click"); | 15 animate.setAttribute("begin", "click"); |
16 animate.setAttribute("dur", "4s"); | 16 animate.setAttribute("dur", "4s"); |
17 path.appendChild(animate); | 17 path.appendChild(animate); |
18 rootSVGElement.appendChild(path); | 18 rootSVGElement.appendChild(path); |
19 | 19 |
20 // Setup animation test | 20 // Setup animation test |
21 function checkBaseVal() { | |
22 shouldBe("path.pathSegList.numberOfItems", "5"); | |
23 shouldBeEqualToString("path.pathSegList.getItem(0).pathSegTypeAsLetter", "M"
); | |
24 shouldBe("path.pathSegList.getItem(0).x", "40"); | |
25 shouldBe("path.pathSegList.getItem(0).y", "40"); | |
26 shouldBeEqualToString("path.pathSegList.getItem(1).pathSegTypeAsLetter", "L"
); | |
27 shouldBe("path.pathSegList.getItem(1).x", "60"); | |
28 shouldBe("path.pathSegList.getItem(1).y", "40"); | |
29 shouldBeEqualToString("path.pathSegList.getItem(2).pathSegTypeAsLetter", "L"
); | |
30 shouldBe("path.pathSegList.getItem(2).x", "60"); | |
31 shouldBe("path.pathSegList.getItem(2).y", "60"); | |
32 shouldBeEqualToString("path.pathSegList.getItem(3).pathSegTypeAsLetter", "L"
); | |
33 shouldBe("path.pathSegList.getItem(3).x", "40"); | |
34 shouldBe("path.pathSegList.getItem(3).y", "60"); | |
35 shouldBeEqualToString("path.pathSegList.getItem(4).pathSegTypeAsLetter", "Z"
); | |
36 } | |
37 | |
38 function sample1() { | 21 function sample1() { |
39 // Check initial/end conditions | 22 // Check initial/end conditions |
40 shouldBe("path.animatedPathSegList.numberOfItems", "5"); | 23 shouldBeEqualToString("path.getAttribute('d')", "M 40 40 L 60 40 L 60 60 L 4
0 60 Z"); |
41 shouldBeEqualToString("path.animatedPathSegList.getItem(0).pathSegTypeAsLett
er", "M"); | |
42 shouldBeCloseEnough("path.animatedPathSegList.getItem(0).x", "40"); | |
43 shouldBeCloseEnough("path.animatedPathSegList.getItem(0).y", "40"); | |
44 shouldBeEqualToString("path.animatedPathSegList.getItem(1).pathSegTypeAsLett
er", "L"); | |
45 shouldBeCloseEnough("path.animatedPathSegList.getItem(1).x", "60"); | |
46 shouldBeCloseEnough("path.animatedPathSegList.getItem(1).y", "40"); | |
47 shouldBeEqualToString("path.animatedPathSegList.getItem(2).pathSegTypeAsLett
er", "L"); | |
48 shouldBeCloseEnough("path.animatedPathSegList.getItem(2).x", "60"); | |
49 shouldBeCloseEnough("path.animatedPathSegList.getItem(2).y", "60"); | |
50 shouldBeEqualToString("path.animatedPathSegList.getItem(3).pathSegTypeAsLett
er", "L"); | |
51 shouldBeCloseEnough("path.animatedPathSegList.getItem(3).x", "40"); | |
52 shouldBeCloseEnough("path.animatedPathSegList.getItem(3).y", "60"); | |
53 shouldBeEqualToString("path.animatedPathSegList.getItem(4).pathSegTypeAsLett
er", "Z"); | |
54 checkBaseVal(); | |
55 } | 24 } |
56 | 25 |
57 function sample2() { | 26 function sample2() { |
58 shouldBe("path.animatedPathSegList.numberOfItems", "5"); | 27 shouldBeEqualToString("path.getAttribute('d')", "M 20 20 L 80 20 L 80 80 L 2
0 80 Z"); |
59 shouldBeEqualToString("path.animatedPathSegList.getItem(0).pathSegTypeAsLett
er", "M"); | |
60 shouldBeCloseEnough("path.animatedPathSegList.getItem(0).x", "20"); | |
61 shouldBeCloseEnough("path.animatedPathSegList.getItem(0).y", "20"); | |
62 shouldBeEqualToString("path.animatedPathSegList.getItem(1).pathSegTypeAsLett
er", "L"); | |
63 shouldBeCloseEnough("path.animatedPathSegList.getItem(1).x", "80"); | |
64 shouldBeCloseEnough("path.animatedPathSegList.getItem(1).y", "20"); | |
65 shouldBeEqualToString("path.animatedPathSegList.getItem(2).pathSegTypeAsLett
er", "L"); | |
66 shouldBeCloseEnough("path.animatedPathSegList.getItem(2).x", "80"); | |
67 shouldBeCloseEnough("path.animatedPathSegList.getItem(2).y", "80"); | |
68 shouldBeEqualToString("path.animatedPathSegList.getItem(3).pathSegTypeAsLett
er", "L"); | |
69 shouldBeCloseEnough("path.animatedPathSegList.getItem(3).x", "20"); | |
70 shouldBeCloseEnough("path.animatedPathSegList.getItem(3).y", "80"); | |
71 shouldBeEqualToString("path.animatedPathSegList.getItem(4).pathSegTypeAsLett
er", "Z"); | |
72 checkBaseVal(); | |
73 } | 28 } |
74 | 29 |
75 function sample3() { | 30 function sample3() { |
76 shouldBe("path.animatedPathSegList.numberOfItems", "5"); | 31 shouldBeEqualToString("path.getAttribute('d')", "M 0.00999928 0.00999928 L 9
9.99 0.00999928 L 99.99 99.99 L 0.00999928 99.99 Z"); |
77 shouldBeEqualToString("path.animatedPathSegList.getItem(0).pathSegTypeAsLett
er", "M"); | |
78 shouldBeCloseEnough("path.animatedPathSegList.getItem(0).x", "0"); | |
79 shouldBeCloseEnough("path.animatedPathSegList.getItem(0).y", "0"); | |
80 shouldBeEqualToString("path.animatedPathSegList.getItem(1).pathSegTypeAsLett
er", "L"); | |
81 shouldBeCloseEnough("path.animatedPathSegList.getItem(1).x", "100"); | |
82 shouldBeCloseEnough("path.animatedPathSegList.getItem(1).y", "0"); | |
83 shouldBeEqualToString("path.animatedPathSegList.getItem(2).pathSegTypeAsLett
er", "L"); | |
84 shouldBeCloseEnough("path.animatedPathSegList.getItem(2).x", "100"); | |
85 shouldBeCloseEnough("path.animatedPathSegList.getItem(2).y", "100"); | |
86 shouldBeEqualToString("path.animatedPathSegList.getItem(3).pathSegTypeAsLett
er", "L"); | |
87 shouldBeCloseEnough("path.animatedPathSegList.getItem(3).x", "0"); | |
88 shouldBeCloseEnough("path.animatedPathSegList.getItem(3).y", "100"); | |
89 shouldBeEqualToString("path.animatedPathSegList.getItem(4).pathSegTypeAsLett
er", "Z"); | |
90 checkBaseVal(); | |
91 } | 32 } |
92 | 33 |
93 function executeTest() { | 34 function executeTest() { |
94 const expectedValues = [ | 35 const expectedValues = [ |
95 // [animationId, time, sampleCallback] | 36 // [animationId, time, sampleCallback] |
96 ["animation", 0.0, sample1], | 37 ["animation", 0.0, sample1], |
97 ["animation", 2.0, sample2], | 38 ["animation", 2.0, sample2], |
98 ["animation", 3.999, sample3], | 39 ["animation", 3.999, sample3], |
99 ["animation", 4.001, sample1] | 40 ["animation", 4.001, sample1] |
100 ]; | 41 ]; |
101 | 42 |
102 runAnimationTest(expectedValues); | 43 runAnimationTest(expectedValues); |
103 } | 44 } |
104 | 45 |
105 var successfullyParsed = true; | 46 var successfullyParsed = true; |
OLD | NEW |