<!DOCTYPE html>
<title>SVGTextContentElement equality methods' parameters are correctly validated</title>
<link rel="help" href="http://www.w3.org/TR/SVG2/text.html#InterfaceSVGTextContentElement">
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
  test(function() {
    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 emptySvgText = document.createElementNS(svgNS, "text");
    svgRoot.appendChild(emptySvgText);

    // Test the equality part of the restriction.
    assert_throws_dom("IndexSizeError", function() { svgText.getSubStringLength(7, 2); });
    assert_throws_dom("IndexSizeError", function() { svgText.getStartPositionOfChar(7); });
    assert_throws_dom("IndexSizeError", function() { svgText.getEndPositionOfChar(7); });
    assert_throws_dom("IndexSizeError", function() { svgText.getExtentOfChar(7); });
    assert_throws_dom("IndexSizeError", function() { svgText.getRotationOfChar(7); });
    assert_throws_dom("IndexSizeError", function() { svgText.selectSubString(7, 2); });
  
    // Test the equality part of the restriction for the <number of chars> == 0 case.
    assert_throws_dom("IndexSizeError", function() { emptySvgText.getSubStringLength(0, 2); });
    assert_throws_dom("IndexSizeError", function() { emptySvgText.getStartPositionOfChar(0); });
    assert_throws_dom("IndexSizeError", function() { emptySvgText.getEndPositionOfChar(0); });
    assert_throws_dom("IndexSizeError", function() { emptySvgText.getExtentOfChar(0); });
    assert_throws_dom("IndexSizeError", function() { emptySvgText.getRotationOfChar(0); });
    assert_throws_dom("IndexSizeError", function() { emptySvgText.selectSubString(0, 2); });
  
    // cleanup
    document.documentElement.removeChild(svgRoot);
  });
</script>
