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

Unified Diff: LayoutTests/fast/events/mouseenter-mouseleave-on-drag.html

Issue 1047733002: Fixed mouseenter/mouseleave event firing order. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixed tests. Created 5 years, 9 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/mouseenter-mouseleave-on-drag.html
diff --git a/LayoutTests/fast/events/mouseenter-mouseleave-on-drag.html b/LayoutTests/fast/events/mouseenter-mouseleave-on-drag.html
new file mode 100644
index 0000000000000000000000000000000000000000..1a5207ff835cfd6c7f3e35ea623aaaf461af1714
--- /dev/null
+++ b/LayoutTests/fast/events/mouseenter-mouseleave-on-drag.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML>
+<script src="../../resources/js-test.js"></script>
+<style>
+#outer {
+ background: grey;
+ position: absolute;
+ left: 100px;
+ top: 100px;
+ width: 100px;
+ height: 100px;
+}
+#inner {
+ background: red;
+ position: absolute;
+ left: 30px;
+ top: 30px;
+ width: 40px;
+ height: 40px;
+}
+</style>
+
+<div id="outer">
+ <div id="inner"></div>
+</div>
+
+<div id="console"></div>
+
+<script>
+description("Verifies that dragging mouse in/out of an element doesn't fire redundant mouseenter or mouseleave events (crbug.com/470258)");
+
+var wasInside = {};
+
+function init() {
+ ["outer", "inner"].forEach(function(id) {
+ wasInside[id] = false;
+
+ var targetDiv = document.getElementById(id);
+
+ targetDiv.addEventListener("mouseenter", function(event) {
+ debug(id + " received mouseenter");
+ shouldBeFalse("wasInside['" + id + "']");
+ wasInside[id] = true;
+ });
+
+ targetDiv.addEventListener("mouseleave", function(event) {
+ debug(id + " received mouseleave");
+ shouldBeTrue("wasInside['" + id + "']");
+ wasInside[id] = false;
+ });
+
+ targetDiv.addEventListener("mousedown", function(event) {
+ debug(id + " received mousedown");
+ });
+
+ targetDiv.addEventListener("mouseup", function(event) {
+ debug(id + " received mouseup");
+ });
+ });
+}
+
+init();
+if (window.eventSender) {
+ eventSender.mouseMoveTo(1, 150);
+
+ eventSender.mouseMoveTo(110, 150);
+ eventSender.mouseDown();
+
+ eventSender.mouseMoveTo(140, 150);
+ eventSender.mouseMoveTo(150, 150);
+ eventSender.mouseMoveTo(160, 150);
+
+ eventSender.mouseMoveTo(190, 150);
+ eventSender.mouseUp();
+
+ eventSender.mouseMoveTo(201, 150);
+} else {
+ debug("This test requires eventSender");
+}
+</script>

Powered by Google App Engine
This is Rietveld 408576698