<script>
if (window.layoutTestController)
     layoutTestController.dumpEditingCallbacks();
</script>
<p>This tests cut/paste inside an editable iframe.  You should see 'foo bar baz' below.</p>
<iframe src="../resources/contenteditable-iframe-src.html"></iframe>

<script>
function foo() {
    var frame = frames[0];
    var sel = frame.getSelection();
    var doc = frame.document;
    
    sel.setPosition(doc.body, 0);
    doc.execCommand("InsertText", false, "foo bar baz");
    sel.modify("extend", "backward", "word");
    doc.execCommand("Cut");
    doc.execCommand("Paste");
    if (window.layoutTestController)
        window.layoutTestController.notifyDone();
}
if (window.layoutTestController)
    window.layoutTestController.waitUntilDone();
window.setTimeout(foo, 100);
</script>