| Index: third_party/WebKit/LayoutTests/fast/canvas/canvas-drawImage-bleed.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-drawImage-bleed.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-drawImage-bleed.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..487f7d55af918e11db4dfae7bb904cd6e1a2c0c9
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-drawImage-bleed.html
|
| @@ -0,0 +1,47 @@
|
| +<!DOCTYPE HTML>
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<script>
|
| +function drawAndTestCanvas(srcCanvas, dstWidth, dstHeight, x, y, dw, dh, shouldBeGreen)
|
| +{
|
| + var dstCanvas = document.createElement('canvas');
|
| + dstCanvas.width = dstWidth;
|
| + dstCanvas.height = dstHeight;
|
| + var dstCtx = dstCanvas.getContext('2d');
|
| + dstCtx.fillStyle = '#00FF00';
|
| + dstCtx.fillRect(0, 0, dstWidth, dstHeight);
|
| + dstCtx.drawImage(srcCanvas, 5, 5, 10, 10, x, y, dw, dh);
|
| + var isOnePixelNotGreen = false;
|
| + for (var i = 0; i < dstWidth; i++) {
|
| + for (var j = 0; j < dstHeight; j++) {
|
| + var d = dstCtx.getImageData(i, j, 1, 1).data;
|
| + if (shouldBeGreen && (d[0] != 0 || d[1] != 255 || d[2] != 0 || d[3] != 255)) {
|
| + assert_true(false);
|
| + return;
|
| + }
|
| + if (!shouldBeGreen && (d[0] != 0 || d[1] != 255 || d[2] != 0 || d[3] != 255)) {
|
| + isOnePixelNotGreen = true;
|
| + break;
|
| + }
|
| + }
|
| + if (isOnePixelNotGreen)
|
| + break;
|
| + }
|
| + if (!shouldBeGreen)
|
| + assert_true(isOnePixelNotGreen);
|
| +}
|
| +
|
| +test(function() {
|
| + var srcCanvas = document.createElement('canvas');
|
| + srcCanvas.width = 20;
|
| + srcCanvas.height = 20;
|
| + var srcCtx = srcCanvas.getContext('2d');
|
| + srcCtx.fillStyle = '#FF0000';
|
| + srcCtx.fillRect(0, 0, 20, 20);
|
| + srcCtx.fillStyle = '#00FF00';
|
| + srcCtx.fillRect(5, 5, 10, 10);
|
| +
|
| + drawAndTestCanvas(srcCanvas, 20, 20, 5, 5, 10, 10, true); // no scaling, no bleeding
|
| + drawAndTestCanvas(srcCanvas, 40, 40, 10, 10, 20, 20, false); // scaling, bleeding
|
| +}, 'drawImage should sample outside of src rect when scaling');
|
| +</script>
|
|
|