| <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="50" y="50" requiredFeatures="1 2 3">ABC</text> |
| </svg> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| <script type="text/javascript"> |
| <![CDATA[ |
| description("This is a test of the simple SVGStringList API parts."); |
| |
| var text1 = document.getElementById("text1"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "3"); |
| |
| debug(""); |
| debug("Test uncommon arguments for initialize()"); |
| shouldBeEqualToString("text1.requiredFeatures.initialize('30')", "30"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "30"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "30"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.initialize(text1)", "[object SVGTextElement]"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "[object SVGTextElement]"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "[object SVGTextElement]"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.initialize(0)", "0"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "0"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "0"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.initialize('aString')", "aString"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "aString"); |
| |
| debug(""); |
| debug("Test uncommon arguments for getItem()"); |
| shouldThrow("text1.requiredFeatures.getItem(30)"); |
| shouldBe("text1.requiredFeatures.getItem('aString')", "text1.requiredFeatures.getItem(0)"); |
| shouldBe("text1.requiredFeatures.getItem(text1)", "text1.requiredFeatures.getItem(0)"); |
| shouldBe("text1.requiredFeatures.getItem(null)", "text1.requiredFeatures.getItem(0)"); |
| |
| debug(""); |
| debug("Test uncommon arguments for insertItemBefore()"); |
| shouldThrow("text1.requiredFeatures.insertItemBefore(30)"); |
| shouldThrow("text1.requiredFeatures.insertItemBefore('aString')"); |
| shouldThrow("text1.requiredFeatures.insertItemBefore(text1)"); |
| shouldThrow("text1.requiredFeatures.insertItemBefore(null)"); |
| shouldThrow("text1.requiredFeatures.insertItemBefore(text1.requiredFeatures.getItem(1), 'aString')"); |
| shouldThrow("text1.requiredFeatures.insertItemBefore(text1.requiredFeatures.getItem(1), text1)"); |
| shouldThrow("text1.requiredFeatures.insertItemBefore(text1.requiredFeatures.getItem(1), null)"); |
| shouldThrow("text1.requiredFeatures.insertItemBefore(text1.requiredFeatures.getItem(1), 0)"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.insertItemBefore(30, 0)", "30"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "30"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "30 aString"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.insertItemBefore('aString', 0)", "aString"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "aString"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "30"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "aString 30 aString"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.insertItemBefore(text1, 0)", "[object SVGTextElement]"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "[object SVGTextElement]"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "aString"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "30"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "[object SVGTextElement] aString 30 aString"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.insertItemBefore(null, 0)", "null"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "5"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "null"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "[object SVGTextElement]"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "aString"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "30"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(4)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "null [object SVGTextElement] aString 30 aString"); |
| |
| debug(""); |
| debug("Set requiredFeatures='1 2 3 4' for text1"); |
| shouldBeUndefined("text1.setAttribute('requiredFeatures', '1 2 3 4')"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "4"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "1 2 3 4"); |
| |
| debug(""); |
| debug("Test uncommon arguments for replaceItem() - part 1"); |
| shouldThrow("text1.requiredFeatures.replaceItem(30)"); |
| shouldThrow("text1.requiredFeatures.replaceItem('aString')"); |
| shouldThrow("text1.requiredFeatures.replaceItem(text1)"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.replaceItem(null, 0)", "null"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "null"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "4"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "null 2 3 4"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.replaceItem('aString', 3)", "aString"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "null"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "null 2 3 aString"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.replaceItem(text1, 2)", "[object SVGTextElement]"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "null"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "[object SVGTextElement]"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "null 2 [object SVGTextElement] aString"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.replaceItem(1, 1)", "1"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "null"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "[object SVGTextElement]"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "null 1 [object SVGTextElement] aString"); |
| |
| debug(""); |
| debug("Set requiredFeatures='1 2 3 4' for text1"); |
| shouldBeUndefined("text1.setAttribute('requiredFeatures', '1 2 3 4')"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "4"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "1 2 3 4"); |
| |
| debug(""); |
| debug("Test uncommon arguments for replaceItem() - part 2"); |
| shouldBeEqualToString("text1.requiredFeatures.replaceItem(text1.requiredFeatures.getItem(0), 0)", "1"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "4"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "1 2 3 4"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.replaceItem(text1.requiredFeatures.getItem(0), 'aString')", "1"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "4"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "1 2 3 4"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.replaceItem(text1.requiredFeatures.getItem(0), text1)", "1"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "4"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "1 2 3 4"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.replaceItem(text1.requiredFeatures.getItem(0), null)", "1"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "1"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "4"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "1 2 3 4"); |
| |
| debug(""); |
| debug("Test uncommon arguments for removeItem()"); |
| shouldThrow("text1.requiredFeatures.removeItem(30)"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.removeItem('aString')", "1"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "3"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "2 3 4"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.removeItem(text1)", "2"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "4"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "3 4"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.removeItem(null)", "3"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "1"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "4"); |
| |
| debug(""); |
| debug("Test uncommon arguments for appendItem()"); |
| shouldBeEqualToString("text1.requiredFeatures.appendItem(30)", "30"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "2"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "30"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "4 30"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.appendItem('aString')", "aString"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "3"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "30"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "aString"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "4 30 aString"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.appendItem(text1)", "[object SVGTextElement]"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "30"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "aString"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "[object SVGTextElement]"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "4 30 aString [object SVGTextElement]"); |
| |
| shouldBeEqualToString("text1.requiredFeatures.appendItem(null)", "null"); |
| shouldBe("text1.requiredFeatures.numberOfItems", "5"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(0)", "4"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(1)", "30"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(2)", "aString"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(3)", "[object SVGTextElement]"); |
| shouldBeEqualToString("text1.requiredFeatures.getItem(4)", "null"); |
| shouldBeEqualToString("text1.getAttribute('requiredFeatures')", "4 30 aString [object SVGTextElement] null"); |
| |
| debug(""); |
| debug("clear() requiredFeatures list so text on top shows up"); |
| shouldBeUndefined("text1.requiredFeatures.clear()"); |
| |
| ]]> |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |