| Index: LayoutTests/fast/events/mouse-events-on-node-deletion.html | 
| diff --git a/LayoutTests/fast/events/mouse-events-on-node-deletion.html b/LayoutTests/fast/events/mouse-events-on-node-deletion.html | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..4fd62e676753ca68a573441baf9ad973cafd8e7c | 
| --- /dev/null | 
| +++ b/LayoutTests/fast/events/mouse-events-on-node-deletion.html | 
| @@ -0,0 +1,62 @@ | 
| +<!DOCTYPE HTML> | 
| +<script src="../../resources/js-test.js"></script> | 
| +<style> | 
| +.box { | 
| +    position: absolute; | 
| +    top: 20px; | 
| +    left: 20px; | 
| +    height: 100px; | 
| +    width: 100px; | 
| +} | 
| + | 
| +#outer { | 
| +    background-color: grey; | 
| +} | 
| + | 
| +#inner { | 
| +    background-color: red; | 
| +} | 
| +</style> | 
| + | 
| +<div id="outer" class="box"> | 
| +  <div id="inner" class="box"></div> | 
| +</div> | 
| + | 
| +<div id="console"></div> | 
| + | 
| +<script> | 
| +description("Verifies that mouse events are not fired on deleted nodes (crbug.com/515921)"); | 
| + | 
| +function eventLogger(event) { | 
| +  if (event.eventPhase == Event.AT_TARGET) | 
| +    debug(event.currentTarget.id + " received " + event.type); | 
| +} | 
| + | 
| +function init() { | 
| +  var outer = document.getElementById("outer"); | 
| +  var inner = document.getElementById("inner"); | 
| + | 
| +  ["mouseenter", "mouseleave", "mouseover", "mouseout"].forEach(function(event){ | 
| +    outer.addEventListener(event, eventLogger); | 
| +    inner.addEventListener(event, eventLogger); | 
| +  }); | 
| + | 
| +  outer.addEventListener("click", function () { | 
| +    outer.removeChild(inner); | 
| +    debug("removed inner"); | 
| +  }); | 
| +} | 
| + | 
| +init(); | 
| +if (window.eventSender) { | 
| +  eventSender.mouseMoveTo(30, 30); | 
| +  eventSender.mouseMoveTo(130, 130); | 
| +  eventSender.mouseDown(); | 
| +  eventSender.mouseUp(); | 
| +  debug("TODO(crbug.com/276329): We are missing a mouseout here!") | 
| +  debug("TODO(crbug.com/276329): We are missing a mouseleave here!") | 
| +  eventSender.mouseMoveTo(30, 30); | 
| +} else { | 
| +  debug("This test requires eventSender"); | 
| +} | 
| +</script> | 
|  |