<!DOCTYPE html>
<html>
<body>
<script src="../../../resources/js-test-pre.js"></script>
<div id="rootDiv">
<div id="div1">1</div><div id="div2">2</div><div id="div3">3-begin <div id="div4">4</div><div id="div5">5</div> 3-end</div><div id="div6">6</div><div id="div7">7</div>
<div id="description">Test various cases of Range.insertNode with nodes in the same container as the Range.</div>
</div>
<script>
var range = document.createRange();

var containerElement = document.getElementById("rootDiv");

evalAndLog('insertedElement = document.getElementById("div1");');
evalAndLog('range.setStart(containerElement, 3); range.setEnd(containerElement, 3); range.insertNode(insertedElement);');
shouldBe('range.startContainer', 'containerElement');
shouldBe('range.endContainer', 'containerElement');
shouldBe('range.startOffset', '2');
shouldBe('range.endOffset', '3');
shouldBe('range.toString()', '"1"');

evalAndLog('range.setStart(containerElement, 3); range.setEnd(containerElement, 3); range.insertNode(insertedElement);');
shouldBe('range.startContainer', 'containerElement');
shouldBe('range.endContainer', 'containerElement');
shouldBe('range.startOffset', '2');
shouldBe('range.endOffset', '3');
shouldBe('range.toString()', '"1"');

evalAndLog('insertedElement = document.getElementById("div3");');
evalAndLog('range.setStart(containerElement, 5); range.setEnd(containerElement, 5); range.insertNode(insertedElement);');
shouldBe('range.startContainer', 'containerElement');
shouldBe('range.endContainer', 'containerElement');
shouldBe('range.startOffset', '4');
shouldBe('range.endOffset', '5');
shouldBe('range.toString()', '"3-begin 45 3-end"');

evalAndLog('range.setStart(containerElement, 5); range.setEnd(containerElement, 5); range.insertNode(insertedElement);');
shouldBe('range.startContainer', 'containerElement');
shouldBe('range.endContainer', 'containerElement');
shouldBe('range.startOffset', '4');
shouldBe('range.endOffset', '5');
shouldBe('range.toString()', '"3-begin 45 3-end"');

evalAndLog('insertedElement = document.getElementById("div6");');
evalAndLog('range.setStart(containerElement, 1); range.setEnd(containerElement, 1); range.insertNode(insertedElement);');
shouldBe('range.startContainer', 'containerElement');
shouldBe('range.endContainer', 'containerElement');
shouldBe('range.startOffset', '1');
shouldBe('range.endOffset', '2');
shouldBe('range.toString()', '"6"');

evalAndLog('insertedElement = document.getElementById("div3");');
evalAndLog('range.setStart(containerElement, 4); range.setEnd(containerElement, 4); range.insertNode(insertedElement);');
shouldBe('range.startContainer', 'containerElement');
shouldBe('range.endContainer', 'containerElement');
shouldBe('range.startOffset', '4');
shouldBe('range.endOffset', '5');
shouldBe('range.toString()', '"3-begin 45 3-end"');

shouldBe('documentFragment = range.extractContents(); range.startContainer', 'containerElement');
shouldBe('range.startOffset', '4');
shouldBe('range.endContainer', 'containerElement');
shouldBe('range.endOffset', '4');
shouldBe('range.insertNode(documentFragment); range.toString()', '"3-begin 45 3-end"');

containerElement.style.display = 'none';

</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
