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..458ed2fb07baa6b967ada7d07ff5a90ca8877a51 |
--- /dev/null |
+++ b/LayoutTests/fast/events/resources/mouse-events-within-no-element-iframe.html |
@@ -0,0 +1,91 @@ |
+<!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) |
+ { |
+ if (events[i] == eventType) { |
Julien - ping for review
2014/09/19 16:56:41
I don't think this branch is needed or even a good
Miyoung Shin(g)
2014/09/20 03:59:43
OK. I will change to always check expected eventTy
|
+ shouldBeEqualToString('events[' + i + ']', eventType); |
+ shouldBeEqualToString('targets[' + i + ']', target); |
+ } else { |
+ shouldBeEqualToString('events[' + i + ']', eventType); |
+ } |
+ 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 - 100 |
+ verifyEventLog('mouseleave', '#document');// x, y - 100 |
Julien - ping for review
2014/09/19 16:56:41
x, y + 200?
Miyoung Shin(g)
2014/09/20 03:59:43
"x, y + 200" is the coordinates out of iframe.
I i
Miyoung Shin(g)
2014/09/20 06:09:39
Ah, I got it. this event is fired by "x, y + 200".
|
+</script> |
+</body> |