| <!DOCTYPE HTML> |
| <script src="../../../resources/js-test.js"></script> |
| <style> |
| div.box { |
| margin: 5px; |
| padding: 20px; |
| float: left; |
| } |
| #grey { |
| width: 50px; |
| height: 50px; |
| } |
| </style> |
| |
| <div id="grey" class="box" style="background-color:grey"> |
| </div> |
| |
| <div id="console"></div> |
| |
| <script> |
| description("Verifies the compatiblity mouse events are sent correctly when the node is deleted on pointer event handler."); |
| |
| var eventList = ["mousedown", "mouseup", "mousemove", |
| "pointerdown", "pointerup", "pointermove"]; |
| |
| |
| var removeNodeEvent = ""; |
| |
| function init() { |
| var targetDiv = document.getElementById("grey"); |
| eventList.forEach(function(eventName) { |
| targetDiv.addEventListener(eventName, function(event) { |
| if (event.eventPhase == Event.AT_TARGET) { |
| debug("grey received " + event.type); |
| } |
| }); |
| }); |
| } |
| |
| function createGreenBoxAndAddListeners() { |
| var greenDiv = document.createElement("div"); |
| greenDiv.setAttribute("class", "box"); |
| greenDiv.id = "green"; |
| document.getElementById("grey").appendChild(greenDiv); |
| eventList.forEach(function(eventName) { |
| greenDiv.addEventListener(eventName, function(event) { |
| if (event.eventPhase == Event.AT_TARGET) { |
| debug("green received " + event.type); |
| if (event.type == removeNodeEvent) { |
| greenDiv.parentNode.removeChild(greenDiv); |
| debug(" ==> Green box removed"); |
| } |
| } |
| }); |
| }); |
| } |
| |
| function testScenario() { |
| eventSender.mouseMoveTo(0, 0); |
| |
| if (document.getElementById('grey').children.length == 0) |
| createGreenBoxAndAddListeners(); |
| |
| var rect = document.getElementById("green").getBoundingClientRect(); |
| var x1 = rect.left + 5; |
| var y1 = rect.top + 5; |
| |
| debug(" **** mouse move *****"); |
| eventSender.mouseMoveTo(x1, y1); |
| |
| debug(" **** mouse down *****"); |
| eventSender.mouseDown(1); |
| |
| debug(" **** mouse up *****"); |
| eventSender.mouseUp(1); |
| } |
| |
| function runTests() { |
| debug(" ======= Nothing is removed ======="); |
| removeNodeEvent = ""; |
| testScenario(); |
| debug(""); |
| |
| debug(" ======= Remove green on pointerdown ======="); |
| removeNodeEvent = "pointerdown"; |
| testScenario(); |
| debug(""); |
| |
| debug(" ======= Remove green on pointerup ======="); |
| removeNodeEvent = "pointerup"; |
| testScenario(); |
| debug(""); |
| |
| debug(" ======= Remove green on pointermove ======="); |
| removeNodeEvent = "pointermove"; |
| testScenario(); |
| debug(""); |
| } |
| |
| init(); |
| if (window.eventSender) |
| runTests(); |
| else |
| debug("This test requires eventSender"); |
| |
| </script> |