<style>
    blockquote {
        color: blue;
        border-left: solid blue;
        padding-left: 5px;
        margin: 0;
    }
    blockquote blockquote {
        color: green;
        border-left-color: green;
    }
</style>
<body>
    <div>
        This tests that placing the cursor at the beginning of a
        doubly-quoted paragraph and hitting Return splits the outer blockquote
        at the right place, namely just above the inner blockquote, and inserts
        an empty line there, rather than outside the outer blockquote.
    </div>
    <div id="div" contentEditable="true"><blockquote type="cite"><div>Lorem<br>ipsum<blockquote id="test" type="cite">dolor</blockquote></blockquote></div>
    <script>
        test = document.getElementById("test");
        window.getSelection().setPosition(test, 0);
        document.execCommand("InsertNewlineInQuotedContent");
    
        if (window.testRunner) {
            window.testRunner.dumpAsText();
            div = document.getElementById("div");
            div.innerText = div.innerHTML;
        }
    </script>
</body>
