127 lines
4.3 KiB
HTML
127 lines
4.3 KiB
HTML
<html>
|
|
<head>
|
|
<script>
|
|
function print(message, color) {
|
|
var paragraph = document.createElement("div");
|
|
paragraph.appendChild(document.createTextNode(message));
|
|
paragraph.style.fontFamily = "monospace";
|
|
if (color)
|
|
paragraph.style.color = color;
|
|
document.getElementById("console").appendChild(paragraph);
|
|
}
|
|
function shouldBe(description, actual, expected)
|
|
{
|
|
if (expected === actual) {
|
|
print("PASS: " + description + " should be " + expected +
|
|
" and is\n",
|
|
"green");
|
|
} else {
|
|
print("FAIL: " + description + " should be " + expected +
|
|
" but instead is " + actual + "\n",
|
|
"red");
|
|
}
|
|
}
|
|
function mouseeventverify(event, x, y, target, type)
|
|
{
|
|
shouldBe("event type", event.type, type);
|
|
shouldBe("event target", event.target, target);
|
|
shouldBe("event.pageX", event.pageX, x);
|
|
shouldBe("event.pageY", event.pageY, y);
|
|
shouldBe("event.offsetX", event.offsetX, x);
|
|
shouldBe("event.offsetY", event.offsetY, y);
|
|
shouldBe("event.x", event.x, x);
|
|
shouldBe("event.y", event.y, y);
|
|
}
|
|
function mouseeventverify2(event, x, y, offsetX, offsetY, target, type)
|
|
{
|
|
shouldBe("event type", event.type, type);
|
|
shouldBe("event target", event.target, target);
|
|
shouldBe("event.pageX", event.pageX, x);
|
|
shouldBe("event.pageY", event.pageY, y);
|
|
shouldBe("event.offsetX", event.offsetX, offsetX);
|
|
shouldBe("event.offsetY", event.offsetY, offsetY);
|
|
shouldBe("event.x", event.x, x);
|
|
shouldBe("event.y", event.y, y);
|
|
}
|
|
function test() {
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
if (window.eventSender) {
|
|
eventSender.mouseMoveTo(22, 104);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
}
|
|
|
|
if (window.eventSender) {
|
|
eventSender.mouseMoveTo(22, 184);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
}
|
|
|
|
if (window.eventSender) {
|
|
eventSender.mouseMoveTo(22, 262);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
}
|
|
|
|
if (window.eventSender) {
|
|
eventSender.mouseMoveTo(22, 344);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
}
|
|
|
|
if (window.eventSender) {
|
|
eventSender.mouseMoveTo(22, 448);
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
eventSender.mouseDown();
|
|
eventSender.mouseUp();
|
|
}
|
|
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="test();">
|
|
<p>This page tests whether a click event on a list box item propogates with the correct target and positioning values.<br>
|
|
Bug 3248: Mouse events on OPTION element seem to be ignored<br>
|
|
<a href="https://bugs.webkit.org/show_bug.cgi?id=3248">https://bugs.webkit.org/show_bug.cgi?id=3248</a></p>
|
|
<form action="" method="post">
|
|
<select style="position:absolute; top: 84;" size="2" onmousedown="mouseeventverify(event, 22, 104, document.getElementById('o1'), 'mousedown')">
|
|
<option>One
|
|
<option id="o1" onmousedown="mouseeventverify(event, 22, 104, this, 'mousedown')">Two
|
|
</select>
|
|
</form>
|
|
<form action="" method="post">
|
|
<select style="position:absolute; top: 164;" size="2" onmouseup="mouseeventverify(event, 22, 184, document.getElementById('o2'), 'mouseup')">
|
|
<option>One
|
|
<option id="o2" onmouseup="mouseeventverify(event, 22, 184, this, 'mouseup')">Two
|
|
</select>
|
|
</form>
|
|
<form action="" method="post">
|
|
<select style="position:absolute; top: 242;" size="2" onclick="mouseeventverify(event, 22, 262, document.getElementById('o3'), 'click')">
|
|
<option>One
|
|
<option id="o3" onclick="mouseeventverify(event, 22, 262, this, 'click')">Two
|
|
</select>
|
|
</form>
|
|
<form action="" method="post">
|
|
<select style="position:absolute; top: 324;" size="2" ondblclick="mouseeventverify(event, 22, 344, document.getElementById('o4'), 'dblclick')">
|
|
<option>One
|
|
<option id="o4" ondblclick="mouseeventverify(event, 22, 344, this, 'dblclick')">Two
|
|
</select>
|
|
</form>
|
|
<select style="position:absolute; top: 408;" size="3" onmousedown="mouseeventverify2(event, 22, 448, 12, 38, this, 'mousedown')">
|
|
<option>One
|
|
<option id="o5" onmousedown="mouseeventverify2(event, 22, 448, 12, 38, this, 'mousedown')">Two
|
|
</select>
|
|
</form>
|
|
<div style="position:absolute; top: 550;" id='console'></div>
|
|
</body>
|
|
</html>
|