2 <!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
3 <title>OffscreenCanvas test:
2d.drawImage
.9arg.destsize
</title>
4 <meta name=
"timeout" content=
"long">
5 <script src=
"/resources/testharness.js"></script>
6 <script src=
"/resources/testharnessreport.js"></script>
7 <script src=
"/html/canvas/resources/canvas-tests.js"></script>
9 <h1>2d.drawImage
.9arg.destsize
</h1>
14 var t
= async_test("");
15 var t_pass
= t
.done
.bind(t
);
16 var t_fail
= t
.step_func(function(reason
) {
21 var canvas
= new OffscreenCanvas(100, 50);
22 var ctx
= canvas
.getContext('2d');
24 ctx
.fillStyle
= '#f00';
25 ctx
.fillRect(0, 0, 100, 50);
26 var promise1
= new Promise(function(resolve
, reject
) {
27 var xhr
= new XMLHttpRequest();
28 xhr
.open("GET", '/images/red.png');
29 xhr
.responseType
= 'blob';
31 xhr
.onload = function() {
32 resolve(xhr
.response
);
35 var promise2
= new Promise(function(resolve
, reject
) {
36 var xhr
= new XMLHttpRequest();
37 xhr
.open("GET", '/images/green.png');
38 xhr
.responseType
= 'blob';
40 xhr
.onload = function() {
41 resolve(xhr
.response
);
44 Promise
.all([promise1
, promise2
]).then(function(response1
, response2
) {
45 var promise3
= createImageBitmap(response1
);
46 var promise4
= createImageBitmap(response2
);
47 Promise
.all([promise3
, promise4
]).then(function(bitmap1
, bitmap2
) {
48 ctx
.drawImage(bitmap2
, 1, 1, 1, 1, 0, 0, 100, 50);
49 ctx
.drawImage(bitmap1
, 0, 0, 100, 50, -50, 0, 50, 50);
50 ctx
.drawImage(bitmap1
, 0, 0, 100, 50, 100, 0, 50, 50);
51 ctx
.drawImage(bitmap1
, 0, 0, 100, 50, 0, -25, 100, 25);
52 ctx
.drawImage(bitmap1
, 0, 0, 100, 50, 0, 50, 100, 25);
53 _assertPixelApprox(canvas
, 0,0, 0,255,0,255, 2);
54 _assertPixelApprox(canvas
, 99,0, 0,255,0,255, 2);
55 _assertPixelApprox(canvas
, 0,49, 0,255,0,255, 2);
56 _assertPixelApprox(canvas
, 99,49, 0,255,0,255, 2);
58 }).then(t_pass
, t_fail
);