<script>
if (window.testRunner)
     testRunner.dumpEditingCallbacks();
</script>
<p>This is a testcase for <a href="rdar://problem/4402375">rdar://problem/4402375</a> "REGRESSION (417.8-TOT): finding text sometimes also selects previous image (5127) (6451)"</p>
<hr>
<p>This test uses a right aligned image next to some left aligned text.  The image should not be selected, and should not be included in the selection rect (you won't see the selection rect when you run this test manually).</p>
<div id="test" align="left"><img src="../resources/abe.png" align="right">This text should be selected.</div>
<script>
if (window.testRunner)
    window.testRunner.dumpSelectionRect();
var e = document.getElementById("test");
var s = window.getSelection();
// Select the text node.
s.setBaseAndExtent(e, 1, e, 2);
</script>
