OLD | NEW |
---|---|
(Empty) | |
1 <!DOCTYPE html> | |
2 <html> | |
3 <head> | |
4 <title>Canvas Hit Regions: clip test</title> | |
5 <script src="../../resources/js-test.js"></script> | |
6 </head> | |
7 <body> | |
8 <canvas id="canvas" width="400" height="400"></canvas> | |
9 <script> | |
10 | |
11 var canvas = document.getElementById("canvas"); | |
12 var context = canvas.getContext("2d"); | |
13 | |
14 function clickCanvas(x, y) | |
15 { | |
16 if (!window.eventSender) | |
17 return "This test requires eventSender"; | |
Stephen White
2016/01/25 15:37:35
Other tests seem to call debug() in this case. Is
zino
2016/01/27 17:10:30
Sorry, I just copied and pasted old codes.
| |
18 | |
19 var result = null; | |
20 function listener(event) | |
21 { | |
22 result = event.region; | |
23 } | |
24 | |
25 var rect = canvas.getBoundingClientRect(); | |
26 canvas.addEventListener("click", listener, false); | |
27 eventSender.mouseMoveTo(rect.left + x, rect.top + y); | |
28 eventSender.mouseDown(); | |
29 eventSender.mouseUp(); | |
30 canvas.removeEventListener("click", listener, false); | |
31 | |
32 return result; | |
33 } | |
34 | |
35 debug("Simple rect clip tests."); | |
36 context.save(); | |
37 context.beginPath(); | |
38 context.rect(0, 0, 100, 100); | |
39 context.clip(); | |
40 context.beginPath(); | |
41 context.rect(50, 50, 100, 100); | |
42 context.addHitRegion({ id : "clip" }); | |
43 context.restore(); | |
44 shouldBe("clickCanvas(10, 10)", "null"); | |
45 shouldBe("clickCanvas(60, 60)", "'clip'"); | |
46 debug(""); | |
47 | |
48 debug("Non rect clip tests."); | |
49 context.save(); | |
50 context.beginPath(); | |
51 context.arc(50, 50, 50, 0, Math.PI * 2); | |
52 context.clip(); | |
53 context.beginPath(); | |
54 context.rect(0, 0, 100, 100); | |
55 context.addHitRegion({ id : "clip" }); | |
56 context.restore(); | |
57 shouldBe("clickCanvas(0, 0)", "null"); | |
58 shouldBe("clickCanvas(100, 0)", "null"); | |
59 shouldBe("clickCanvas(100, 100)", "null"); | |
60 shouldBe("clickCanvas(0, 100)", "null"); | |
61 shouldBe("clickCanvas(50, 50)", "'clip'"); | |
62 debug(""); | |
63 | |
64 debug("Multiple clip tests."); | |
65 context.save(); | |
66 context.beginPath(); | |
67 context.rect(0, 0, 100, 100); | |
68 context.clip(); | |
69 context.beginPath(); | |
70 context.arc(100, 50, 50, 0, Math.PI * 2); | |
71 context.clip(); | |
72 context.beginPath(); | |
73 context.rect(0, 0, 150, 50); | |
74 context.addHitRegion({ id : "clip" }); | |
75 context.restore(); | |
76 shouldBe("clickCanvas(0, 0)", "null"); | |
77 shouldBe("clickCanvas(100, 0)", "'clip'"); | |
78 shouldBe("clickCanvas(100, 100)", "null"); | |
79 shouldBe("clickCanvas(0, 100)", "null"); | |
80 shouldBe("clickCanvas(50, 0)", "null"); | |
81 shouldBe("clickCanvas(150, 0)", "null"); | |
82 shouldBe("clickCanvas(150, 100)", "null"); | |
83 shouldBe("clickCanvas(50, 100)", "null"); | |
84 shouldBe("clickCanvas(50, 50)", "'clip'"); | |
85 shouldBe("clickCanvas(100, 50)", "'clip'"); | |
86 debug(""); | |
87 | |
88 debug("No pixels tests."); | |
89 context.save(); | |
90 context.beginPath(); | |
91 context.rect(0, 0, 100, 100); | |
92 context.clip(); | |
93 context.beginPath(); | |
94 context.rect(100, 100, 100, 100); | |
95 shouldThrow("context.addHitRegion({ id : 'clip' })"); | |
96 context.restore(); | |
97 context.save(); | |
98 context.beginPath(); | |
99 context.rect(0, 0, 50, 50); | |
100 context.rect(100, 0, 50, 50); | |
101 context.clip(); | |
102 context.beginPath(); | |
103 context.arc(75, 75, 30, 0, Math.PI * 2); | |
104 shouldThrow("context.addHitRegion({ id : 'clip' })"); | |
105 context.restore(); | |
106 debug(""); | |
107 | |
108 </script> | |
109 </body> | |
110 </html> | |
OLD | NEW |