Bug 1944627 - update sidebar button checked state for non-revamped sidebar cases...
[gecko.git] / layout / reftests / canvas / ctm-singular-sanity.html
blob48617d7628b4aa1be0b3ae08bf7bb1920b44479e
1 <html>
2 <head>
3 <script type="text/javascript">
4 function assert(cond, msg) {
5 if (!cond) {
6 throw msg;
10 assert.equal = function(m1, m2, msg) {
11 assert(
12 m1.is2D &&
13 m2.is2D &&
14 m1.a === m2.a &&
15 m1.b === m2.b &&
16 m1.c === m2.c &&
17 m1.d === m2.d &&
18 m1.e === m2.e &&
19 m1.f === m2.f,
20 msg
24 window.onload = function() {
25 try {
26 var ctx = document.getElementById("c1").getContext("2d");
28 var singular = new DOMMatrix([0, 0, 0, 0, 0, 0]);
29 ctx.setTransform(singular);
30 assert.equal(
31 ctx.getTransform(),
32 singular,
33 "Expected setting transform to a singular matrix to work"
35 var inv = ctx.getTransform().invertSelf();
36 assert(
37 isNaN(inv.a) && isNaN(inv.b) && isNaN(inv.c) && isNaN(inv.d),
38 "Expected to get back matrix of NaN's from inverse transform"
41 var m = new DOMMatrix([1, 2, 3, 4, 5, 6]);
42 ctx.setTransform(m);
43 ctx.setTransform(singular.invertSelf());
44 assert.equal(
45 ctx.getTransform(),
47 "Setting transform to an inverse singular matrix is a no-op"
49 } catch (e) {
50 document.body.innerHTML = "FAIL: " + e.toString();
51 return;
53 document.body.innerHTML = "Pass";
55 </script>
56 </head>
57 <body>
58 <div><canvas id="c1" width="300" height="300"></canvas></div>
59 </body>
60 </html>