| Index: third_party/WebKit/LayoutTests/fast/canvas/canvas-2d-clip-anti-aliasing.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-2d-clip-anti-aliasing.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-2d-clip-anti-aliasing.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0d0b6c58532755b33feff8ea81fdd75699b8c383
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-2d-clip-anti-aliasing.html
|
| @@ -0,0 +1,56 @@
|
| +<!DOCTYPE html>
|
| +
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +<canvas id="myCanvas" width="240" height="240" style="border:1px solid #d3d3d3;"></canvas>
|
| +
|
| +<script>
|
| +
|
| +test(function() {
|
| + var c = document.getElementById("myCanvas");
|
| + var ctx = c.getContext("2d");
|
| +
|
| + ctx.beginPath();
|
| + ctx.moveTo(120, 20);
|
| + ctx.lineTo(220, 120);
|
| + ctx.lineTo(120, 220);
|
| + ctx.lineTo(20, 120);
|
| + ctx.lineTo(120, 20);
|
| + ctx.closePath();
|
| + ctx.clip();
|
| +
|
| + ctx.lineWidth = 1;
|
| + ctx.strokeStyle="#FF0000";
|
| + ctx.stroke();
|
| +
|
| + // Verifies that a stroke inside a clip of the same path displays correctly.
|
| + // Some sides of the shape may be clipped-out if stroking is anti-aliased
|
| + // but not clipping, or if clipping it is not properly aligned.
|
| + // We check pixels located on the vertices and in the middle of each edge.
|
| + var pixels = [ [120, 20], [170, 70], [220, 120], [170, 170],
|
| + [120, 220], [70, 170], [20, 120], [70, 70] ];
|
| +
|
| + // There can be false alarms if we look at the exact points (specially the
|
| + // vertices) as the anti-aliasing algorithm may find it enough to draw some
|
| + // surrounding points. Therefore, we look at a 3x3 rectangle surrounding
|
| + // each point.
|
| + for(i = 0; i < 8; i++) {
|
| + var pixelDrawn = false;
|
| + for(j = -1; j <=1; j++) {
|
| + for(k = -1; k <=1; k++) {
|
| + var colorData = ctx.getImageData(pixels[i][0] + j, pixels[i][1] + k, 1, 1).data;
|
| + if(colorData[0] == 255 && colorData[3] > 0) {
|
| + pixelDrawn = true;
|
| + }
|
| + }
|
| + }
|
| +
|
| + assert_equals(pixelDrawn, true);
|
| + }
|
| +
|
| +}, 'This test verifies that stroke inside a clip of the same path displays correctly.');
|
| +
|
| +</script>
|
| +
|
| +
|
| +
|
|
|