summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/canvas/canvas-hit-regions-fill-rule-test.html
blob: 093d8ed9877c3c983ffd52350c1cb2da00f9f7c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<!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 src="./resources/canvas-hit-region-event.js"></script>
<script>

  var canvas = document.getElementById("canvas");
  var context = canvas.getContext("2d");

  context.rect(20, 20, 60, 60);
  context.rect(0, 0, 100, 100);
  context.addHitRegion({
    id : "nonzero"
    // default fillRule
  });

  debug("default 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 : "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");

  shouldThrow('context.addHitRegion({id : "nonzero", fillRule : null });');

  context.addHitRegion({
    id : "nonzero",
    fillRule : undefined
  });

  debug("fillRule = undefined, falls back to default (nonzero):");
  shouldBe("clickCanvas(1, 1)", "'nonzero'");
  shouldBe("clickCanvas(99, 98)", "'nonzero'");
  shouldBe("clickCanvas(21, 21)", "'nonzero'");
  shouldBe("clickCanvas(50, 50)", "'nonzero'");
  debug("");

</script>
</body>
</html>