Index: LayoutTests/fast/forms/option-mouseevents.html |
diff --git a/LayoutTests/fast/forms/option-mouseevents.html b/LayoutTests/fast/forms/option-mouseevents.html |
index 8f2fe2b695b15d1dffe6d4e8f3ac46169490be6c..78f2ea4bcbc4e0044b9b2fd9e74779131bde4457 100644 |
--- a/LayoutTests/fast/forms/option-mouseevents.html |
+++ b/LayoutTests/fast/forms/option-mouseevents.html |
@@ -21,27 +21,28 @@ function shouldBe(description, actual, expected) |
"red"); |
} |
} |
-function mouseeventverify(event, x, y, target, type) |
+function testEvent(listener, 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, 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); |
+ var rect = target.getBoundingClientRect(); |
+ var x = rect.left + offsetX; |
+ var y = rect.top + offsetY; |
+ listener.addEventListener(type, function () { |
+ 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); |
+ }, false); |
+ eventSender.mouseMoveTo(x, y); |
+ eventSender.mouseDown(); |
+ eventSender.mouseUp(); |
+ if (type == "dblclick") { |
+ eventSender.mouseDown(); |
+ eventSender.mouseUp(); |
+ } |
} |
function test() { |
if (window.testRunner) { |
@@ -49,39 +50,14 @@ function test() { |
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(); |
- } |
+ testEvent(document.getElementById('s1'), 11, 3, document.getElementById('o1'), 'mousedown'); |
+ testEvent(document.getElementById('o1'), 11, 3, document.getElementById('o1'), 'mousedown'); |
+ testEvent(document.getElementById('s2'), 11, 3, document.getElementById('o2'), 'mouseup'); |
+ testEvent(document.getElementById('o2'), 11, 3, document.getElementById('o2'), 'mouseup'); |
+ testEvent(document.getElementById('s3'), 11, 3, document.getElementById('o3'), 'click'); |
+ testEvent(document.getElementById('o3'), 11, 3, document.getElementById('o3'), 'click'); |
+ testEvent(document.getElementById('s3'), 11, 3, document.getElementById('o3'), 'click'); |
+ testEvent(document.getElementById('o3'), 11, 3, document.getElementById('o3'), 'click'); |
if (window.testRunner) |
testRunner.notifyDone(); |
@@ -93,32 +69,32 @@ function test() { |
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')"> |
+<select id="s1" style="position:absolute; top: 84;" size="2"> |
<option>One |
-<option id="o1" onmousedown="mouseeventverify(event, 22, 104, this, 'mousedown')">Two |
+<option id="o1">Two |
</select> |
</form> |
<form action="" method="post"> |
-<select style="position:absolute; top: 164;" size="2" onmouseup="mouseeventverify(event, 22, 184, document.getElementById('o2'), 'mouseup')"> |
+<select id="s2" style="position:absolute; top: 164;" size="2", 'mouseup')"> |
<option>One |
-<option id="o2" onmouseup="mouseeventverify(event, 22, 184, this, 'mouseup')">Two |
+<option id="o2">Two |
</select> |
</form> |
<form action="" method="post"> |
-<select style="position:absolute; top: 242;" size="2" onclick="mouseeventverify(event, 22, 262, document.getElementById('o3'), 'click')"> |
+<select id="s3" style="position:absolute; top: 242;" size="2", 'click')"> |
<option>One |
-<option id="o3" onclick="mouseeventverify(event, 22, 262, this, 'click')">Two |
+<option id="o3">Two |
</select> |
</form> |
<form action="" method="post"> |
-<select style="position:absolute; top: 324;" size="2" ondblclick="mouseeventverify(event, 22, 344, document.getElementById('o4'), 'dblclick')"> |
+<select style="position:absolute; top: 324;" size="2", 'dblclick')"> |
<option>One |
-<option id="o4" ondblclick="mouseeventverify(event, 22, 344, this, 'dblclick')">Two |
+<option id="o4">Two |
</select> |
</form> |
-<select style="position:absolute; top: 408;" size="3" onmousedown="mouseeventverify2(event, 22, 448, 12, 38, this, 'mousedown')"> |
+<select style="position:absolute; top: 408;" size="3"> |
<option>One |
-<option id="o5" onmousedown="mouseeventverify2(event, 22, 448, 12, 38, this, 'mousedown')">Two |
+<option id="o5">Two |
</select> |
</form> |
<div style="position:absolute; top: 550;" id='console'></div> |