OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <title>Geometry Interfaces: DOMMatrix</title> | 4 <title>Geometry Interfaces: DOMMatrix</title> |
5 <script src="../../resources/testharness.js"></script> | 5 <script src="../../resources/testharness.js"></script> |
6 <script src="../../resources/testharnessreport.js"></script> | 6 <script src="../../resources/testharnessreport.js"></script> |
| 7 <script src="./resources/geometry-interfaces-test-helpers.js"></script> |
7 </head> | 8 </head> |
8 <body> | 9 <body> |
9 <script> | 10 <script> |
10 | 11 |
11 test(function() { | 12 test(() => { |
12 var matrix = new DOMMatrix(); | 13 var matrix = new DOMMatrix(); |
13 assert_equals(matrix.m11, 1); | 14 assert_equals(matrix.m11, 1); |
14 assert_equals(matrix.m12, 0); | 15 assert_equals(matrix.m12, 0); |
15 assert_equals(matrix.m13, 0); | 16 assert_equals(matrix.m13, 0); |
16 assert_equals(matrix.m14, 0); | 17 assert_equals(matrix.m14, 0); |
17 assert_equals(matrix.m21, 0); | 18 assert_equals(matrix.m21, 0); |
18 assert_equals(matrix.m22, 1); | 19 assert_equals(matrix.m22, 1); |
19 assert_equals(matrix.m23, 0); | 20 assert_equals(matrix.m23, 0); |
20 assert_equals(matrix.m24, 0); | 21 assert_equals(matrix.m24, 0); |
21 assert_equals(matrix.m31, 0); | 22 assert_equals(matrix.m31, 0); |
22 assert_equals(matrix.m32, 0); | 23 assert_equals(matrix.m32, 0); |
23 assert_equals(matrix.m33, 1); | 24 assert_equals(matrix.m33, 1); |
24 assert_equals(matrix.m34, 0); | 25 assert_equals(matrix.m34, 0); |
25 assert_equals(matrix.m41, 0); | 26 assert_equals(matrix.m41, 0); |
26 assert_equals(matrix.m42, 0); | 27 assert_equals(matrix.m42, 0); |
27 assert_equals(matrix.m43, 0); | 28 assert_equals(matrix.m43, 0); |
28 assert_equals(matrix.m44, 1); | 29 assert_equals(matrix.m44, 1); |
29 assert_true(matrix.is2D); | 30 assert_true(matrix.is2D); |
30 assert_true(matrix.isIdentity); | 31 assert_true(matrix.isIdentity); |
31 }, "DOMMatrix() constructor"); | 32 }, "DOMMatrix() constructor"); |
32 | 33 |
33 test(function() { | 34 test(() => { |
34 var other = new DOMMatrix(); | 35 var other = new DOMMatrix(); |
35 other.m11 = 10; | 36 other.m11 = 10; |
36 other.m12 = 20; | 37 other.m12 = 20; |
37 other.m24 = 2; | 38 other.m24 = 2; |
38 other.m33 = 3; | 39 other.m33 = 3; |
39 other.m42 = 3; | 40 other.m42 = 3; |
40 other.m44 = 9; | 41 other.m44 = 9; |
41 | 42 |
42 var matrix = new DOMMatrix(other); | 43 var matrix = new DOMMatrix(other); |
43 assert_equals(matrix.m11, 10); | 44 assert_equals(matrix.m11, 10); |
44 assert_equals(matrix.m12, 20); | 45 assert_equals(matrix.m12, 20); |
45 assert_equals(matrix.m13, 0); | 46 assert_equals(matrix.m13, 0); |
46 assert_equals(matrix.m14, 0); | 47 assert_equals(matrix.m14, 0); |
47 assert_equals(matrix.m21, 0); | 48 assert_equals(matrix.m21, 0); |
48 assert_equals(matrix.m22, 1); | 49 assert_equals(matrix.m22, 1); |
49 assert_equals(matrix.m23, 0); | 50 assert_equals(matrix.m23, 0); |
50 assert_equals(matrix.m24, 2); | 51 assert_equals(matrix.m24, 2); |
51 assert_equals(matrix.m31, 0); | 52 assert_equals(matrix.m31, 0); |
52 assert_equals(matrix.m32, 0); | 53 assert_equals(matrix.m32, 0); |
53 assert_equals(matrix.m33, 3); | 54 assert_equals(matrix.m33, 3); |
54 assert_equals(matrix.m34, 0); | 55 assert_equals(matrix.m34, 0); |
55 assert_equals(matrix.m41, 0); | 56 assert_equals(matrix.m41, 0); |
56 assert_equals(matrix.m42, 3); | 57 assert_equals(matrix.m42, 3); |
57 assert_equals(matrix.m43, 0); | 58 assert_equals(matrix.m43, 0); |
58 assert_equals(matrix.m44, 9); | 59 assert_equals(matrix.m44, 9); |
59 assert_false(matrix.is2D); | 60 assert_false(matrix.is2D); |
60 assert_false(matrix.isIdentity); | 61 assert_false(matrix.isIdentity); |
61 }, "DOMMatrix(other) constructor"); | 62 }, "DOMMatrix(other) constructor"); |
62 | 63 |
63 test(function() { | 64 test(() => { |
64 var matrix = new DOMMatrix(); | 65 var matrix = new DOMMatrix(); |
65 matrix.a = 10; | 66 matrix.a = 10; |
66 matrix.b = 20; | 67 matrix.b = 20; |
67 matrix.m24 = 2; | 68 matrix.m24 = 2; |
68 matrix.m33 = 3; | 69 matrix.m33 = 3; |
69 matrix.m42 = 3; | 70 matrix.m42 = 3; |
70 matrix.m44 = 9; | 71 matrix.m44 = 9; |
71 assert_equals(matrix.a, matrix.m11); | 72 assert_equals(matrix.a, matrix.m11); |
72 assert_equals(matrix.b, matrix.m12); | 73 assert_equals(matrix.b, matrix.m12); |
73 assert_equals(matrix.c, matrix.m21); | 74 assert_equals(matrix.c, matrix.m21); |
(...skipping 13 matching lines...) Expand all Loading... |
87 assert_equals(matrix.m33, 3); | 88 assert_equals(matrix.m33, 3); |
88 assert_equals(matrix.m34, 0); | 89 assert_equals(matrix.m34, 0); |
89 assert_equals(matrix.m41, 0); | 90 assert_equals(matrix.m41, 0); |
90 assert_equals(matrix.m42, 3); | 91 assert_equals(matrix.m42, 3); |
91 assert_equals(matrix.m43, 0); | 92 assert_equals(matrix.m43, 0); |
92 assert_equals(matrix.m44, 9); | 93 assert_equals(matrix.m44, 9); |
93 assert_false(matrix.is2D); | 94 assert_false(matrix.is2D); |
94 assert_false(matrix.isIdentity); | 95 assert_false(matrix.isIdentity); |
95 }, "DOMMatrix attributes"); | 96 }, "DOMMatrix attributes"); |
96 | 97 |
97 test(function() { | 98 test(() => { |
98 var matrix = new DOMMatrix(); | 99 var matrix = new DOMMatrix(); |
99 assert_true(matrix.is2D); | 100 assert_true(matrix.is2D); |
100 assert_true(matrix.isIdentity); | 101 assert_true(matrix.isIdentity); |
101 matrix.m31 = 1; | 102 matrix.m31 = 1; |
102 matrix.m33 = 0; | 103 matrix.m33 = 0; |
103 assert_false(matrix.is2D); | 104 assert_false(matrix.is2D); |
104 assert_false(matrix.isIdentity); | 105 assert_false(matrix.isIdentity); |
105 matrix.m31 = 0; | 106 matrix.m31 = 0; |
106 matrix.m33 = 1; | 107 matrix.m33 = 1; |
107 assert_false(matrix.is2D); | 108 assert_false(matrix.is2D); |
108 assert_true(matrix.isIdentity); | 109 assert_true(matrix.isIdentity); |
109 }, "DOMMatrix.is2D can never be set to 'true' when it was set to 'false' before
calling setMatrixValue()."); | 110 }, "DOMMatrix.is2D can never be set to 'true' when it was set to 'false' before
calling setMatrixValue()."); |
110 | 111 |
| 112 test(() => { |
| 113 assert_identity_2d_matrix(DOMMatrix.fromMatrix()); |
| 114 }, "DOMMatrix.fromMatrix() with no parameter."); |
| 115 |
| 116 test(() => { |
| 117 assert_identity_2d_matrix(DOMMatrix.fromMatrix(null)); |
| 118 }, "DOMMatrix.fromMatrix() with null."); |
| 119 |
| 120 test(() => { |
| 121 assert_identity_2d_matrix(DOMMatrix.fromMatrix(undefined)); |
| 122 }, "DOMMatrix.fromMatrix() with undefined."); |
| 123 |
| 124 test(() => { |
| 125 assert_identity_2d_matrix(DOMMatrix.fromMatrix({})); |
| 126 }, "DOMMatrix.fromMatrix() with empty object."); |
| 127 |
| 128 test(() => { |
| 129 var matrix = DOMMatrix.fromMatrix({a: 1, b: 2, c: 3, d: 4, e: 5, f: 6}); |
| 130 assert_2d_matrix_equals(matrix, { |
| 131 m11: 1, m12: 2, |
| 132 m21: 3, m22: 4, |
| 133 m41: 5, m42: 6, |
| 134 isIdentity: false |
| 135 }); |
| 136 }, "DOMMatrix.fromMatrix({a: 1, b: 2, c: 3, d: 4, e: 5, f: 6}) should create a 2
D DOMMatrix."); |
| 137 |
| 138 test(() => { |
| 139 var matrix = DOMMatrix.fromMatrix({m11: 1, m22: 2, m33: 3, m44: 4, m23: 5, m43
: 6}); |
| 140 assert_3d_matrix_equals(matrix, { |
| 141 m11: 1, m12: 0, m13: 0, m14: 0, |
| 142 m21: 0, m22: 2, m23: 5, m24: 0, |
| 143 m31: 0, m32: 0, m33: 3, m34: 0, |
| 144 m41: 0, m42: 0, m43: 6, m44: 4, |
| 145 isIdentity: false |
| 146 }); |
| 147 }, "DOMMatrix.fromMatrix({m11: 1, m22: 2, m33: 3, m44: 4, m23: 5, m43: 6}) shoul
d create a 3D DOMMatrix."); |
| 148 |
| 149 test(() => { |
| 150 var matrix = DOMMatrix.fromMatrix({a: 7, c: 9}); |
| 151 assert_2d_matrix_equals(matrix, { |
| 152 m11: 7, m12: 0, |
| 153 m21: 9, m22: 1, |
| 154 m41: 0, m42: 0, |
| 155 isIdentity: false |
| 156 }); |
| 157 }, "If 2d related properties don't be set, should set to fallback."); |
| 158 |
| 159 test(() => { |
| 160 var matrix = DOMMatrix.fromMatrix({ |
| 161 m11: NaN, m12: NaN, m13: NaN, m14: NaN, |
| 162 m21: NaN, m22: NaN, m23: NaN, m24: NaN, |
| 163 m31: NaN, m32: NaN, m33: NaN, m34: NaN, |
| 164 m41: NaN, m42: NaN, m43: NaN, m44: NaN, |
| 165 is2D: false |
| 166 }); |
| 167 assert_equals(matrix.a, matrix.m11); |
| 168 assert_equals(matrix.b, matrix.m12); |
| 169 assert_equals(matrix.c, matrix.m21); |
| 170 assert_equals(matrix.d, matrix.m22); |
| 171 assert_equals(matrix.e, matrix.m41); |
| 172 assert_equals(matrix.f, matrix.m42); |
| 173 assert_3d_matrix_equals(matrix, { |
| 174 m11: NaN, m12: NaN, m13: NaN, m14: NaN, |
| 175 m21: NaN, m22: NaN, m23: NaN, m24: NaN, |
| 176 m31: NaN, m32: NaN, m33: NaN, m34: NaN, |
| 177 m41: NaN, m42: NaN, m43: NaN, m44: NaN, |
| 178 isIdentity: false, is2D: false |
| 179 }); |
| 180 }, "DOMMatrix.fromMatrix(): NaN test"); |
| 181 |
| 182 test(() => { |
| 183 assert_throws(new TypeError(), () => { |
| 184 var matrix = DOMMatrix.fromMatrix({a: 1, b: 2, m33: 3, m44: 4, is2D: tru
e}); |
| 185 }, "The 'is2D' property is set to true but the input matrix is 3d matrix."
); |
| 186 assert_throws(new TypeError(), () => { |
| 187 var matrix = DOMMatrix.fromMatrix({a: 1, b: 2, m11: 3}); |
| 188 }, "The 'a' property should equal the 'm11' property."); |
| 189 }, "DOMMatrix.fromMatrix(): Exception test."); |
| 190 |
111 </script> | 191 </script> |
112 </body> | 192 </body> |
113 </html> | 193 </html> |
OLD | NEW |