| <!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 SVGTransform API"); |
| |
| var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); |
| var transform = svgElement.createSVGTransform(); |
| |
| debug(""); |
| debug("Check initial transform values"); |
| shouldBe("transform.type", "SVGTransform.SVG_TRANSFORM_MATRIX"); |
| shouldBe("transform.angle", "0"); |
| shouldBe("transform.matrix.a", "1"); |
| shouldBe("transform.matrix.b", "0"); |
| shouldBe("transform.matrix.c", "0"); |
| shouldBe("transform.matrix.d", "1"); |
| shouldBe("transform.matrix.e", "0"); |
| shouldBe("transform.matrix.f", "0"); |
| |
| debug(""); |
| debug("Change to skewX transformation"); |
| shouldBeUndefined("transform.setSkewX(45)"); |
| shouldBe("transform.type", "SVGTransform.SVG_TRANSFORM_SKEWX"); |
| shouldBe("transform.angle", "45"); |
| shouldBe("transform.matrix.a", "1"); |
| shouldBe("transform.matrix.b", "0"); |
| shouldBeEqualToString("transform.matrix.c.toFixed(1)", "1.0"); |
| shouldBe("transform.matrix.d", "1"); |
| shouldBe("transform.matrix.e", "0"); |
| shouldBe("transform.matrix.f", "0"); |
| |
| debug(""); |
| debug("Changing matrix.e to 100, should reset transformation type to MATRIX, and angle should be 0"); |
| shouldBe("transform.matrix.e = 100", "100"); |
| shouldBe("transform.type", "SVGTransform.SVG_TRANSFORM_MATRIX"); |
| shouldBe("transform.angle", "0"); |
| shouldBe("transform.matrix.a", "1"); |
| shouldBe("transform.matrix.b", "0"); |
| shouldBeEqualToString("transform.matrix.c.toFixed(1)", "1.0"); |
| shouldBe("transform.matrix.d", "1"); |
| shouldBe("transform.matrix.e", "100"); |
| shouldBe("transform.matrix.f", "0"); |
| |
| debug(""); |
| debug("Now revert to initial matrix"); |
| shouldBeNull("transform.matrix.c = null"); |
| shouldBe("transform.matrix.e = 0", "0"); |
| shouldBe("transform.type", "SVGTransform.SVG_TRANSFORM_MATRIX"); |
| shouldBe("transform.angle", "0"); |
| shouldBe("transform.matrix.a", "1"); |
| shouldBe("transform.matrix.b", "0"); |
| shouldBe("transform.matrix.c", "0"); |
| shouldBe("transform.matrix.d", "1"); |
| shouldBe("transform.matrix.e", "0"); |
| shouldBe("transform.matrix.f", "0"); |
| |
| debug(""); |
| debug("Check passing invalid arguments to 'setMatrix'"); |
| shouldThrow("transform.setMatrix('aString')"); |
| shouldThrow("transform.setMatrix(1)"); |
| shouldThrow("transform.setMatrix(false)"); |
| debug("Check passing abritary objects, nothing or dictionaries"); |
| shouldBeUndefined("transform.setMatrix(transform)"); |
| shouldBeUndefined("transform.setMatrix(svgElement)"); |
| shouldBeUndefined("transform.setMatrix({a: 2, b: 0, c: 0, d: 2, e: 10, f: 10})"); |
| shouldBe("transform.matrix.a", "2"); |
| shouldBe("transform.matrix.b", "0"); |
| shouldBe("transform.matrix.c", "0"); |
| shouldBe("transform.matrix.d", "2"); |
| shouldBe("transform.matrix.e", "10"); |
| shouldBe("transform.matrix.f", "10"); |
| shouldBeUndefined("transform.setMatrix()"); |
| shouldBe("transform.matrix.a", "1"); |
| shouldBe("transform.matrix.b", "0"); |
| shouldBe("transform.matrix.c", "0"); |
| shouldBe("transform.matrix.d", "1"); |
| shouldBe("transform.matrix.e", "0"); |
| shouldBe("transform.matrix.f", "0"); |
| |
| debug(""); |
| debug("Check passing invalid arguments to 'setTranslate'"); |
| shouldThrow("transform.setTranslate()"); |
| shouldThrow("transform.setTranslate(transform)"); |
| shouldThrow("transform.setTranslate(svgElement)"); |
| shouldThrow("transform.setTranslate('aString')"); |
| shouldBeUndefined("transform.setTranslate(1, transform)"); |
| shouldBeUndefined("transform.setTranslate(1, svgElement)"); |
| shouldBeUndefined("transform.setTranslate(1, 'aString')"); |
| shouldBeUndefined("transform.setTranslate(transform, 1)"); |
| shouldBeUndefined("transform.setTranslate(svgElement, 1)"); |
| shouldBeUndefined("transform.setTranslate('aString', 1)"); |
| shouldBeUndefined("transform.setTranslate(transform, transform)"); |
| shouldBeUndefined("transform.setTranslate(svgElement, svgElement)"); |
| shouldBeUndefined("transform.setTranslate('aString', 'aString')"); |
| |
| debug(""); |
| debug("Check passing invalid arguments to 'setScale'"); |
| shouldThrow("transform.setScale()"); |
| shouldThrow("transform.setScale(transform)"); |
| shouldThrow("transform.setScale(svgElement)"); |
| shouldThrow("transform.setScale('aString')"); |
| shouldBeUndefined("transform.setScale(1, transform)"); |
| shouldBeUndefined("transform.setScale(1, svgElement)"); |
| shouldBeUndefined("transform.setScale(1, 'aString')"); |
| shouldBeUndefined("transform.setScale(transform, 1)"); |
| shouldBeUndefined("transform.setScale(svgElement, 1)"); |
| shouldBeUndefined("transform.setScale('aString', 1)"); |
| shouldBeUndefined("transform.setScale(transform, transform)"); |
| shouldBeUndefined("transform.setScale(svgElement, svgElement)"); |
| shouldBeUndefined("transform.setScale('aString', 'aString')"); |
| |
| debug(""); |
| debug("Check passing invalid arguments to 'setRotate'"); |
| shouldThrow("transform.setRotate()"); |
| shouldThrow("transform.setRotate(transform)"); |
| shouldThrow("transform.setRotate(svgElement)"); |
| shouldThrow("transform.setRotate('aString')"); |
| shouldThrow("transform.setRotate(1, transform)"); |
| shouldThrow("transform.setRotate(1, svgElement)"); |
| shouldThrow("transform.setRotate(1, 'aString')"); |
| shouldBeUndefined("transform.setRotate(1, 1, transform)"); |
| shouldBeUndefined("transform.setRotate(1, 1, svgElement)"); |
| shouldBeUndefined("transform.setRotate(1, 1, 'aString')"); |
| |
| debug(""); |
| debug("Check passing invalid arguments to 'setSkewX'"); |
| shouldThrow("transform.setSkewX()"); |
| shouldBeUndefined("transform.setSkewX(transform)"); |
| shouldBeUndefined("transform.setSkewX(svgElement)"); |
| shouldBeUndefined("transform.setSkewX('aString')"); |
| |
| debug(""); |
| debug("Check passing invalid arguments to 'setSkewY'"); |
| shouldThrow("transform.setSkewY()"); |
| shouldBeUndefined("transform.setSkewY(transform)"); |
| shouldBeUndefined("transform.setSkewY(svgElement)"); |
| shouldBeUndefined("transform.setSkewY('aString')"); |
| |
| successfullyParsed = true; |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |