<!DOCTYPE html>
<style>
body {
margin: 0;
}
#outerColumns {
position: absolute;
width: 332px;
height: 200px;
top: 220px;
left: 300px;
border: 1px solid black;
columns: 3;
column-gap: 16px;
column-fill: auto;
line-height: 50px;
orphans: 1;
widows: 1;
}
#innerColumns {
columns: 2;
column-gap: 0;
}
</style>
<div id="outerColumns">
<br>
<div id="innerColumns">
<br>
<br>
<div id="outer1-inner1">first</div>
<br>
<div id="outer1-inner2">second</div>
<br>
<br>
<div id="outer2-inner1">third</div>
<br>
<br>
<div id="outer2-inner2">fourth</div>
<br>
<br>
<br>
<br>
<br>
<div id="outer3-inner1">fifth</div>
<br>
<br>
<br>
<br>
<div id="outer3-inner2">sixth</div>
</div>
</div>
<script src="../../resources/js-test.js"></script>
<script>
description("Dispatch mouse click events in each column and check the result.");
function dispatchEvent(clientX, clientY, expectedElementID, expectedOffsetX, expectedOffsetY) {
var e = document.createEvent("MouseEvent");
e.initMouseEvent("click", true, true, window, 1, 1, 1, clientX, clientY, false, false, false, false, 0, document);
e.expectedElementID = expectedElementID;
e.expectedOffsetX = expectedOffsetX;
e.expectedOffsetY = expectedOffsetY;
var target = document.elementFromPoint(e.clientX, e.clientY);
target.dispatchEvent(e);
}
onclick = function(event) {
if (!event.expectedElementID)
return;
shouldBe("event.target.id", "event.expectedElementID");
shouldBe("event.offsetX", "event.expectedOffsetX");
shouldBe("event.offsetY", "event.expectedOffsetY");
}
window.onload = function() {
dispatchEvent(330, 415, "outer1-inner1", 29, 44);
dispatchEvent(380, 365, "outer1-inner2", 29, 44);
dispatchEvent(446, 315, "outer2-inner1", 29, 44);
dispatchEvent(496, 265, "outer2-inner2", 29, 44);
dispatchEvent(562, 365, "outer3-inner1", 29, 44);
dispatchEvent(612, 415, "outer3-inner2", 29, 44);
}
</script>