227 lines
11 KiB
HTML
227 lines
11 KiB
HTML
<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)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(2).toString()", "[object SVGLength]");
|
|
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)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(2).toString()", "[object SVGLength]");
|
|
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)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(2).toString()", "[object SVGLength]");
|
|
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)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(2).toString()", "[object SVGLength]");
|
|
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.x.baseVal.removeItem(4).toString()", "[object SVGLength]");
|
|
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");
|
|
shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 5)", "text1.x.baseVal.getItem(4)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(1).toString()", "[object SVGLength]");
|
|
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.x.baseVal.removeItem(2).toString()", "[object SVGLength]");
|
|
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(3)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(1).toString()", "[object SVGLength]");
|
|
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 overlapping edge cases for replaceItem()");
|
|
var item = text1.x.baseVal.getItem(3);
|
|
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), 3)", "text1.x.baseVal.getItem(3)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(0).toString()", "[object SVGLength]");
|
|
shouldBe("text1.x.baseVal.numberOfItems", "3");
|
|
item = text1.x.baseVal.getItem(2);
|
|
item.newValueSpecifiedUnits(item.unitType, item.value * 2);
|
|
shouldBe("text1.x.baseVal.getItem(2).value", "2");
|
|
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), 2)", "text1.x.baseVal.getItem(2)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(0).toString()", "[object SVGLength]");
|
|
shouldBe("text1.x.baseVal.numberOfItems", "2");
|
|
item = text1.x.baseVal.getItem(1);
|
|
item.newValueSpecifiedUnits(item.unitType, item.value * 2);
|
|
shouldBe("text1.x.baseVal.getItem(1).value", "4");
|
|
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), 1)", "text1.x.baseVal.getItem(1)");
|
|
shouldBeEqualToString("text1.x.baseVal.removeItem(1).toString()", "[object SVGLength]");
|
|
shouldBe("text1.x.baseVal.numberOfItems", "1");
|
|
item = text1.x.baseVal.getItem(0);
|
|
item.newValueSpecifiedUnits(item.unitType, item.value * 2);
|
|
shouldBe("text1.x.baseVal.getItem(0).value", "6");
|
|
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), 0)", "text1.x.baseVal.getItem(0)");
|
|
shouldBe("text1.x.baseVal.numberOfItems", "1");
|
|
|
|
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>
|