blob: d78066bc108e3cb9584588194a4977661aa43427 [file] [log] [blame]
<html>
<body>
<div id="test"><span id="span1">foo</span><span>bar</span></div>
<div id="console"></div>
<script>
var s = window.getSelection();
var testDiv = document.getElementById("test");
var span1 = document.getElementById("span1");
function log(str) {
var li = document.createElement("li");
li.appendChild(document.createTextNode(str));
document.getElementById("console").appendChild(li);
}
function shouldBe(expr, expected) {
var actual = eval(expr);
if (actual != expected)
log("Failure: " + expr + " should be " + expected + ", was " + actual + ".");
else
log("Success: " + expr + " is " + expected + ".");
}
if (window.testRunner)
testRunner.dumpAsText();
var r = document.createRange();
// select span1
r.setStart(test, 0);
r.setEnd(test, 1);
s.addRange(r);
// replace the selection with span1's text node children
s.selectAllChildren(span1.firstChild);
shouldBe('s.anchorNode', span1.firstChild);
shouldBe('s.anchorOffset', 0);
shouldBe('s.focusNode', span1.firstChild);
shouldBe('s.focusOffset', 0); // Strange, but matches Firefox
// replace the selection with span1's children
s.selectAllChildren(span1);
shouldBe('window.getSelection()', 'foo');
// replace the selection with test's children
s.selectAllChildren(test);
shouldBe('window.getSelection()', 'foobar');
</script>
</body>
</html>