<html>
<body>
<p>This tests outdenting "two", the second paragraph in a regular blockquote (not created by WebKit).  After outdenting two, there should be exactly two blockquotes.</p>
<div id="e" contenteditable="true">
<blockquote id="test">one<br>two<br>three</blockquote>
</div>

<ul>
<li>Before:<span id="c1"></span></li>
<li>After:<span id="c2"></span></li>
</ul>

<script type="text/javascript">

if (window.testRunner)
    testRunner.dumpAsText();

var e = document.getElementById('e');

document.getElementById('c1').appendChild(document.createTextNode(e.innerHTML));

var s = window.getSelection();
var r = document.createRange();
r.setStart(document.getElementById('test'),2);
r.setEnd(document.getElementById('test'),2);
s.removeAllRanges();
s.addRange(r);
document.execCommand("Outdent", false, "");

document.getElementById('c2').appendChild(document.createTextNode(e.innerHTML));

</script>
