<p>This test verifies that a document that receives a mouse down event receives
a corresponding mouse up event when the mouse up happens outside the window.
</p>
<p>If the test passes, you'll see a PASS message below.
</p>

<p>To run this test in Safari:
<ol>
    <li>Mouse down inside the document.</li>
    <li>Move the mouse outside the window.</li>
    <li>Mouse up.</li>
</ol>
</p>
<hr>
<pre id="log">FAIL: mouse up event did not fire</pre>

<script>
function main()
{
    document.addEventListener("mouseup", document_mouseUp, false);
    
    if (window.testRunner)
        testRunner.dumpAsText();
    
    if (window.eventSender) {
        eventSender.mouseMoveTo(20, 20); // in window
        eventSender.mouseDown();
        eventSender.mouseMoveTo(4000, 215); // outside window
        eventSender.mouseUp();
    }
}

function document_mouseUp()
{
    document.getElementById('log').innerHTML = "PASS: mouseup event fired\n";
}

main();
</script>
