| 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>
|
|
|