chromium/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.html

<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>OffscreenCanvas test: 2d.drawImage.9arg.sourcesize</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>

<h1>2d.drawImage.9arg.sourcesize</h1>
<p class="desc"></p>


<script>
promise_test(async t => {

  var canvas = new OffscreenCanvas(100, 50);
  var ctx = canvas.getContext('2d');

  ctx.fillStyle = '#f00';
  ctx.fillRect(0, 0, 100, 50);
  const response = await fetch('/images/rgrg-256x256.png');
  const blob = await response.blob();
  const bitmap = await createImageBitmap(blob);
  ctx.drawImage(bitmap, 0, 0, 256, 256, 0, 0, 100, 50);
  ctx.fillStyle = '#0f0';
  ctx.fillRect(0, 0, 51, 26);
  ctx.fillRect(49, 24, 51, 26);
  _assertPixelApprox(canvas, 0,0, 0,255,0,255, 2);
  _assertPixelApprox(canvas, 99,0, 0,255,0,255, 2);
  _assertPixelApprox(canvas, 0,49, 0,255,0,255, 2);
  _assertPixelApprox(canvas, 99,49, 0,255,0,255, 2);
  _assertPixelApprox(canvas, 20,20, 0,255,0,255, 2);
  _assertPixelApprox(canvas, 80,20, 0,255,0,255, 2);
  _assertPixelApprox(canvas, 20,30, 0,255,0,255, 2);
  _assertPixelApprox(canvas, 80,30, 0,255,0,255, 2);

}, "");
</script>