<p>This tests indenting a div inside a list item.  By indenting "world", we should be inserting a blockquote around world inside the list item.</p>
<div id="div" contenteditable="true">
a
<ul>
<li>hello<div id="test">
world
</li>
</blockquote>
</ul>
b
</div>
<div id="c"></div>
<script>

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

var e = document.getElementById("test");
var s = window.getSelection();
var r = document.createRange();
r.setStart(e,0);
r.setEnd(e,1);
s.addRange(r);
document.execCommand("Indent", false, null);
text = document.createTextNode(document.getElementById('div').innerHTML);
document.getElementById('c').appendChild( text );
</script>
