<script>
if (window.layoutTestController)
     layoutTestController.dumpEditingCallbacks();
</script>
<p>This tests for a bug in createMarkup (markup for ancestors of the start of the selection wasn't being added to the pasteboard).  You should see the same thing in both regions below.</p>
<p><b>This demonstrates a bug: 'foo' is pulled out of its bordered block.</b></p>
<div id="copy" contenteditable="true"><div style="margin: 5px; border: 1px solid red;">foo<div style="margin: 5px; border: 1px solid blue;">bar</div></div>baz</div>

<div id="paste" contenteditable="true"></div>

<script>
window.getSelection().setPosition(document.getElementById("copy"));
document.execCommand("SelectAll");
document.execCommand("Copy");
window.getSelection().setPosition(document.getElementById("paste"));
document.execCommand("Paste");
</script>