<body contentEditable="true">
<div id="test-case">
  <u>This should be underlined.</u><div id="not-underlined">This should not be underlined.</div>
</div>
<div id="results"></div>
</body>
<script src="../editing.js"></script>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();

    // Pressing delete to merge the two lines should not cause the text
    // "not underlined" to be inside the <u> tag.
    var secondLine = document.getElementById("not-underlined");
    execSetSelectionCommand(secondLine, 0, secondLine, 0);
    document.execCommand("Delete");

    var result = document.getElementById("test-case").innerHTML;
    result = result.replace(/^\s+/g, "").replace(/\s+$/g, "");  // Removing leading/trailing whitespace.
    if (result == "<u>This should be underlined.</u>This should not be underlined.")
        document.getElementById("results").innerText = "PASS";
    else
        document.getElementById("results").innerText = "FAIL";
</script>
