2 <title>Canvas test:
2d.imageData.get.source.negative
</title>
3 <!-- Testing: getImageData() works with negative width and height -->
4 <script src=
"/MochiKit/MochiKit.js"></script>
5 <script src=
"/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel=
"stylesheet" href=
"/tests/SimpleTest/test.css">
8 <canvas id=
"c" width=
"100" height=
"50"><p class=
"fallback">FAIL (fallback content)
</p></canvas>
11 SimpleTest
.waitForExplicitFinish();
12 MochiKit
.DOM
.addLoadEvent(function () {
14 var canvas
= document
.getElementById('c');
15 var ctx
= canvas
.getContext('2d');
17 var _thrown_outer
= false;
20 ctx
.fillStyle
= '#000';
21 ctx
.fillRect(0, 0, 100, 50);
22 ctx
.fillStyle
= '#fff';
23 ctx
.fillRect(20, 10, 60, 10);
25 var imgdata1
= ctx
.getImageData(85, 25, -10, -10);
26 ok(imgdata1
.data
[0] === 0, "imgdata1.data[\""+(0)+"\"] === 0");
27 ok(imgdata1
.data
[1] === 0, "imgdata1.data[\""+(1)+"\"] === 0");
28 ok(imgdata1
.data
[2] === 0, "imgdata1.data[\""+(2)+"\"] === 0");
29 ok(imgdata1
.data
[3] === 255, "imgdata1.data[\""+(3)+"\"] === 255");
30 ok(imgdata1
.data
[imgdata1
.length
-4+0] === 255, "imgdata1.data[imgdata1.length-4+0] === 255");
31 ok(imgdata1
.data
[imgdata1
.length
-4+1] === 255, "imgdata1.data[imgdata1.length-4+1] === 255");
32 ok(imgdata1
.data
[imgdata1
.length
-4+2] === 255, "imgdata1.data[imgdata1.length-4+2] === 255");
33 ok(imgdata1
.data
[imgdata1
.length
-4+3] === 255, "imgdata1.data[imgdata1.length-4+3] === 255");
35 var imgdata2
= ctx
.getImageData(0, 0, -1, -1);
36 ok(imgdata2
.data
[0] === 0, "imgdata2.data[\""+(0)+"\"] === 0");
37 ok(imgdata2
.data
[1] === 0, "imgdata2.data[\""+(1)+"\"] === 0");
38 ok(imgdata2
.data
[2] === 0, "imgdata2.data[\""+(2)+"\"] === 0");
39 ok(imgdata2
.data
[3] === 0, "imgdata2.data[\""+(3)+"\"] === 0");
44 todo(!_thrown_outer
, 'should not throw exception');