Index: LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html |
diff --git a/LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html b/LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0feb40344bbb1684ef56c6b1a4eabd3d7e4a27f3 |
--- /dev/null |
+++ b/LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html |
@@ -0,0 +1,126 @@ |
+<!DOCTYPE HTML> |
+<script src="../../../../resources/js-test.js"></script> |
+<script src="../../resources/record-events.js"></script> |
+<style> |
+div { |
+ margin: 10px; |
+ padding: 50px; |
+ float: left; |
+} |
+#console { |
+ padding: 0px; |
+ float: none; |
+} |
+#frame { |
+ margin: 0px; |
+ border: 0px; |
+ width: 400px; |
+ height: 400px; |
+} |
+</style> |
+ |
+<div id="lightgreen" style="background-color:lightgreen"> |
+ <div id="green" style="background-color:green;"> |
+ </div> |
+</div> |
+<iframe src='resources/gesture-tap-mouse-events-between-frames-iframe.html' id='frame'></iframe> |
+<div id="console"></div> |
+ |
+<script> |
+description("Verifies that mouse events are fired on tapping of gesture across frames in the correct order."); |
mustaq
2015/06/16 14:50:44
Nit: double space before "are"
Miyoung Shin(c)
2015/06/20 21:08:29
Done.
|
+ |
+var frame = document.getElementById("frame"); |
+var greenEnterOrder = [ |
+ ["green", "mouseover"], |
+ ["lightgreen", "mouseover"], |
+ ["lightgreen", "mouseenter"], |
+ ["green", "mouseenter"]]; |
+ |
+var greenLeaveOrder = [ |
+ ["green", "mouseout"], |
+ ["lightgreen", "mouseout"], |
+ ["green", "mouseleave"], |
+ ["lightgreen", "mouseleave"]]; |
+ |
+var pinkEnterOrder = [ |
+ ["deeppink", "mouseover"], |
+ ["lightpink", "mouseover"], |
+ ["lightpink", "mouseenter"], |
+ ["deeppink", "mouseenter"]]; |
+ |
+var pinkLeaveOrder = [ |
+ ["deeppink", "mouseout"], |
+ ["lightpink", "mouseout"], |
+ ["deeppink", "mouseleave"], |
+ ["lightpink", "mouseleave"]]; |
+ |
+function getElementById(id) |
+{ |
+ var element = document.getElementById(id); |
+ if (element == null) |
+ element = frame.contentDocument.getElementById(id); |
+ return element; |
+} |
+ |
+function init() { |
+ var ids = ["lightgreen", "green", "lightpink", "deeppink"]; |
+ |
+ var elements = []; |
+ ids.forEach(function(id) { |
+ var element = getElementById(id); |
+ elements.push(element); |
+ }); |
+ registerElementsAndEventsToRecord(elements, ["mouseover", "mouseout", "mouseenter", "mouseleave"]); |
+} |
+ |
+function doGesture(id, base) |
+{ |
+ debug("-- sending gestureTap to " + id + " --"); |
+ var element = getElementById(id); |
+ |
+ var x = base.x + element.offsetLeft + element.offsetWidth / 2; |
+ var y = base.y + element.offsetTop + element.offsetHeight / 2; |
+ eventSender.gestureTap(x, y); |
+} |
+ |
+function runTests() |
+{ |
+ init(); |
+ if (window.eventSender) { |
+ debug("--- Tap tests ---"); |
+ |
+ var expectedOrder = []; |
+ beginRecordingEvents(); |
+ doGesture("green", {x: 0, y: 0}); |
+ expectedOrder = expectedOrder.concat(greenEnterOrder); |
+ checkThatEventsFiredInOrder(expectedOrder); |
+ |
+ doGesture("green", {x: 0, y: 0}); |
+ debug("There should not be any mouse event."); |
+ checkThatEventsFiredInOrder(expectedOrder); |
+ |
+ doGesture("deeppink", {x: frame.offsetLeft, y: frame.offsetTop}); |
+ expectedOrder = expectedOrder.concat(greenLeaveOrder, pinkEnterOrder); |
+ checkThatEventsFiredInOrder(expectedOrder); |
+ |
+ doGesture("deeppink", {x: frame.offsetLeft, y: frame.offsetTop}); |
+ debug("There should not be any mouse event."); |
+ checkThatEventsFiredInOrder(expectedOrder); |
+ |
+ doGesture("green", {x: 0, y: 0}); |
+ expectedOrder = expectedOrder.concat(pinkLeaveOrder, greenEnterOrder); |
+ checkThatEventsFiredInOrder(expectedOrder); |
+ endRecordingEvents(); |
+ } else { |
+ debug("This test requires eventSender"); |
+ } |
+ finishJSTest(); |
+} |
+ |
+if (window.testRunner) { |
+ window.jsTestIsAsync = true; |
+ testRunner.waitUntilDone(); |
+} |
+ |
+window.onload = runTests; |
+</script> |