Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Side by Side Diff: third_party/WebKit/LayoutTests/svg/dom/script-tests/SVGAngle.js

Issue 2741153003: Convert LayoutTests/svg/dom/*.html js-tests.js to testharness.js based tests. (Closed)
Patch Set: Align with review comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 description("This test checks the SVGAngle API");
2
3 var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
4 var angle = svgElement.createSVGAngle();
5
6 debug("");
7 debug("Check initial angle values");
8 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
9 shouldBeEqualToString("angle.valueAsString", "0");
10 shouldBe("angle.value", "0");
11 shouldBe("angle.valueInSpecifiedUnits", "0");
12
13 // Spec: Raised if unitType is SVG_ANGLETYPE_UNKNOWN or not a valid unit type co nstant (one of the other SVG_ANGLETYPE_* constants defined on this interface).
14 debug("");
15 debug("Check invalid arguments for 'convertToSpecifiedUnits'");
16 shouldThrow("angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN)");
17 shouldThrow("angle.convertToSpecifiedUnits(-1)");
18 shouldThrow("angle.convertToSpecifiedUnits(5)");
19 // 'aString' converts to short 0 (through NaN) according to ECMA-262, ToUint16.
20 // Therefore this throws NOT_SUPPORTED_ERR.
21 shouldThrow("angle.convertToSpecifiedUnits('aString')");
22 // Same here, via ToString conversion of object.
23 shouldThrow("angle.convertToSpecifiedUnits(angle)");
24 // Same here, via ToString conversion of object.
25 shouldThrow("angle.convertToSpecifiedUnits(svgElement)");
26 shouldThrow("angle.convertToSpecifiedUnits()");
27 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
28
29 debug("");
30 debug("Check valid arguments for 'convertToSpecifiedUnits', that should only mod ify the 'valueAsString'");
31 shouldBeUndefined("angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD)");
32 shouldBeEqualToString("angle.valueAsString", "0rad");
33 shouldBe("angle.value", "0");
34 shouldBe("angle.valueInSpecifiedUnits", "0");
35 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_RAD");
36
37 shouldBeUndefined("angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_GRAD)");
38 shouldBeEqualToString("angle.valueAsString", "0grad");
39 shouldBe("angle.value", "0");
40 shouldBe("angle.valueInSpecifiedUnits", "0");
41 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_GRAD");
42
43 shouldBeUndefined("angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG)");
44 shouldBeEqualToString("angle.valueAsString", "0deg");
45 shouldBe("angle.value", "0");
46 shouldBe("angle.valueInSpecifiedUnits", "0");
47 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_DEG");
48
49 shouldBeUndefined("angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIF IED)");
50 shouldBeEqualToString("angle.valueAsString", "0");
51 shouldBe("angle.value", "0");
52 shouldBe("angle.valueInSpecifiedUnits", "0");
53 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
54
55 // Spec: Raised if unitType is SVG_ANGLETYPE_UNKNOWN or not a valid unit type co nstant (one of the other SVG_ANGLETYPE_* constants defined on this interface).
56 debug("");
57 debug("Check invalid arguments for 'newValueSpecifiedUnits'");
58 shouldThrow("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN, 50)");
59 shouldThrow("angle.newValueSpecifiedUnits(-1, 50)");
60 shouldThrow("angle.newValueSpecifiedUnits(5, 50)");
61 shouldThrow("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG)");
62 shouldThrow("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 'aString') ");
63 shouldBe("angle.value", "0");
64 shouldBeUndefined("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 0)") ;
65 shouldThrow("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, angle)");
66 shouldBe("angle.value", "0");
67 shouldThrow("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, svgElement )");
68 shouldBe("angle.value", "0");
69 shouldThrow("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, NaN)");
70 shouldBe("angle.value", "0");
71 shouldThrow("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, Infinity)" );
72 shouldBe("angle.value", "0");
73 shouldThrow("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG)");
74 // All of the following unitType arguments convert to 0 (SVG_ANGLETYPE_UNKNOWN).
75 shouldThrow("angle.newValueSpecifiedUnits('aString', 4)");
76 shouldThrow("angle.newValueSpecifiedUnits(angle, 4)");
77 shouldThrow("angle.newValueSpecifiedUnits(svgElement, 4)");
78 shouldThrow("angle.newValueSpecifiedUnits('aString', 'aString')");
79 shouldThrow("angle.newValueSpecifiedUnits(angle, angle)");
80 shouldThrow("angle.newValueSpecifiedUnits(svgElement, svgElement)");
81 shouldThrow("angle.newValueSpecifiedUnits()");
82 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_DEG");
83
84 debug("");
85 debug("Check valid arguments for 'newValueSpecifiedUnits', that should only modi fy the 'valueAsString'");
86 shouldBeUndefined("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD, pars eFloat(Math.PI.toFixed(5)))");
87 shouldBeEqualToString("angle.valueAsString", Math.PI.toFixed(5) + "rad");
88 shouldBeEqualToString("angle.value.toFixed(1)", "180.0");
89 shouldBe("angle.valueInSpecifiedUnits.toFixed(5)", "Math.PI.toFixed(5)");
90 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_RAD");
91
92 shouldBeUndefined("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_GRAD, 400 )");
93 shouldBeEqualToString("angle.valueAsString", "400grad");
94 shouldBeEqualToString("angle.value.toFixed(1)", "360.0");
95 shouldBe("angle.valueInSpecifiedUnits", "400");
96 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_GRAD");
97
98 shouldBeUndefined("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 360) ");
99 shouldBeEqualToString("angle.valueAsString", "360deg");
100 shouldBe("angle.value", "360");
101 shouldBe("angle.valueInSpecifiedUnits", "360");
102 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_DEG");
103
104 shouldBeUndefined("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIFI ED, 180)");
105 shouldBeEqualToString("angle.valueAsString", "180");
106 shouldBe("angle.value", "180");
107 shouldBe("angle.valueInSpecifiedUnits", "180");
108 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
109
110 debug("");
111 debug("Reset to initial angle state");
112 shouldBeUndefined("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIFI ED, 0)");
113 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
114
115 // Spec: Raised if the assigned string cannot be parsed as a valid <angle>.
116 debug("");
117 debug("Check setting invalid 'valueAsString' arguments");
118 shouldThrow("angle.valueAsString = '10px'");
119 shouldBeEqualToString("angle.valueAsString", "0");
120 shouldBe("angle.value", "0");
121 shouldBe("angle.valueInSpecifiedUnits", "0");
122 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
123
124 shouldThrow("angle.valueAsString = '10x'");
125 shouldBeEqualToString("angle.valueAsString", "0");
126 shouldBe("angle.value", "0");
127 shouldBe("angle.valueInSpecifiedUnits", "0");
128 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
129
130 shouldThrow("angle.valueAsString = '5graD'");
131 shouldBeEqualToString("angle.valueAsString", "0");
132 shouldBe("angle.value", "0");
133 shouldBe("angle.valueInSpecifiedUnits", "0");
134 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
135
136 shouldThrow("angle.valueAsString = '5Rad'");
137 shouldBeEqualToString("angle.valueAsString", "0");
138 shouldBe("angle.value", "0");
139 shouldBe("angle.valueInSpecifiedUnits", "0");
140 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
141
142 shouldThrow("angle.valueAsString = ',5 rad'");
143 shouldBeEqualToString("angle.valueAsString", "0");
144 shouldBe("angle.value", "0");
145 shouldBe("angle.valueInSpecifiedUnits", "0");
146 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
147
148 shouldThrow("angle.valueAsString = null");
149 shouldBeEqualToString("angle.valueAsString", "0");
150 shouldBe("angle.value", "0");
151 shouldBe("angle.valueInSpecifiedUnits", "0");
152 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
153
154 debug("");
155 debug("Check setting invalid 'valueInSpecifiedUnits' arguments");
156 shouldThrow("angle.valueInSpecifiedUnits = 'test'");
157 shouldBe("angle.value", "0");
158 shouldBe("angle.valueInSpecifiedUnits", "0");
159 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
160 shouldBe("angle.valueInSpecifiedUnits = 0", "0");
161
162 shouldThrow("angle.valueInSpecifiedUnits = angle");
163 shouldBe("angle.value", "0");
164 shouldThrow("angle.valueInSpecifiedUnits = NaN");
165 shouldBe("angle.value", "0");
166 shouldThrow("angle.valueInSpecifiedUnits = Infinity");
167 shouldBe("angle.value", "0");
168 shouldBe("angle.valueInSpecifiedUnits", "0");
169 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
170
171 debug("");
172 debug("Check setting invalid 'value' arguments");
173 shouldBe("angle.value = 0", "0");
174 shouldThrow("angle.value = 'test'");
175 shouldBe("angle.value", "0");
176 shouldBe("angle.valueInSpecifiedUnits", "0");
177 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
178
179 shouldBe("angle.value = 0", "0");
180 shouldThrow("angle.value = angle");
181 shouldBe("angle.value", "0");
182 shouldThrow("angle.value = NaN");
183 shouldBe("angle.value", "0");
184 shouldThrow("angle.value = Infinity");
185 shouldBe("angle.value", "0");
186 shouldBe("angle.valueInSpecifiedUnits", "0");
187 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_UNSPECIFIED");
188
189 debug("");
190 debug("Reset to angle in degree units");
191 shouldBeUndefined("angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 0)") ;
192 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_DEG");
193
194 debug("");
195 debug("Check setting valid 'value' arguments, assure that 'valueInSpecifiedUnits ' and 'valueAsString' are synchronized");
196 shouldBe("angle.value = 50", "50");
197 shouldBe("angle.valueInSpecifiedUnits", "50");
198 shouldBeEqualToString("angle.valueAsString", "50deg");
199 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_DEG");
200
201 debug("");
202 debug("Try modifiying the readonly 'unitType', needs to fail");
203 shouldBeUndefined("angle.unitType = SVGAngle.SVG_ANGLETTYE_RAD");
204 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_DEG");
205
206 debug("");
207 debug("Check setting valid 'valueInSpecifiedUnits' arguments, assure that 'value ' and 'valueAsString' are synchronized");
208 shouldBe("angle.valueInSpecifiedUnits = 100", "100");
209 shouldBe("angle.value", "100");
210 shouldBeEqualToString("angle.valueAsString", "100deg");
211 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_DEG");
212
213 debug("");
214 debug("Check setting valid 'valueAsString' arguments, assure that 'value' and 'v alueInSpecifiedUnits' are synchronized");
215 shouldBeEqualToString("angle.valueAsString = '200grad'", "200grad");
216 shouldBe("angle.valueInSpecifiedUnits", "200");
217 shouldBeEqualToString("angle.value.toFixed(1)", "180.0");
218 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_GRAD");
219
220 debug("");
221 debug("Now convert the GRAD value into a RAD value, and assure that all properti es have been synchronized");
222 shouldBeUndefined("angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD)");
223 shouldBeEqualToString("angle.value.toFixed(1)", "180.0");
224 shouldBeEqualToString("angle.valueInSpecifiedUnits.toFixed(5)", Math.PI.toFixed( 5));
225 shouldBeEqualToString("angle.valueAsString", Math.PI.toFixed(5) + "rad");
226 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_RAD");
227
228 debug("");
229 debug("Now try converting the RAD value into an unknown value, that should fail and throw");
230 shouldThrow("angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN)");
231 shouldBeEqualToString("angle.value.toFixed(1)", "180.0");
232 shouldBeEqualToString("angle.valueInSpecifiedUnits.toFixed(5)", Math.PI.toFixed( 5));
233 shouldBeEqualToString("angle.valueAsString", Math.PI.toFixed(5) + "rad");
234 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_RAD");
235
236 debug("");
237 debug("Now convert the RAD value into a DEG value, and assure that all propertie s have been synchronized");
238 shouldBeUndefined("angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG)");
239 shouldBeEqualToString("angle.value.toFixed(1)", "180.0");
240 shouldBeEqualToString("angle.valueInSpecifiedUnits.toFixed(1)", "180.0");
241 shouldBeEqualToString("angle.valueAsString", "180deg");
242 shouldBe("angle.unitType", "SVGAngle.SVG_ANGLETYPE_DEG");
243
244 successfullyParsed = true;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698