OLD | NEW |
| (Empty) |
1 description("This test checks the use of SVGAnimatedEnumeration within SVGMarker
Element"); | |
2 | |
3 var markerElement = document.createElementNS("http://www.w3.org/2000/svg", "mark
er"); | |
4 markerElement.setAttribute("markerUnits", "userSpaceOnUse"); | |
5 markerElement.setAttribute("orient", "auto"); | |
6 | |
7 var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); | |
8 | |
9 // markerUnits | |
10 debug(""); | |
11 debug("Check initial 'markerUnits' value"); | |
12 shouldBeEqualToString("markerElement.markerUnits.toString()", "[object SVGAnimat
edEnumeration]"); | |
13 shouldBeEqualToString("typeof(markerElement.markerUnits.baseVal)", "number"); | |
14 shouldBe("markerElement.markerUnits.baseVal", "SVGMarkerElement.SVG_MARKERUNITS_
USERSPACEONUSE"); | |
15 | |
16 debug(""); | |
17 debug("Switch to 'strokeWidth'"); | |
18 shouldBe("markerElement.markerUnits.baseVal = SVGMarkerElement.SVG_MARKERUNITS_S
TROKEWIDTH", "SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH"); | |
19 shouldBe("markerElement.markerUnits.baseVal", "SVGMarkerElement.SVG_MARKERUNITS_
STROKEWIDTH"); | |
20 shouldBeEqualToString("markerElement.getAttribute('markerUnits')", "strokeWidth"
); | |
21 | |
22 debug(""); | |
23 debug("Try setting invalid values"); | |
24 shouldThrow("markerElement.markerUnits.baseVal = 3"); | |
25 shouldBe("markerElement.markerUnits.baseVal", "SVGMarkerElement.SVG_MARKERUNITS_
STROKEWIDTH"); | |
26 shouldBeEqualToString("markerElement.getAttribute('markerUnits')", "strokeWidth"
); | |
27 | |
28 shouldThrow("markerElement.markerUnits.baseVal = -1"); | |
29 shouldBe("markerElement.markerUnits.baseVal", "SVGMarkerElement.SVG_MARKERUNITS_
STROKEWIDTH"); | |
30 shouldBeEqualToString("markerElement.getAttribute('markerUnits')", "strokeWidth"
); | |
31 | |
32 shouldThrow("markerElement.markerUnits.baseVal = 0"); | |
33 shouldBe("markerElement.markerUnits.baseVal", "SVGMarkerElement.SVG_MARKERUNITS_
STROKEWIDTH"); | |
34 shouldBeEqualToString("markerElement.getAttribute('markerUnits')", "strokeWidth"
); | |
35 | |
36 debug(""); | |
37 debug("Switch to 'userSpaceOnUse'"); | |
38 shouldBe("markerElement.markerUnits.baseVal = SVGMarkerElement.SVG_MARKERUNITS_U
SERSPACEONUSE", "SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE"); | |
39 shouldBe("markerElement.markerUnits.baseVal", "SVGMarkerElement.SVG_MARKERUNITS_
USERSPACEONUSE"); | |
40 shouldBeEqualToString("markerElement.getAttribute('markerUnits')", "userSpaceOnU
se"); | |
41 | |
42 // orientType | |
43 debug(""); | |
44 debug("Check initial 'orient' value"); | |
45 shouldBeEqualToString("markerElement.orientType.toString()", "[object SVGAnimate
dEnumeration]"); | |
46 shouldBeEqualToString("typeof(markerElement.orientType.baseVal)", "number"); | |
47 shouldBe("markerElement.orientAngle.baseVal.value", "0"); | |
48 shouldBe("markerElement.orientAngle.baseVal.unitType", "SVGAngle.SVG_ANGLETYPE_U
NSPECIFIED"); | |
49 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_AUTO"); | |
50 | |
51 debug(""); | |
52 debug("Switch to 'Pi/2 rad' value - via setOrientToAngle()"); | |
53 shouldBeUndefined("anglePiHalfRad = svgElement.createSVGAngle(); anglePiHalfRad.
newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD, (Math.PI / 2).toFixed(2))"); | |
54 shouldBeUndefined("markerElement.setOrientToAngle(anglePiHalfRad)"); | |
55 shouldBeEqualToString("markerElement.orientAngle.baseVal.value.toFixed(1)", "90.
0"); | |
56 shouldBe("markerElement.orientAngle.baseVal.unitType", "SVGAngle.SVG_ANGLETYPE_R
AD"); | |
57 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_ANGLE"); | |
58 shouldBeEqualToString("markerElement.getAttribute('orient')", (Math.PI / 2).toFi
xed(2) + "rad"); | |
59 | |
60 debug(""); | |
61 debug("Switch to 'auto' value - via setOrientToAuto()"); | |
62 shouldBeUndefined("markerElement.setOrientToAuto()"); | |
63 shouldBe("markerElement.orientAngle.baseVal.value", "0"); | |
64 shouldBe("markerElement.orientAngle.baseVal.unitType", "SVGAngle.SVG_ANGLETYPE_U
NSPECIFIED"); | |
65 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_AUTO"); | |
66 shouldBeEqualToString("markerElement.getAttribute('orient')", "auto"); | |
67 | |
68 debug(""); | |
69 debug("Switch to '20deg' value - via setOrientToAngle()"); | |
70 shouldBeUndefined("angle20deg = svgElement.createSVGAngle(); angle20deg.newValue
SpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 20)"); | |
71 shouldBeUndefined("markerElement.setOrientToAngle(angle20deg)"); | |
72 shouldBe("markerElement.orientAngle.baseVal.value", "20"); | |
73 shouldBe("markerElement.orientAngle.baseVal.unitType", "SVGAngle.SVG_ANGLETYPE_D
EG"); | |
74 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_ANGLE"); | |
75 shouldBeEqualToString("markerElement.getAttribute('orient')", "20deg"); | |
76 | |
77 debug(""); | |
78 debug("Switch to '10deg' value"); | |
79 shouldBe("markerElement.orientAngle.baseVal.value = 10", "10"); | |
80 shouldBe("markerElement.orientAngle.baseVal.value", "10"); | |
81 shouldBe("markerElement.orientAngle.baseVal.unitType", "SVGAngle.SVG_ANGLETYPE_D
EG"); | |
82 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_ANGLE"); | |
83 shouldBeEqualToString("markerElement.getAttribute('orient')", "10deg"); | |
84 | |
85 debug(""); | |
86 debug("Switch to 'auto' value - by modifying orientType"); | |
87 shouldBe("markerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_
AUTO", "SVGMarkerElement.SVG_MARKER_ORIENT_AUTO"); | |
88 shouldBe("markerElement.orientAngle.baseVal.value", "0"); | |
89 shouldBe("markerElement.orientAngle.baseVal.unitType", "SVGAngle.SVG_ANGLETYPE_U
NSPECIFIED"); | |
90 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_AUTO"); | |
91 shouldBeEqualToString("markerElement.getAttribute('orient')", "auto"); | |
92 | |
93 markerElement.setAttribute('orient', '10deg'); | |
94 | |
95 debug(""); | |
96 debug("Try setting invalid values"); | |
97 shouldThrow("markerElement.orientType.baseVal = 3"); | |
98 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_ANGLE"); | |
99 shouldBeEqualToString("markerElement.getAttribute('orient')", "10deg"); | |
100 | |
101 shouldThrow("markerElement.orientType.baseVal = -1"); | |
102 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_ANGLE"); | |
103 shouldBeEqualToString("markerElement.getAttribute('orient')", "10deg"); | |
104 | |
105 shouldThrow("markerElement.orientType.baseVal = 0"); | |
106 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_ANGLE"); | |
107 shouldBeEqualToString("markerElement.getAttribute('orient')", "10deg"); | |
108 | |
109 debug(""); | |
110 debug("Switch back to 'auto' value"); | |
111 shouldBe("markerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_
AUTO", "SVGMarkerElement.SVG_MARKER_ORIENT_AUTO"); | |
112 shouldBe("markerElement.orientAngle.baseVal.value", "0"); | |
113 shouldBe("markerElement.orientAngle.baseVal.unitType", "SVGAngle.SVG_ANGLETYPE_U
NSPECIFIED"); | |
114 shouldBe("markerElement.orientType.baseVal", "SVGMarkerElement.SVG_MARKER_ORIENT
_AUTO"); | |
115 shouldBeEqualToString("markerElement.getAttribute('orient')", "auto"); | |
116 | |
117 successfullyParsed = true; | |
OLD | NEW |