Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(620)

Unified Diff: third_party/WebKit/LayoutTests/fast/canvas/canvas-drawImage-bleed.html

Issue 2186553003: Update two layout tests to reflect bleeding in ctx.drawImage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698