150 lines
5.8 KiB
HTML
150 lines
5.8 KiB
HTML
<!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>
|