<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="test-container">
<div id=d0 style='border:2px solid red'>
<div onmouseout='testFailed("mouseout")'  onmouseover='document.getElementById("d0").innerHTML ="you should see PASS below"'>
<div onmouseout='testFailed("mouseout")'>
<span id=target1 onmouseout='testPassed("mouseout")' >
mouse over me
</span>
</div>
</div>
</div>
<div id=d1 style='border:2px solid blue'>
<div id=target2 onmouseout='testPassed("mouseout")'  onmouseover='document.getElementById("d1").innerHTML ="you should see PASS below"' >
mouse over me
</div>
</div>
</div>
<div id="console"></div>
<script>
description("Test that if node dies under mouse it receives mouseout event but that the event does not propagate.");

if (window.testRunner)
    testRunner.dumpAsText();

if (window.eventSender) {
    var el = document.getElementById('target1');
    var x = el.offsetLeft+3;
    var y = el.offsetTop+3;
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseMoveTo(x+1, y+1);
    el = document.getElementById('target2');
    x = el.offsetLeft+3;
    y = el.offsetTop+3;
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseMoveTo(x+1, y+1);

    var testContainer = document.getElementById("test-container");
    if (testContainer)
        document.body.removeChild(testContainer);
}
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
