chromium/third_party/blink/web_tests/fast/dom/Range/compareBoundaryPoints-1.html

<p>This tests to see that Range::compareBoundaryPoints throws a WrongDocumentError exception if the two ranges are in different documents, or if one is detached.</p>
<div id="div" contenteditable="true">dog<a href="http://www.google.com/">food</a></div>
<ul id="console"></ul>

<script>
function log(str) {
    var console = document.getElementById("console");
    var li = document.createElement("li");
    li.appendChild(document.createTextNode(str));
    console.appendChild(li);
}

if (window.testRunner)
    testRunner.dumpAsText();
    
var div = document.getElementById("div");
var text = div.firstChild;
var link = div.lastChild;
div.focus();    

text.parentNode.removeChild(text);

var r1 = document.createRange();
r1.setStart(link, 0);
r1.setEnd(link, 0);

var r2 = document.createRange();
r2.setStart(text, 0);
r2.setEnd(text, 0);

try {
    var compare = r1.compareBoundaryPoints(Range.START_TO_START, r2);
    log("Error.  compareBoundaryPoints should have thrown an exception.");
} catch (e) {
    var expected = "WrongDocumentError: Failed to execute 'compareBoundaryPoints' on 'Range': The source range is in a different document than this range.";
    if (e != expected)
        log("Error.  Exception thrown should have been: " + expected);
}
</script>