<!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='testPassed("mouseout 3")'  onmouseover='document.getElementById("d0").innerHTML ="you should see PASS below"'>
<div onmouseout='testPassed("mouseout 2")'>
<span id=target1 onmouseout='testPassed("mouseout 1")' >
mouse over me
</span>
</div>
</div>
</div>
<div id=d1 style='border:2px solid blue'>
<div id=target2 onmouseout='testPassed("mouseout 4")'  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>
