Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Unified Diff: LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html

Issue 1170513002: Update the mouse events on tapping of gesture across frames (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..1a3e226527883091163304d63fdddb28c12985ff
--- /dev/null
+++ b/LayoutTests/fast/events/touch/gesture/gesture-tap-mouse-events-between-frames.html
@@ -0,0 +1,148 @@
+<!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="gray" style="background-color:gray">
+ <div id="lightgreen" style="background-color:lightgreen">
+ <div id="green" style="background-color:green;">
+ </div>
+ </div>
+</div>
+<iframe src='resources/gesture-tap-mouse-events-between-frames-iframe.html' id='frame'></iframe>
mustaq 2015/06/08 17:24:24 Please add the *-iframe.html file to the CL.
Miyoung Shin(c) 2015/06/10 12:10:04 Sorry to miss the file. I've added it.
+<div id="console"></div>
+
+<script>
+description("Verifies that tapping on an element sends mouse events to appropriate ancestors of the tapped element in correct order.");
mustaq 2015/06/08 17:24:24 Please update the description.
Miyoung Shin(c) 2015/06/10 12:10:05 Done.
+
+var frame = document.getElementById("frame");
+var greenEnterOrder = [
+ ["green", "mouseover"],
+ ["lightgreen", "mouseover"],
+ ["gray", "mouseover"],
mustaq 2015/06/08 17:24:24 My repro in the bug was a bit too complicated beca
Miyoung Shin(c) 2015/06/10 12:10:04 I've removed the gray and hotpink's divs. (now usi
+ ["gray", "mouseenter"],
+ ["lightgreen", "mouseenter"],
+ ["green", "mouseenter"],
+ ["green", "mousedown"],
+ ["lightgreen", "mousedown"],
+ ["gray", "mousedown"],
+ ["green", "mouseup"],
+ ["lightgreen", "mouseup"],
+ ["gray", "mouseup"],
+ ["green", "click"],
+ ["lightgreen", "click"],
+ ["gray", "click"]];
+
+var greenLeaveOrder = [
+ ["green", "mouseout"],
+ ["lightgreen", "mouseout"],
+ ["gray", "mouseout"],
+ ["green", "mouseleave"],
+ ["lightgreen", "mouseleave"],
+ ["gray", "mouseleave"]];
+
+var pinkEnterOrder = [
+ ["deeppink", "mouseover"],
+ ["hotpink", "mouseover"],
+ ["lightpink", "mouseover"],
+ ["lightpink", "mouseenter"],
+ ["hotpink", "mouseenter"],
+ ["deeppink", "mouseenter"],
+ ["deeppink", "mousedown"],
+ ["hotpink", "mousedown"],
+ ["lightpink", "mousedown"],
+ ["deeppink", "mouseup"],
+ ["hotpink", "mouseup"],
+ ["lightpink", "mouseup"],
+ ["deeppink", "click"],
+ ["hotpink", "click"],
+ ["lightpink", "click"]];
+
+var pinkLeaveOrder = [
+ ["deeppink", "mouseout"],
+ ["hotpink", "mouseout"],
+ ["lightpink", "mouseout"],
+ ["deeppink", "mouseleave"],
+ ["hotpink", "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 = ["gray", "lightgreen", "green", "lightpink", "hotpink", "deeppink"];
+
+ var elements = [];
+ ids.forEach(function(id) {
+ var element = getElementById(id);
+ elements.push(element);
+ });
+ registerElementsAndEventsToRecord(elements, ["mouseover", "mouseout", "mouseenter", "mouseleave", "mouseup", "mousedown", "click"]);
+}
+
+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.gestureTapDown(x, y);
+ eventSender.gestureShowPress(x, y);
+ eventSender.gestureTap(x, y);
mustaq 2015/06/08 17:24:24 I guess just sending a gestureTap here should be e
Miyoung Shin(c) 2015/06/10 12:10:04 I agree with you. I've removed to check the moused
+}
+
+function runTests()
+{
+ init();
+ if (window.eventSender) {
+ debug("--- Tap tests ---");
+
+ var expectedOrder = [];
+ beginRecordingEvents();
+ doGesture("green", {x: 0, y: 0});
+ expectedOrder = expectedOrder.concat(greenEnterOrder);
+ checkThatEventsFiredInOrder(expectedOrder);
+
mustaq 2015/06/08 17:24:24 Please cover the case of two consecutive taps in a
Miyoung Shin(c) 2015/06/10 12:10:04 Done.
+ doGesture("deeppink", {x: frame.offsetLeft, y: frame.offsetTop});
+ expectedOrder = expectedOrder.concat(greenLeaveOrder, pinkEnterOrder);
+ 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>

Powered by Google App Engine
This is Rietveld 408576698