Implement SVGGeometryElement's isPointInFill and isPointInStroke
[WebKit-https.git] / LayoutTests / svg / dom / SVGAnimatedEnumeration-SVGGradientElement.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../../resources/js-test-pre.js"></script>
5 </head>
6 <body>
7 <p id="description"></p>
8 <div id="console"></div>
9 <script>
10 description("This test checks the use of SVGAnimatedEnumeration within SVGGradientElement");
11
12 var gradientElement = document.createElementNS("http://www.w3.org/2000/svg", "linearGradient");
13 gradientElement.setAttribute("gradientUnits", "userSpaceOnUse");
14 gradientElement.setAttribute("spreadMethod", "pad");
15
16 // gradientUnits
17 debug("");
18 debug("Check initial 'gradientUnits' value");
19 shouldBeEqualToString("gradientElement.gradientUnits.toString()", "[object SVGAnimatedEnumeration]");
20 shouldBeEqualToString("typeof(gradientElement.gradientUnits.baseVal)", "number");
21 shouldBe("gradientElement.gradientUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE");
22
23 debug("");
24 debug("Switch to 'objectBoundingBox'");
25 shouldBe("gradientElement.gradientUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
26 shouldBe("gradientElement.gradientUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
27 shouldBeEqualToString("gradientElement.getAttribute('gradientUnits')", "objectBoundingBox");
28
29 debug("");
30 debug("Try setting invalid values");
31 shouldThrow("gradientElement.gradientUnits.baseVal = 3");
32 shouldBe("gradientElement.gradientUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
33 shouldBeEqualToString("gradientElement.getAttribute('gradientUnits')", "objectBoundingBox");
34
35 shouldThrow("gradientElement.gradientUnits.baseVal = -1");
36 shouldBe("gradientElement.gradientUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
37 shouldBeEqualToString("gradientElement.getAttribute('gradientUnits')", "objectBoundingBox");
38
39 shouldThrow("gradientElement.gradientUnits.baseVal = 0");
40 shouldBe("gradientElement.gradientUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
41 shouldBeEqualToString("gradientElement.getAttribute('gradientUnits')", "objectBoundingBox");
42
43 debug("");
44 debug("Switch to 'userSpaceOnUse'");
45 shouldBe("gradientElement.gradientUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE", "SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE");
46 shouldBe("gradientElement.gradientUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE");
47 shouldBeEqualToString("gradientElement.getAttribute('gradientUnits')", "userSpaceOnUse");
48
49 // spreadMethod
50 debug("");
51 debug("Check initial 'spreadMethod' value");
52 shouldBeEqualToString("gradientElement.spreadMethod.toString()", "[object SVGAnimatedEnumeration]");
53 shouldBeEqualToString("typeof(gradientElement.spreadMethod.baseVal)", "number");
54 shouldBe("gradientElement.spreadMethod.baseVal", "SVGGradientElement.SVG_SPREADMETHOD_PAD");
55
56 debug("");
57 debug("Switch to 'reflect' value");
58 shouldBe("gradientElement.spreadMethod.baseVal = SVGGradientElement.SVG_SPREADMETHOD_REFLECT", "SVGGradientElement.SVG_SPREADMETHOD_REFLECT");
59 shouldBe("gradientElement.spreadMethod.baseVal", "SVGGradientElement.SVG_SPREADMETHOD_REFLECT");
60 shouldBeEqualToString("gradientElement.getAttribute('spreadMethod')", "reflect");
61
62 debug("");
63 debug("Switch to 'repeat' value");
64 shouldBe("gradientElement.spreadMethod.baseVal = SVGGradientElement.SVG_SPREADMETHOD_REPEAT", "SVGGradientElement.SVG_SPREADMETHOD_REPEAT");
65 shouldBe("gradientElement.spreadMethod.baseVal", "SVGGradientElement.SVG_SPREADMETHOD_REPEAT");
66 shouldBeEqualToString("gradientElement.getAttribute('spreadMethod')", "repeat");
67
68 debug("");
69 debug("Try setting invalid values");
70 shouldThrow("gradientElement.spreadMethod.baseVal = 4");
71 shouldBe("gradientElement.spreadMethod.baseVal", "SVGGradientElement.SVG_SPREADMETHOD_REPEAT");
72 shouldBeEqualToString("gradientElement.getAttribute('spreadMethod')", "repeat");
73
74 shouldThrow("gradientElement.spreadMethod.baseVal = -1");
75 shouldBe("gradientElement.spreadMethod.baseVal", "SVGGradientElement.SVG_SPREADMETHOD_REPEAT");
76 shouldBeEqualToString("gradientElement.getAttribute('spreadMethod')", "repeat");
77
78 shouldThrow("gradientElement.spreadMethod.baseVal = 0");
79 shouldBe("gradientElement.spreadMethod.baseVal", "SVGGradientElement.SVG_SPREADMETHOD_REPEAT");
80 shouldBeEqualToString("gradientElement.getAttribute('spreadMethod')", "repeat");
81
82 debug("");
83 debug("Switch to 'pad'");
84 shouldBe("gradientElement.spreadMethod.baseVal = SVGGradientElement.SVG_SPREADMETHOD_PAD", "SVGGradientElement.SVG_SPREADMETHOD_PAD");
85 shouldBe("gradientElement.spreadMethod.baseVal", "SVGGradientElement.SVG_SPREADMETHOD_PAD");
86 shouldBeEqualToString("gradientElement.getAttribute('spreadMethod')", "pad");
87
88 successfullyParsed = true;
89 </script>
90 <script src="../../resources/js-test-post.js"></script>
91 </body>
92 </html>