blob: b0287b8491121e244fa9c23049ebe8801e32f1f5 [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="resources/comparisons.js"></script>
<script>
var EPSILON = 1e-6; // float epsilon
test(function() {
var transformArray = [
new CSSScale(2, 2),
new CSSMatrixComponent(new DOMMatrixReadOnly([1, 1, 1, 1, 1, 1])),
new CSSScale(5, 6)
];
var transformValue = new CSSTransformValue(transformArray);
assert_true(transformValue.is2D);
}, "is2D is true for transformValues containing only 2D components");
test(function() {
var transformArray = [
new CSSScale(2, 2),
new CSSMatrixComponent(new DOMMatrixReadOnly(
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])),
new CSSScale(5, 6)
];
var transformValue = new CSSTransformValue(transformArray);
assert_false(transformValue.is2D);
}, "is2D is false for transformValues containing both 2D and 3D components");
test(function() {
var transformArray = [
new CSSScale(2, 2),
new CSSMatrixComponent(new DOMMatrixReadOnly([1, 1, 1, 1, 1, 1])),
new CSSScale(5, 6)
];
var transformValue = new CSSTransformValue(transformArray);
var newTransformArray = [...transformValue];
assert_true(newTransformArray.length == 3);
assert_equals(newTransformArray[0].constructor.name, CSSScale.name);
assert_equals(newTransformArray[1].constructor.name, CSSMatrixComponent.name);
assert_equals(newTransformArray[2].constructor.name, CSSScale.name);
}, "Can iterate through transformComponent members");
test(function() {
var transformArray = [new CSSScale(2,2)];
var transformValue = new CSSTransformValue(transformArray);
var expectedMatrix = new DOMMatrix();
expectedMatrix.scaleSelf(2, 2);
assert_matrix_approx_equals(
transformValue.toMatrix(), expectedMatrix, EPSILON);
}, "toMatrix() returns DOMMatrix Object - single CSSTransformComponent");
test(function() {
var transformMatrix = new DOMMatrixReadOnly([1,1,1,1,1,1]);
var transformArray = [
new CSSScale(2,2),
new CSSMatrixComponent(transformMatrix),
new CSSScale(5,6)
];
var transformValue = new CSSTransformValue(transformArray);
var expectedMatrix = new DOMMatrix();
expectedMatrix.scaleSelf(2, 2);
expectedMatrix.multiplySelf(transformMatrix);
expectedMatrix.scaleSelf(5, 6);
assert_matrix_approx_equals(
transformValue.toMatrix(), expectedMatrix, EPSILON);
}, "toMatrix() returns DOMMatrix Object - multiple CSSTransformComponents");
</script>