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

Unified Diff: third_party/WebKit/LayoutTests/svg/dom/SVGAngle.html

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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/svg/dom/SVGAngle-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/svg/dom/SVGAngle.html
diff --git a/third_party/WebKit/LayoutTests/svg/dom/SVGAngle.html b/third_party/WebKit/LayoutTests/svg/dom/SVGAngle.html
index d12930bb05ed563e0c70d4186a0d1465bb95b0b6..a609edcf798e4906ff326f493b3a99ec41858c02 100644
--- a/third_party/WebKit/LayoutTests/svg/dom/SVGAngle.html
+++ b/third_party/WebKit/LayoutTests/svg/dom/SVGAngle.html
@@ -1,11 +1,241 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<script src="../../resources/js-test.js"></script>
-</head>
-<body>
-<p id="description"></p>
-<div id="console"></div>
-<script src="script-tests/SVGAngle.js"></script>
-</body>
-</html>
+<!DOCTYPE HTML>
+<title>SVGAngle interface</title>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script>
+test(function() {
+ // This test checks the SVGAngle API.
+
+ var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
+ var angle = svgElement.createSVGAngle();
+
+ // Check initial angle values.
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+ assert_equals(angle.valueAsString, "0");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+
+ // Spec: Raised if unitType is SVG_ANGLETYPE_UNKNOWN or not a valid unit type constant (one of the other SVG_ANGLETYPE_* constants defined on this interface).
+ // Check invalid arguments for 'convertToSpecifiedUnits'.
+ assert_throws("NotSupportedError", function() { angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN); });
+ assert_throws("NotSupportedError", function() { angle.convertToSpecifiedUnits(-1); });
+ assert_throws("NotSupportedError", function() { angle.convertToSpecifiedUnits(5); });
+ // 'aString' converts to short 0 (through NaN) according to ECMA-262, ToUint16.
+ // Therefore this throws NOT_SUPPORTED_ERR.
+ assert_throws("NotSupportedError", function() { angle.convertToSpecifiedUnits('aString'); });
+ // Same here, via ToString conversion of object.
+ assert_throws("NotSupportedError", function() { angle.convertToSpecifiedUnits(angle); });
+ // Same here, via ToString conversion of object.
+ assert_throws("NotSupportedError", function() { angle.convertToSpecifiedUnits(svgElement); });
+ assert_throws(new TypeError(), function() { angle.convertToSpecifiedUnits(); });
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ // Check valid arguments for 'convertToSpecifiedUnits', that should only modify the 'valueAsString'");
+ angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD);
+ assert_equals(angle.valueAsString, "0rad");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_RAD);
+
+ angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_GRAD);
+ assert_equals(angle.valueAsString, "0grad");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_GRAD);
+
+ angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG);
+ assert_equals(angle.valueAsString, "0deg");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_DEG);
+
+ angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+ assert_equals(angle.valueAsString, "0");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ // Spec: Raised if unitType is SVG_ANGLETYPE_UNKNOWN or not a valid unit type constant (one of the other SVG_ANGLETYPE_* constants defined on this interface).
+ // Check invalid arguments for 'newValueSpecifiedUnits'.
+ assert_throws("NotSupportedError", function() { angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN, 50); });
+ assert_throws("NotSupportedError", function() { angle.newValueSpecifiedUnits(-1, 50); });
+ assert_throws("NotSupportedError", function() { angle.newValueSpecifiedUnits(5, 50); });
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG); });
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 'aString'); });
+ assert_equals(angle.value, 0);
+
+ angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 0);
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, angle); });
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, svgElement); });
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, NaN); });
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, Infinity); });
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG); });
+
+ // All of the following unitType arguments convert to 0 (SVG_ANGLETYPE_UNKNOWN).
+ assert_throws("NotSupportedError", function() { angle.newValueSpecifiedUnits('aString', 4); });
+ assert_throws("NotSupportedError", function() { angle.newValueSpecifiedUnits(angle, 4); });
+ assert_throws("NotSupportedError", function() { angle.newValueSpecifiedUnits(svgElement, 4); });
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits('aString', 'aString'); });
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(angle, angle); });
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(svgElement, svgElement); });
+ assert_throws(new TypeError(), function() { angle.newValueSpecifiedUnits(); });
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_DEG);
+
+ // Check valid arguments for 'newValueSpecifiedUnits', that should only modify the 'valueAsString'.
+ angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD, parseFloat(Math.PI.toFixed(5)));
+ assert_equals(angle.valueAsString, Math.PI.toFixed(5) + "rad");
+ assert_equals(angle.value.toFixed(1), "180.0");
+ assert_equals(angle.valueInSpecifiedUnits.toFixed(5), Math.PI.toFixed(5));
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_RAD);
+
+ angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_GRAD, 400);
+ assert_equals(angle.valueAsString, "400grad");
+ assert_equals(angle.value.toFixed(1), "360.0");
+ assert_equals(angle.valueInSpecifiedUnits, 400);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_GRAD);
+
+ angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 360);
+ assert_equals(angle.valueAsString, "360deg");
+ assert_equals(angle.value, 360);
+ assert_equals(angle.valueInSpecifiedUnits, 360);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_DEG);
+
+ angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIFIED, 180);
+ assert_equals(angle.valueAsString, "180");
+ assert_equals(angle.value, 180);
+ assert_equals(angle.valueInSpecifiedUnits, 180);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ // Reset to initial angle state.
+ angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNSPECIFIED, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ // Spec: Raised if the assigned string cannot be parsed as a valid <angle>.
+ // Check setting invalid 'valueAsString' arguments.
+ assert_throws("SyntaxError", function() { angle.valueAsString = '10px'; });
+ assert_equals(angle.valueAsString, "0");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ assert_throws("SyntaxError", function() { angle.valueAsString = '10x'; });
+ assert_equals(angle.valueAsString, "0");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ assert_throws("SyntaxError", function() { angle.valueAsString = '5graD'; });
+ assert_equals(angle.valueAsString, "0");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ assert_throws("SyntaxError", function() { angle.valueAsString = '5Rad'; });
+ assert_equals(angle.valueAsString, "0");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ assert_throws("SyntaxError", function() { angle.valueAsString = ',5 rad'; });
+ assert_equals(angle.valueAsString, "0");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ assert_throws("SyntaxError", function() { angle.valueAsString = null; });
+ assert_equals(angle.valueAsString, "0");
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ // Check setting invalid 'valueInSpecifiedUnits' arguments
+ assert_throws(new TypeError(), function() { angle.valueInSpecifiedUnits = 'test'; });
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+ angle.valueInSpecifiedUnits = 0;
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+
+ assert_throws(new TypeError(), function() { angle.valueInSpecifiedUnits = angle; });
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.valueInSpecifiedUnits = NaN; });
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.valueInSpecifiedUnits = Infinity; });
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ // Check setting invalid 'value' arguments.
+ angle.value = 0;
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.value = 'test'; });
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ angle.value = 0;
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.value = angle; });
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.value = NaN; });
+ assert_equals(angle.value, 0);
+ assert_throws(new TypeError(), function() { angle.value = Infinity; });
+ assert_equals(angle.value, 0);
+ assert_equals(angle.valueInSpecifiedUnits, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_UNSPECIFIED);
+
+ // Reset to angle in degree units.
+ angle.newValueSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG, 0);
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_DEG);
+
+ // Check setting valid 'value' arguments, assure that 'valueInSpecifiedUnits' and 'valueAsString' are synchronized.
+ angle.value = 50;
+ assert_equals(angle.value, 50);
+ assert_equals(angle.valueInSpecifiedUnits, 50);
+ assert_equals(angle.valueAsString, "50deg");
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_DEG);
+
+ // Try modifiying the readonly 'unitType', needs to fail.
+ angle.unitType = SVGAngle.SVG_ANGLETYPE_RAD;
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_DEG);
+
+ // Check setting valid 'valueInSpecifiedUnits' arguments, assure that 'value' and 'valueAsString' are synchronized.
+ angle.valueInSpecifiedUnits = 100;
+ assert_equals(angle.valueInSpecifiedUnits, 100);
+ assert_equals(angle.value, 100);
+ assert_equals(angle.valueAsString, "100deg");
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_DEG);
+
+ // Check setting valid 'valueAsString' arguments, assure that 'value' and 'valueInSpecifiedUnits' are synchronized.
+ angle.valueAsString = '200grad';
+ assert_equals(angle.valueAsString, "200grad");
+ assert_equals(angle.valueInSpecifiedUnits, 200);
+ assert_equals(angle.value.toFixed(1), "180.0");
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_GRAD);
+
+ // Now convert the GRAD value into a RAD value, and assure that all properties have been synchronized.
+ angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_RAD);
+ assert_equals(angle.value.toFixed(1), "180.0");
+ assert_equals(angle.valueInSpecifiedUnits.toFixed(5), Math.PI.toFixed(5));
+ assert_equals(angle.valueAsString, Math.PI.toFixed(5) + "rad");
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_RAD);
+
+ // Now try converting the RAD value into an unknown value, that should fail and throw;
+ assert_throws("NotSupportedError", function() { angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_UNKNOWN); });
+ assert_equals(angle.value.toFixed(1), "180.0");
+ assert_equals(angle.valueInSpecifiedUnits.toFixed(5), Math.PI.toFixed(5));
+ assert_equals(angle.valueAsString, Math.PI.toFixed(5) + "rad");
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_RAD);
+
+ // Now convert the RAD value into a DEG value, and assure that all properties have been synchronized.
+ angle.convertToSpecifiedUnits(SVGAngle.SVG_ANGLETYPE_DEG);
+ assert_equals(angle.value.toFixed(1), "180.0");
+ assert_equals(angle.valueInSpecifiedUnits.toFixed(1), "180.0");
+ assert_equals(angle.valueAsString, "180deg");
+ assert_equals(angle.unitType, SVGAngle.SVG_ANGLETYPE_DEG);
+});
+</script>
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/svg/dom/SVGAngle-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698