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

Unified Diff: LayoutTests/fast/events/resources/mouse-events-within-no-element-iframe.html

Issue 494913003: Mousemove event should be fired when the mouse stays in the document but there is no element. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 3 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/resources/mouse-events-within-no-element-iframe.html
diff --git a/LayoutTests/fast/events/resources/mouse-events-within-no-element-iframe.html b/LayoutTests/fast/events/resources/mouse-events-within-no-element-iframe.html
new file mode 100644
index 0000000000000000000000000000000000000000..4c6583b988748b90b1087ec240fa5884bee8644b
--- /dev/null
+++ b/LayoutTests/fast/events/resources/mouse-events-within-no-element-iframe.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<script src="../../../resources/js-test.js"></script>
+<style type="text/css">
+ html, body, .workspace {
+ height: 100%;
+ }
+ button {
+ cursor: pointer;
+ padding: 0px;
+ margin: 0px;
+ }
+ .minbox {
+ height: 30px;
+ width: 1px;
+ }
+#div1, #div2 {
+ height: 80px;
+ border: 1px solid #aaaaaa;
+}
+</style>
+<body>
+<div class="workspace"></div>
+<div class="minbox">
+ <div id="test">
+ <button>POINTER</button>
+ </div>
+</div>
+<p id="description"></p>
+<div id="console"></div>
+<script>
+ var div = document.getElementById("test");
+ var x = div.offsetLeft + 100;
+ var y = div.offsetTop - window.pageYOffset + 1;
+ var events = [];
+ var targets = [];
+
+ window.scrollTo(0, 200);
+ if (window.eventSender) {
+ function appendEventLog(e) {
+ events.push(e.type);
+ targets.push(e.currentTarget.nodeName);
+ }
+
+ function runNextTest(eventType1, eventType2)
+ {
+ document.addEventListener(eventType1, appendEventLog);
+ document.body.addEventListener(eventType1, appendEventLog);
+ document.addEventListener(eventType2, appendEventLog);
+ document.body.addEventListener(eventType2, appendEventLog);
+ eventSender.mouseMoveTo(x, y); // html element in iframe
+ eventSender.mouseMoveTo(x, y + 200); // out of iframe
+ eventSender.mouseMoveTo(x, y - 100); // body element in iframe
+ eventSender.mouseMoveTo(x, y + 200); // out of iframe
+ document.removeEventListener(eventType1, appendEventLog);
+ document.body.removeEventListener(eventType1, appendEventLog);
+ document.removeEventListener(eventType2, appendEventLog);
+ document.body.removeEventListener(eventType2, appendEventLog);
+ }
+ runNextTest('mousemove', '');
+ runNextTest('mouseover', '');
+ runNextTest('mouseout', '');
+ runNextTest('mouseenter', 'mouseleave');
+ }
+ var i = 0;
+ function verifyEventLog(eventType, target)
+ {
+ shouldBeEqualToString('events[' + i + ']', eventType);
+ shouldBeEqualToString('targets[' + i + ']', target);
+ i++;
+ }
+ verifyEventLog('mousemove', '#document'); // x, y
+ verifyEventLog('mousemove', 'BODY'); // x, y - 100
+ verifyEventLog('mousemove', '#document'); // x, y - 100
+ verifyEventLog('mouseover', '#document'); // x, y
+ verifyEventLog('mouseover', 'BODY'); // x, y - 100
+ verifyEventLog('mouseover', '#document'); // x, y - 100
+ verifyEventLog('mouseout', '#document'); // x, y
+ verifyEventLog('mouseout', 'BODY'); // x, y - 100
+ verifyEventLog('mouseout', '#document'); // x, y - 100
+ verifyEventLog('mouseenter', '#document');// x, y
+ verifyEventLog('mouseleave', '#document');// x, y
+ verifyEventLog('mouseenter', 'BODY'); // x, y - 100
+ verifyEventLog('mouseenter', '#document');// x, y - 100
+ verifyEventLog('mouseleave', 'BODY'); // x, y + 200
+ verifyEventLog('mouseleave', '#document');// x, y + 200
+</script>
+</body>

Powered by Google App Engine
This is Rietveld 408576698