<head>
<style>
blockquote[type=cite] {
    color: 
}
</style>
</head>
<body>
<div id="description">This tests for a bug where deleting whole paragraphs of quoted content plus a line break could pull unquoted content into a blockquote.</div>
<div id="edit" contentEditable="true"><blockquote type="cite">one<br><span id="start">two</span></blockquote><span id="end">three</span></div>

<script>
if (window.testRunner)
    window.testRunner.dumpAsText();
    
start = document.getElementById("start");
end = document.getElementById("end");

window.getSelection().setBaseAndExtent(start, 0, end, 0);
document.execCommand("Delete");
if (window.testRunner)
    document.body.innerText = document.getElementById("description").innerText + "\n\n" + document.getElementById("edit").innerHTML;
</script>
</body>
