| <!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', '#document');// x, y - 100 |
| verifyEventLog('mouseenter', 'BODY'); // x, y - 100 |
| verifyEventLog('mouseleave', 'BODY'); // x, y + 200 |
| verifyEventLog('mouseleave', '#document');// x, y + 200 |
| </script> |
| </body> |