210 lines
11 KiB
HTML
210 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">
|
|
<polyline id="poly1" stroke="green" points="0 0 100 0 100 100 0 100"/>
|
|
</svg>
|
|
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script type="text/javascript">
|
|
<![CDATA[
|
|
description("This is a test of the simple SVGPointList API parts.");
|
|
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
// Extend String prototype, to offer a function, that formats the points attribute in the same way across browsers
|
|
String.prototype.formatPointsAttribute = function() {
|
|
return this.replace(/,/g, " "); // Remove Firefox commas
|
|
}
|
|
|
|
function dumpPoint(point) {
|
|
return "x=" + point.x.toFixed(0) + " y=" + point.y.toFixed(0);
|
|
}
|
|
|
|
var svg = document.getElementById("svg");
|
|
var poly1 = document.getElementById("poly1");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 0 100 0 100 100 0 100");
|
|
|
|
var point;
|
|
debug("");
|
|
debug("Creating point x=200 y=100");
|
|
shouldBeEqualToString("(point = svg.createSVGPoint()).toString()", "[object SVGPoint]");
|
|
shouldBe("point.x = 200", "200");
|
|
shouldBe("point.y = 100", "100");
|
|
|
|
debug("");
|
|
debug("Test uncommon arguments for initialize()");
|
|
shouldBe("poly1.points.initialize(point)", "point");
|
|
shouldBe("poly1.points.numberOfItems", "1");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=200 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "200 100");
|
|
shouldThrow("poly1.points.initialize(poly1)");
|
|
shouldThrow("poly1.points.initialize(0)");
|
|
shouldThrow("poly1.points.initialize('aString')");
|
|
|
|
debug("");
|
|
debug("Reset points attribute to 0 0 100 0 100 100 0 100");
|
|
shouldBeUndefined("poly1.setAttribute('points', '0 0 100 0 100 100 0 100')");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 0 100 0 100 100 0 100");
|
|
|
|
debug("");
|
|
debug("Test uncommon arguments for getItem()");
|
|
shouldThrow("poly1.points.getItem(30)");
|
|
shouldBe("poly1.points.getItem('aString')", "poly1.points.getItem(0)");
|
|
shouldBe("poly1.points.getItem(poly1)", "poly1.points.getItem(0)");
|
|
shouldBe("poly1.points.getItem(null)", "poly1.points.getItem(0)");
|
|
|
|
debug("");
|
|
debug("Test uncommon arguments for insertItemBefore()");
|
|
shouldThrow("poly1.points.insertItemBefore(30)");
|
|
shouldThrow("poly1.points.insertItemBefore('aString')");
|
|
shouldThrow("poly1.points.insertItemBefore(poly1)");
|
|
shouldThrow("poly1.points.insertItemBefore(null)");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.insertItemBefore(poly1.points.getItem(1), 'aString'))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.removeItem(2, 'aString'))", "x=100 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "100 0 0 0 100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.insertItemBefore(poly1.points.getItem(1), poly1))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.removeItem(2, 'aString'))", "x=0 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 0 100 0 100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.insertItemBefore(poly1.points.getItem(1), null))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.removeItem(2, 'aString'))", "x=100 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "100 0 0 0 100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.insertItemBefore(poly1.points.getItem(1), 0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.removeItem(2, 'aString'))", "x=0 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 0 100 0 100 100 0 100");
|
|
|
|
shouldThrow("poly1.points.insertItemBefore(30, 0)");
|
|
shouldThrow("poly1.points.insertItemBefore('aString', 0)");
|
|
shouldThrow("poly1.points.insertItemBefore(poly1, 0)");
|
|
shouldThrow("poly1.points.insertItemBefore(null, 0)");
|
|
|
|
debug("");
|
|
debug("Test uncommon arguments for replaceItem()");
|
|
shouldThrow("poly1.points.replaceItem(30)");
|
|
shouldThrow("poly1.points.replaceItem('aString')");
|
|
shouldThrow("poly1.points.replaceItem(poly1)");
|
|
shouldThrow("poly1.points.replaceItem(null, 0)");
|
|
shouldThrow("poly1.points.replaceItem('aString', 0)");
|
|
shouldThrow("poly1.points.replaceItem(poly1, 0)");
|
|
shouldThrow("poly1.points.replaceItem(1, 0)");
|
|
|
|
debug("");
|
|
debug("Test uncommon arguments for replaceItem() and xml-dom synchronization");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 0 100 0 100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.replaceItem(poly1.points.getItem(0), 0))", "x=0 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 0 100 0 100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.replaceItem(poly1.points.getItem(0), 'aString'))", "x=0 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 0 100 0 100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.replaceItem(poly1.points.getItem(0), poly1))", "x=0 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(2))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(3))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 0 100 0 100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.replaceItem(poly1.points.getItem(0), null))", "x=0 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "4");
|
|
shouldBeEqualToString("poly1.getAttribute('points')", "0 0 100 0 100 100 0 100");
|
|
|
|
debug("");
|
|
debug("Reset points attribute to 0 0 100 0 100 100 0 100");
|
|
shouldBeUndefined("poly1.setAttribute('points', '0 0 100 0 100 100 0 100')");
|
|
|
|
debug("");
|
|
debug("Test uncommon arguments for removeItem()");
|
|
shouldThrow("poly1.points.removeItem(30)");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.removeItem('aString'))", "x=0 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "3");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=100 y=0");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=100 y=0");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "100 0 100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.removeItem(poly1))", "x=100 y=0");
|
|
shouldBe("poly1.points.numberOfItems", "2");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=100 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "100 100 0 100");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.removeItem(null))", "x=100 y=100");
|
|
shouldBe("poly1.points.numberOfItems", "1");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 100");
|
|
|
|
debug("");
|
|
debug("Test uncommon arguments for appendItem()");
|
|
shouldThrow("poly1.points.appendItem(30)");
|
|
shouldThrow("poly1.points.appendItem('aString')");
|
|
shouldThrow("poly1.points.appendItem(poly1)");
|
|
shouldThrow("poly1.points.appendItem(null)");
|
|
|
|
shouldBeEqualToString("dumpPoint(poly1.points.appendItem(point))", "x=200 y=100");
|
|
shouldBe("poly1.points.numberOfItems", "2");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(0))", "x=0 y=100");
|
|
shouldBeEqualToString("dumpPoint(poly1.points.getItem(1))", "x=200 y=100");
|
|
shouldBeEqualToString("poly1.getAttribute('points').formatPointsAttribute()", "0 100 200 100");
|
|
|
|
]]>
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|