<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<script src="../../editing/editing.js"></script>
<script type="text/javascript">
        if (window.testRunner)
            testRunner.waitUntilDone();
        function runTest()
        {
            var elem = document.getElementById("test");
            var selection = window.getSelection();
            selection.setPosition(elem, 1);
            for (i = 0; i < 9; i++)
                document.execCommand("Delete");
            if (window.testRunner)
                testRunner.notifyDone();
        }
</script>
</head>
<body onload="setTimeout(runTest, 0)">
<p><b>BUG ID:</b> <a href="https://bugs.webkit.org/show_bug.cgi?id=8337">Bugzilla bug 8337</a> Incomplete repaint of inlines&rsquo; outline during editing</p>

<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> 
The words &ldquo;sit amet&rdquo; will be deleted, and the blue outline will shrink to
surround only the remaining text, without leaving behind any trails or other artifacts.
</p>

<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>  
As the words &ldquo;sit amet&rdquo; will be deleted, the blue outline will leave
trails behind as it shrinks to fit the remaining text.
</p>

<div contenteditable style="width: 100px; outline: none;">
<span id="test" style="outline: blue solid;">Lorem ipsum dolor sit amet&nbsp;</span>
</div>

</body>
</html>
