<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>window.enablePixelTesting = true;</script>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
    <text id="text1" x="500 1000 1500" y="50">   ABC  </text>
</svg>

<p id="description"></p>
<div id="console"></div>
<script type="text/javascript">
<![CDATA[
    description("This is a test of the simple SVGLengthList API parts.");

    if (window.testRunner)
        testRunner.dumpAsText();

    var text1 = document.getElementById("text1");
 
    // Spec: The object referenced by animVal will always be distinct from the one referenced by baseVal, even when the attribute is not animated.
    shouldBeTrue("text1.x.baseVal != text1.x.animVal");

    shouldBe("text1.x.baseVal.numberOfItems", "3");
    shouldBe("text1.x.animVal.numberOfItems", "3");
    shouldBe("text1.x.baseVal.getItem(0).value", "500");
    shouldBe("text1.x.baseVal.getItem(1).value", "1000");
    shouldBe("text1.x.baseVal.getItem(2).value", "1500");

    debug("");
    debug("Test uncommon arguments for initialize()");
    shouldThrow("text1.x.baseVal.initialize(30)");
    shouldThrow("text1.x.baseVal.initialize('aString')");
    shouldThrow("text1.x.baseVal.initialize(text1)");
    shouldThrow("text1.x.baseVal.initialize(null)");

    debug("");
    debug("Test uncommon arguments for getItem()");
    shouldThrow("text1.x.baseVal.getItem(30)");
    shouldBe("text1.x.baseVal.getItem('aString')", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.getItem(text1)", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.getItem(null)", "text1.x.baseVal.getItem(0)");

    debug("");
    debug("Test uncommon arguments for insertItemBefore()");
    shouldThrow("text1.x.baseVal.insertItemBefore(30)");
    shouldThrow("text1.x.baseVal.insertItemBefore('aString')");
    shouldThrow("text1.x.baseVal.insertItemBefore(text1)");
    shouldThrow("text1.x.baseVal.insertItemBefore(null)");

    shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 'aString')", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.numberOfItems", "3");
    shouldBe("text1.x.baseVal.getItem(0).value", "1000");
    shouldBe("text1.x.baseVal.getItem(1).value", "500");
    shouldBe("text1.x.baseVal.getItem(2).value", "1500");
    shouldBeEqualToString("text1.getAttribute('x')", "1000 500 1500");

    shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), text1)", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.numberOfItems", "3");
    shouldBe("text1.x.baseVal.getItem(0).value", "500");
    shouldBe("text1.x.baseVal.getItem(1).value", "1000");
    shouldBe("text1.x.baseVal.getItem(2).value", "1500");
    shouldBeEqualToString("text1.getAttribute('x')", "500 1000 1500");

    shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), null)", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.numberOfItems", "3");
    shouldBe("text1.x.baseVal.getItem(0).value", "1000");
    shouldBe("text1.x.baseVal.getItem(1).value", "500");
    shouldBe("text1.x.baseVal.getItem(2).value", "1500");
    shouldBeEqualToString("text1.getAttribute('x')", "1000 500 1500");

    shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 0)", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.numberOfItems", "3");
    shouldBe("text1.x.baseVal.getItem(0).value", "500");
    shouldBe("text1.x.baseVal.getItem(1).value", "1000");
    shouldBe("text1.x.baseVal.getItem(2).value", "1500");
    shouldBeEqualToString("text1.getAttribute('x')", "500 1000 1500");

    shouldThrow("text1.x.baseVal.insertItemBefore(30, 0)");
    shouldThrow("text1.x.baseVal.insertItemBefore('aString', 0)");
    shouldThrow("text1.x.baseVal.insertItemBefore(text1, 0)");
    shouldThrow("text1.x.baseVal.insertItemBefore(null, 0)");

    debug("");
    debug("Set x='1 2 3 4' for text1");
    shouldBeUndefined("text1.setAttribute('x', '1 2 3 4')");

    debug("");
    debug("Test edge cases for insertItemBefore()");
    shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(3), 3)", "text1.x.baseVal.getItem(3)");
    shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");
    shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 5)", "text1.x.baseVal.getItem(3)");
    shouldBeEqualToString("text1.getAttribute('x')", "1 3 4 2");
    shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 0)", "text1.x.baseVal.getItem(0)");
    shouldBeEqualToString("text1.getAttribute('x')", "3 1 4 2");

    debug("");
    debug("Set x='1 2 3 4' for text1");
    shouldBeUndefined("text1.setAttribute('x', '1 2 3 4')");
    shouldBe("text1.x.baseVal.numberOfItems", "4");
    shouldBe("text1.x.baseVal.getItem(0).value", "1");
    shouldBe("text1.x.baseVal.getItem(1).value", "2");
    shouldBe("text1.x.baseVal.getItem(2).value", "3");
    shouldBe("text1.x.baseVal.getItem(3).value", "4");
    shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");

    debug("");
    debug("Test uncommon arguments for replaceItem()");
    shouldThrow("text1.x.baseVal.replaceItem(30)");
    shouldThrow("text1.x.baseVal.replaceItem('aString')");
    shouldThrow("text1.x.baseVal.replaceItem(text1)");
    shouldThrow("text1.x.baseVal.replaceItem(null)");
    shouldThrow("text1.x.baseVal.replaceItem(30, 0)");
    shouldThrow("text1.x.baseVal.replaceItem('aString', 0)");
    shouldThrow("text1.x.baseVal.replaceItem(text1, 0)");
    shouldThrow("text1.x.baseVal.replaceItem(null, 0)");

    shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), 0)", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.numberOfItems", "4");
    shouldBe("text1.x.baseVal.getItem(0).value", "1");
    shouldBe("text1.x.baseVal.getItem(1).value", "2");
    shouldBe("text1.x.baseVal.getItem(2).value", "3");
    shouldBe("text1.x.baseVal.getItem(3).value", "4");
    shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");

    shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), 'aString')", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.numberOfItems", "4");
    shouldBe("text1.x.baseVal.getItem(0).value", "1");
    shouldBe("text1.x.baseVal.getItem(1).value", "2");
    shouldBe("text1.x.baseVal.getItem(2).value", "3");
    shouldBe("text1.x.baseVal.getItem(3).value", "4");
    shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");

    shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), text1)", "text1.x.baseVal.getItem(0)");
    shouldBe("text1.x.baseVal.numberOfItems", "4");
    shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");

    debug("");
    debug("Set x='1 2 3 4' for text1");
    shouldBeUndefined("text1.setAttribute('x', '1 2 3 4')");

    debug("");
    debug("Test edge cases for replaceItem()");
    shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(3), 3)", "text1.x.baseVal.getItem(3)");
    shouldBe("text1.x.baseVal.numberOfItems", "4");
    shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");
    shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(1), 3)", "text1.x.baseVal.getItem(2)");
    shouldBe("text1.x.baseVal.numberOfItems", "3");
    shouldBeEqualToString("text1.getAttribute('x')", "1 3 2");
    shouldThrow("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(3), 4)");

    debug("");
    debug("Set x='1 2 3 4' for text1");
    shouldBeUndefined("text1.setAttribute('x', '1 2 3 4')");

    debug("");
    debug("Test uncommon arguments for removeItem()");
    shouldThrow("text1.x.baseVal.removeItem(30)");

    shouldBe("text1.x.baseVal.removeItem(0).value", "1");
    shouldBe("text1.x.baseVal.numberOfItems", "3");
    shouldBe("text1.x.baseVal.getItem(0).value", "2");
    shouldBe("text1.x.baseVal.getItem(1).value", "3");
    shouldBe("text1.x.baseVal.getItem(2).value", "4");
    shouldBeEqualToString("text1.getAttribute('x')", "2 3 4");

    shouldBe("text1.x.baseVal.removeItem(text1).value", "2");
    shouldBe("text1.x.baseVal.numberOfItems", "2");
    shouldBe("text1.x.baseVal.getItem(0).value", "3");
    shouldBe("text1.x.baseVal.getItem(1).value", "4");
    shouldBeEqualToString("text1.getAttribute('x')", "3 4");

    debug("");
    debug("Test uncommon arguments for appendItem()");
    shouldThrow("text1.x.baseVal.appendItem(30)");
    shouldThrow("text1.x.baseVal.appendItem('aString')");
    shouldThrow("text1.x.baseVal.appendItem(text1)");
    shouldThrow("text1.x.baseVal.appendItem(null)");

    debug("");
    debug("Testing animVal clear throws");
    shouldThrow("text1.x.animVal.clear()");
    shouldBeUndefined("text1.x.baseVal.clear()");
 
]]>
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
