| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| description("This test checks the use of SVGAnimatedEnumeration within SVGTextPathElement"); |
| |
| var textPathElement = document.createElementNS("http://www.w3.org/2000/svg", "textPath"); |
| textPathElement.setAttribute("method", "align"); |
| textPathElement.setAttribute("spacing", "auto"); |
| |
| // method |
| debug(""); |
| debug("Check initial 'method' value"); |
| shouldBeEqualToString("textPathElement.method.toString()", "[object SVGAnimatedEnumeration]"); |
| shouldBeEqualToString("typeof(textPathElement.method.baseVal)", "number"); |
| shouldBe("textPathElement.method.baseVal", "SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN"); |
| |
| debug(""); |
| debug("Switch to 'stretch'"); |
| shouldBe("textPathElement.method.baseVal = SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH", "SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH"); |
| shouldBe("textPathElement.method.baseVal", "SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH"); |
| shouldBeEqualToString("textPathElement.getAttribute('method')", "stretch"); |
| |
| debug(""); |
| debug("Try setting invalid values"); |
| shouldThrow("textPathElement.method.baseVal = 3"); |
| shouldBe("textPathElement.method.baseVal", "SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH"); |
| shouldBeEqualToString("textPathElement.getAttribute('method')", "stretch"); |
| |
| shouldThrow("textPathElement.method.baseVal = -1"); |
| shouldBe("textPathElement.method.baseVal", "SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH"); |
| shouldBeEqualToString("textPathElement.getAttribute('method')", "stretch"); |
| |
| shouldThrow("textPathElement.method.baseVal = 0"); |
| shouldBe("textPathElement.method.baseVal", "SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH"); |
| shouldBeEqualToString("textPathElement.getAttribute('method')", "stretch"); |
| |
| debug(""); |
| debug("Switch to 'align'"); |
| shouldBe("textPathElement.method.baseVal = SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN", "SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN"); |
| shouldBe("textPathElement.method.baseVal", "SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN"); |
| shouldBeEqualToString("textPathElement.getAttribute('method')", "align"); |
| |
| // spacing |
| debug(""); |
| debug("Check initial 'spacing' value"); |
| shouldBeEqualToString("textPathElement.spacing.toString()", "[object SVGAnimatedEnumeration]"); |
| shouldBeEqualToString("typeof(textPathElement.spacing.baseVal)", "number"); |
| shouldBe("textPathElement.spacing.baseVal", "SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO"); |
| |
| debug(""); |
| debug("Switch to 'exact'"); |
| shouldBe("textPathElement.spacing.baseVal = SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT", "SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT"); |
| shouldBe("textPathElement.spacing.baseVal", "SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT"); |
| shouldBeEqualToString("textPathElement.getAttribute('spacing')", "exact"); |
| |
| debug(""); |
| debug("Try setting invalid values"); |
| shouldThrow("textPathElement.spacing.baseVal = 3"); |
| shouldBe("textPathElement.spacing.baseVal", "SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT"); |
| shouldBeEqualToString("textPathElement.getAttribute('spacing')", "exact"); |
| |
| shouldThrow("textPathElement.spacing.baseVal = -1"); |
| shouldBe("textPathElement.spacing.baseVal", "SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT"); |
| shouldBeEqualToString("textPathElement.getAttribute('spacing')", "exact"); |
| |
| shouldThrow("textPathElement.spacing.baseVal = 0"); |
| shouldBe("textPathElement.spacing.baseVal", "SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT"); |
| shouldBeEqualToString("textPathElement.getAttribute('spacing')", "exact"); |
| |
| debug(""); |
| debug("Switch to 'auto'"); |
| shouldBe("textPathElement.spacing.baseVal = SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO", "SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO"); |
| shouldBe("textPathElement.spacing.baseVal", "SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO"); |
| shouldBeEqualToString("textPathElement.getAttribute('spacing')", "auto"); |
| |
| successfullyParsed = true; |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |