| Index: LayoutTests/svg/text/svgtextcontentelement-methods-parameters.html
|
| diff --git a/LayoutTests/svg/text/svgtextcontentelement-methods-parameters.html b/LayoutTests/svg/text/svgtextcontentelement-methods-parameters.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..45e815dcaf1d557619968621d7f9f75f02f4e053
|
| --- /dev/null
|
| +++ b/LayoutTests/svg/text/svgtextcontentelement-methods-parameters.html
|
| @@ -0,0 +1,90 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| +<link rel="help" href="http://www.w3.org/TR/SVG2/text.html#InterfaceSVGTextContentElement">
|
| +<script src="../../fast/js/resources/js-test-pre.js"></script>
|
| +</head>
|
| +<body>
|
| +<script>
|
| +description("Check that SVGTextContentElement methods' parameters are correctly validated");
|
| +
|
| +var svgNS = "http://www.w3.org/2000/svg";
|
| +
|
| +var svgRoot = document.createElementNS(svgNS, "svg");
|
| +document.documentElement.appendChild(svgRoot);
|
| +
|
| +var svgText = document.createElementNS(svgNS, "text");
|
| +svgText.style.fontFamily = "Ahem";
|
| +svgText.style.fontSize = "20px";
|
| +svgText.appendChild(document.createTextNode("abcdefg"));
|
| +svgRoot.appendChild(svgText);
|
| +
|
| +var actualTestPoint, expectedTestPoint;
|
| +function shouldBeEqualToSVGPoint(actualPoint, expectedPoint)
|
| +{
|
| + actualTestPoint = actualPoint;
|
| + expectedTestPoint = expectedPoint;
|
| + shouldBe("actualTestPoint.x", "expectedTestPoint.x");
|
| + shouldBe("actualTestPoint.y", "expectedTestPoint.y");
|
| +}
|
| +
|
| +var actualTestRect, expectedTestRect;
|
| +function shouldBeEqualToSVGRect(actualRect, expectedRect)
|
| +{
|
| + actualTestRect = actualRect;
|
| + expectedTestRect = expectedRect;
|
| + shouldBe("actualTestRect.x", "expectedTestRect.x");
|
| + shouldBe("actualTestRect.y", "expectedTestRect.y");
|
| + shouldBe("actualTestRect.width", "expectedTestRect.width");
|
| + shouldBe("actualTestRect.height", "expectedTestRect.height");
|
| +}
|
| +
|
| +// Arguments should be mandatory.
|
| +shouldThrow("svgText.getSubStringLength()", "'TypeError: Not enough arguments'");
|
| +shouldThrow("svgText.getSubStringLength(2)", "'TypeError: Not enough arguments'");
|
| +shouldThrow("svgText.getStartPositionOfChar()", "'TypeError: Not enough arguments'");
|
| +shouldThrow("svgText.getEndPositionOfChar()", "'TypeError: Not enough arguments'");
|
| +shouldThrow("svgText.getExtentOfChar()", "'TypeError: Not enough arguments'");
|
| +shouldThrow("svgText.getRotationOfChar()", "'TypeError: Not enough arguments'");
|
| +shouldThrow("svgText.getCharNumAtPosition()", "'TypeError: Not enough arguments'");
|
| +shouldThrow("svgText.selectSubString()", "'TypeError: Not enough arguments'");
|
| +shouldThrow("svgText.selectSubString(2)", "'TypeError: Not enough arguments'");
|
| +
|
| +// Should throw an IndexSizeError if charnum is greater than or equal to the number of characters at this node.
|
| +shouldThrow("svgText.getSubStringLength(999, 2)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.getStartPositionOfChar(999)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.getEndPositionOfChar(999)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.getExtentOfChar(999)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.getRotationOfChar(999)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.selectSubString(999, 2)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +
|
| +// Should not throw if charnum is negative and wraps to a valid positive index (-4294967294 wraps to 2).
|
| +shouldBe("svgText.getSubStringLength(-4294967294, 2)", "svgText.getSubStringLength(2, 2)");
|
| +shouldBeEqualToSVGPoint("svgText.getStartPositionOfChar(-4294967294)", "svgText.getStartPositionOfChar(2)");
|
| +shouldBeEqualToSVGPoint("svgText.getEndPositionOfChar(-4294967294)", "svgText.getEndPositionOfChar(2)");
|
| +shouldBeEqualToSVGRect("svgText.getExtentOfChar(-4294967294)", "svgText.getExtentOfChar(2)");
|
| +shouldBe("svgText.getRotationOfChar(-4294967294)", "svgText.getRotationOfChar(2)");
|
| +shouldNotThrow("svgText.selectSubString(-4294967294, 2)");
|
| +
|
| +// Should throw an IndexSizeError if charnum is negative and wraps to an invalid positive index.
|
| +shouldThrow("svgText.getSubStringLength(-1, 2)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.getStartPositionOfChar(-1)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.getEndPositionOfChar(-1)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.getExtentOfChar(-1)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.getRotationOfChar(-1)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +shouldThrow("svgText.selectSubString(-1, 2)", "'IndexSizeError: Index or size was negative, or greater than the allowed value.'");
|
| +
|
| +// We should not throw if nchars is negative or too large.
|
| +// If nchars specifies more characters than are available, then the substring will consist of all characters
|
| +// starting with charnum until the end of the list of characters.
|
| +shouldBe("svgText.getSubStringLength(2, 999)", "svgText.getSubStringLength(2, 5)");
|
| +shouldBe("svgText.getSubStringLength(2, -1)", "svgText.getSubStringLength(2, 5)");
|
| +shouldBe("svgText.getSubStringLength(2, 2)", "svgText.getSubStringLength(2, -4294967294)");
|
| +shouldNotThrow("svgText.selectSubString(2, 999)");
|
| +shouldNotThrow("svgText.selectSubString(2, -1)");
|
| +shouldNotThrow("svgText.selectSubString(2, -4294967294)");
|
| +
|
| +</script>
|
| +<script src="../../fast/js/resources/js-test-post.js"></script>
|
| +</body>
|
| +</html>
|
|
|