<script>
if (window.layoutTestController)
     layoutTestController.dumpEditingCallbacks();
</script>
<p>This tests to see if Find will get stuck when searching for a word that is currently selected, and was selected with a double click.</p>

<div>foo <span id="selectme">bar</span> baz foo bar baz</div>

<script>
if (window.layoutTestController) {
    var e = document.getElementById("selectme");
    var x = e.offsetLeft + e.offsetWidth / 2;
    var y = e.offsetTop + e.offsetHeight / 2;
    eventSender.mouseMoveTo(x, y);
    eventSender.mouseDown();
    eventSender.mouseUp();
    eventSender.mouseDown();
    eventSender.mouseUp();
    
    document.execCommand("FindString", false, "bar");
}
</script>