<html>
    <head<></head>
    <script>
        function runTest()
        {
            if (window.testRunner)
                testRunner.dumpAsText();
            
            var elem = document.getElementById("test");
            
            x = elem.offsetLeft + elem.offsetWidth / 2;
            y = elem.offsetTop + elem.offsetHeight / 2;
            
            eventSender.mouseMoveTo(x, y);
            eventSender.mouseDown();
            eventSender.mouseUp();
            eventSender.mouseDown();
            eventSender.mouseUp();
            eventSender.mouseDown();
            eventSender.mouseUp();
            document.execCommand("copy");
            eventSender.keyDown("downArrow");
            eventSender.keyDown("downArrow");
            eventSender.keyDown("downArrow");
            document.execCommand("paste");
        }
    </script>
    <body onload="runTest()" contenteditable="true" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>one &nbsp;</div><div id="test">two &nbsp;</div>
    three &nbsp;<div>four &nbsp;</div><div><br></div></body></html>
