<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.layoutTestController)
    layoutTestController.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>
