OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <style> | 2 <style> |
3 body { | 3 body { |
4 margin: 0; | 4 margin: 0; |
5 } | 5 } |
6 | 6 |
7 #columns { | 7 #outerColumns { |
8 position: absolute; | 8 position: absolute; |
9 width: 332px; | 9 width: 332px; |
10 height: 200px; | 10 height: 200px; |
11 top: 320px; | 11 top: 220px; |
12 left: 300px; | 12 left: 300px; |
13 border: 1px solid black; | 13 border: 1px solid black; |
14 -webkit-column-count: 3; | 14 columns: 3; |
15 -webkit-column-gap: 16px; | 15 column-gap: 16px; |
16 column-fill: auto; | 16 column-fill: auto; |
17 line-height: 50px; | 17 line-height: 50px; |
| 18 orphans: 1; |
| 19 widows: 1; |
| 20 } |
| 21 |
| 22 #innerColumns { |
| 23 columns: 2; |
| 24 column-gap: 0; |
18 } | 25 } |
19 </style> | 26 </style> |
20 | 27 |
21 <div id="columns"> | 28 <div id="outerColumns"> |
22 <br> | 29 <br> |
23 <br> | 30 <div id="innerColumns"> |
24 <div> | |
25 <br> | |
26 <div id="in-column1">first</div> | |
27 </div> | |
28 <br> | |
29 <div> | |
30 <div id="in-column2">second</div> | |
31 <br> | 31 <br> |
32 <br> | 32 <br> |
33 <div id="in-column3">third</div> | 33 <div id="outer1-inner1">first</div> |
34 <br> | 34 <br> |
| 35 <div id="outer1-inner2">second</div> |
| 36 <br> |
| 37 <br> |
| 38 <div id="outer2-inner1">third</div> |
| 39 <br> |
| 40 <br> |
| 41 <div id="outer2-inner2">fourth</div> |
| 42 <br> |
| 43 <br> |
| 44 <br> |
| 45 <br> |
| 46 <br> |
| 47 <div id="outer3-inner1">fifth</div> |
| 48 <br> |
| 49 <br> |
| 50 <br> |
| 51 <br> |
| 52 <div id="outer3-inner2">sixth</div> |
35 </div> | 53 </div> |
36 </div> | 54 </div> |
37 | 55 |
38 <script src="../../resources/js-test.js"></script> | 56 <script src="../../resources/js-test.js"></script> |
39 <script> | 57 <script> |
40 description("Dispatch mouse click events in each column and check the result."); | 58 description("Dispatch mouse click events in each column and check the result."); |
41 | 59 |
42 function dispatchEvent(clientX, clientY, expectedElementID, expectedOffsetX, exp
ectedOffsetY) { | 60 function dispatchEvent(clientX, clientY, expectedElementID, expectedOffsetX, exp
ectedOffsetY) { |
43 var e = document.createEvent("MouseEvent"); | 61 var e = document.createEvent("MouseEvent"); |
44 e.initMouseEvent("click", true, true, window, 1, 1, 1, clientX, clientY, fal
se, false, false, false, 0, document); | 62 e.initMouseEvent("click", true, true, window, 1, 1, 1, clientX, clientY, fal
se, false, false, false, 0, document); |
45 e.expectedElementID = expectedElementID; | 63 e.expectedElementID = expectedElementID; |
46 e.expectedOffsetX = expectedOffsetX; | 64 e.expectedOffsetX = expectedOffsetX; |
47 e.expectedOffsetY = expectedOffsetY; | 65 e.expectedOffsetY = expectedOffsetY; |
48 var target = document.elementFromPoint(e.clientX, e.clientY); | 66 var target = document.elementFromPoint(e.clientX, e.clientY); |
49 target.dispatchEvent(e); | 67 target.dispatchEvent(e); |
50 } | 68 } |
51 | 69 |
52 onclick = function(event) { | 70 onclick = function(event) { |
53 if (!event.expectedElementID) | 71 if (!event.expectedElementID) |
54 return; | 72 return; |
55 shouldBe("event.target.id", "event.expectedElementID"); | 73 shouldBe("event.target.id", "event.expectedElementID"); |
56 shouldBe("event.offsetX", "event.expectedOffsetX"); | 74 shouldBe("event.offsetX", "event.expectedOffsetX"); |
57 shouldBe("event.offsetY", "event.expectedOffsetY"); | 75 shouldBe("event.offsetY", "event.expectedOffsetY"); |
58 } | 76 } |
59 | 77 |
60 onload = function() { | 78 window.onload = function() { |
61 dispatchEvent(380, 500, 'in-column1', 79, 29); | 79 dispatchEvent(330, 415, "outer1-inner1", 29, 44); |
62 dispatchEvent(480, 400, 'in-column2', 63, 29); | 80 dispatchEvent(380, 365, "outer1-inner2", 29, 44); |
63 dispatchEvent(632, 321, 'in-column3', 99, 0); | 81 dispatchEvent(446, 315, "outer2-inner1", 29, 44); |
| 82 dispatchEvent(496, 265, "outer2-inner2", 29, 44); |
| 83 dispatchEvent(562, 365, "outer3-inner1", 29, 44); |
| 84 dispatchEvent(612, 415, "outer3-inner2", 29, 44); |
64 } | 85 } |
65 </script> | 86 </script> |
OLD | NEW |