blob: 26e59c18f8044b00b5f8cbb4e682e80c28499498 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("The test to ensure that modifying the result of getTransform doesn't affect the context.");
function shouldHaveMatrixEquality(matrixName, expected) {
shouldEvaluateTo(matrixName + ".a", expected[0]);
shouldEvaluateTo(matrixName + ".b", expected[1]);
shouldEvaluateTo(matrixName + ".c", expected[2]);
shouldEvaluateTo(matrixName + ".d", expected[3]);
shouldEvaluateTo(matrixName + ".e", expected[4]);
shouldEvaluateTo(matrixName + ".f", expected[5]);
}
var ctx1 = document.createElement("canvas").getContext("2d");
var copiedTransform = ctx1.getTransform();
ctx1.setTransform(1, 2, 3, 4, 5, 6);
shouldHaveMatrixEquality("copiedTransform", [1, 0, 0, 1, 0, 0]);
copiedTransform = copiedTransform.translate(5, 6);
var newTransform = ctx1.getTransform();
shouldHaveMatrixEquality("newTransform", [1, 2, 3, 4, 5, 6]);
ctx1.setTransform(copiedTransform);
var modifiedTransform = ctx1.getTransform();
shouldHaveMatrixEquality("modifiedTransform", [1, 0, 0, 1, 5, 6]);
var ctx2 = document.createElement("canvas").getContext("2d");
ctx2.setTransform(1, 0, 0, 1, 5, 6);
var ctx1Transform = ctx1.getTransform();
var ctx2Transform = ctx2.getTransform();
shouldBe("ctx1Transform.a", "ctx2Transform.a");
shouldBe("ctx1Transform.b", "ctx2Transform.b");
shouldBe("ctx1Transform.c", "ctx2Transform.c");
shouldBe("ctx1Transform.d", "ctx2Transform.d");
shouldBe("ctx1Transform.e", "ctx2Transform.e");
shouldBe("ctx1Transform.f", "ctx2Transform.f");
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>