Chromium Code Reviews| Index: LayoutTests/fast/canvas/canvas-hit-regions-fill-rule-test.html |
| diff --git a/LayoutTests/fast/canvas/canvas-hit-regions-fill-rule-test.html b/LayoutTests/fast/canvas/canvas-hit-regions-fill-rule-test.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..dbd35580c76af546678464bfdc9af03953bbcfb3 |
| --- /dev/null |
| +++ b/LayoutTests/fast/canvas/canvas-hit-regions-fill-rule-test.html |
| @@ -0,0 +1,108 @@ |
| +<!DOCTYPE html> |
| +<html> |
| +<head> |
| + <title>Canvas Hit Regions: fillRule test</title> |
| + <script src="../../resources/js-test.js"></script> |
| +</head> |
| +<body> |
| +<canvas id="canvas" width="400" height="400"> |
| +</canvas> |
| +<script> |
| + |
| + var canvas = document.getElementById("canvas"); |
| + var context = canvas.getContext("2d"); |
| + |
| + function clickCanvas(x, y) |
| + { |
| + if (!window.eventSender) |
| + return "This test requires eventSender"; |
| + |
| + var result = null; |
| + function listener(event) |
| + { |
| + result = event.region; |
| + } |
| + |
| + var rect = canvas.getBoundingClientRect(); |
| + canvas.addEventListener("click", listener, false); |
| + eventSender.mouseMoveTo(rect.left + x, rect.top + y); |
| + eventSender.mouseDown(); |
| + eventSender.mouseUp(); |
| + canvas.removeEventListener("click", listener, false); |
| + |
| + return result; |
| + } |
| + |
| + context.rect(20, 20, 60, 60); |
| + context.rect(0, 0, 100, 100); |
| + context.addHitRegion({ |
| + id : "nonzero" |
| + // no fill rule option |
|
Justin Novosad
2014/06/23 14:44:49
I would call thais "default fill rule", rather tha
zino
2014/06/23 17:21:41
Done.
|
| + }); |
| + |
| + debug("No fillRule:"); |
|
Justin Novosad
2014/06/23 14:44:50
"Default fill rule (nonzero)"
zino
2014/06/23 17:21:41
Done.
|
| + shouldBe("clickCanvas(1, 1)", "'nonzero'"); |
| + shouldBe("clickCanvas(99, 98)", "'nonzero'"); |
| + shouldBe("clickCanvas(21, 21)", "'nonzero'"); |
| + shouldBe("clickCanvas(50, 50)", "'nonzero'"); |
| + debug(""); |
| + |
| + context.removeHitRegion("nonzero"); |
| + |
| + context.addHitRegion({ |
| + id : "evenodd", |
| + fillRule : "evenodd" |
| + }); |
| + |
| + debug("fillRule = evenodd:"); |
| + shouldBe("clickCanvas(1, 1)", "'evenodd'"); |
| + shouldBe("clickCanvas(99, 98)", "'evenodd'"); |
| + shouldBe("clickCanvas(21, 21)", "null"); |
| + shouldBe("clickCanvas(50, 50)", "null"); |
| + debug(""); |
| + |
| + context.removeHitRegion("evenodd"); |
| + |
| + context.addHitRegion({ |
| + id : "nonzero", |
| + fillRule : "nonzero" |
| + }); |
| + |
| + debug("fillRule = nonzero:"); |
| + shouldBe("clickCanvas(1, 1)", "'nonzero'"); |
| + shouldBe("clickCanvas(99, 98)", "'nonzero'"); |
| + shouldBe("clickCanvas(21, 21)", "'nonzero'"); |
| + shouldBe("clickCanvas(50, 50)", "'nonzero'"); |
| + debug(""); |
| + |
| + context.removeHitRegion("nonzero"); |
| + |
| + context.addHitRegion({ |
| + id : "nonzero", |
| + fillRule : null |
| + }); |
| + |
| + debug("fillRule = null:"); |
|
Justin Novosad
2014/06/23 14:44:49
"fillRule = null, falls back to default (nonzero):
zino
2014/06/23 17:21:41
Done.
|
| + shouldBe("clickCanvas(1, 1)", "'nonzero'"); |
| + shouldBe("clickCanvas(99, 98)", "'nonzero'"); |
| + shouldBe("clickCanvas(21, 21)", "'nonzero'"); |
| + shouldBe("clickCanvas(50, 50)", "'nonzero'"); |
| + debug(""); |
| + |
| + context.removeHitRegion("nonzero"); |
| + |
| + context.addHitRegion({ |
| + id : "nonzero", |
| + fillRule : undefined |
| + }); |
| + |
| + debug("fillRule = undefined:"); |
|
Justin Novosad
2014/06/23 14:44:50
same here
zino
2014/06/23 17:21:41
Done.
|
| + shouldBe("clickCanvas(1, 1)", "'nonzero'"); |
| + shouldBe("clickCanvas(99, 98)", "'nonzero'"); |
| + shouldBe("clickCanvas(21, 21)", "'nonzero'"); |
| + shouldBe("clickCanvas(50, 50)", "'nonzero'"); |
| + debug(""); |
| + |
| +</script> |
| +</body> |
| +</html> |