<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="250" height="250">
    <g transform="translate(10, 10)">
        <path id="path1" d="M 0 0 L 100 0 L 0 100 L 100 100" fill="green"/>
    </g>
</svg>

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

    var svg = document.getElementById("svg");
    var path1 = document.getElementById("path1");

    debug("");
    debug("Check initial 'pathSegList' value of path1");
    shouldBe("path1.pathSegList.numberOfItems", "4");
    shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
    shouldBe("path1.pathSegList.getItem(0).x", "0");
    shouldBe("path1.pathSegList.getItem(0).y", "0");
    shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
    shouldBe("path1.pathSegList.getItem(1).x", "100");
    shouldBe("path1.pathSegList.getItem(1).y", "0");
    shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
    shouldBe("path1.pathSegList.getItem(2).x", "0");
    shouldBe("path1.pathSegList.getItem(2).y", "100");
    shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoAbs]");
    shouldBe("path1.pathSegList.getItem(3).x", "100");
    shouldBe("path1.pathSegList.getItem(3).y", "100");

    debug("");
    debug("Insert fourth item at position three using insertItemBefore()");
    shouldBeEqualToString("path1.pathSegList.insertItemBefore(path1.pathSegList.getItem(3), 2).toString()", "[object SVGPathSegLinetoAbs]");
    shouldBeEqualToString("path1.pathSegList.removeItem(4).toString()", "[object SVGPathSegLinetoAbs]");

    debug("");
    debug("Check final 'pathSegList' value of path1");
    shouldBe("path1.pathSegList.numberOfItems", "4");
    shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
    shouldBe("path1.pathSegList.getItem(0).x", "0");
    shouldBe("path1.pathSegList.getItem(0).y", "0");
    shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
    shouldBe("path1.pathSegList.getItem(1).x", "100");
    shouldBe("path1.pathSegList.getItem(1).y", "0");
    shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
    shouldBe("path1.pathSegList.getItem(2).x", "100");
    shouldBe("path1.pathSegList.getItem(2).y", "100");
    shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoAbs]");
    shouldBe("path1.pathSegList.getItem(3).x", "0");
    shouldBe("path1.pathSegList.getItem(3).y", "100");

]]>
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
