3 <script src="../../../resources/js-test-pre.js"></script>
4 <div id="container" style="display: none;"></div>
7 function createTextWithParent()
9 var container = document.getElementById('container');
11 var element = document.createElement('div');
12 element.textContent = 'hello';
13 container.appendChild(element);
15 return element.firstChild;
18 function createTextWithParentAndSiblings()
20 var container = document.getElementById('container');
22 var element = document.createElement('div');
23 element.textContent = 'hello';
24 container.appendChild(element);
26 var sibling = document.createElement('b');
27 element.insertBefore(sibling, element.firstChild);
29 var sibling = document.createElement('i');
30 element.appendChild(sibling);
32 return element.childNodes[1];
35 function createRange(startContainer, startOffset, endContainer, endOffset) {
36 var range = document.createRange();
37 range.setStart(startContainer, startOffset);
38 range.setEnd(endContainer, endOffset);
43 evalAndLog('text = createTextWithParent(); range = createRange(text.parentNode, 0, text.parentNode, 0); text.splitText(0)');
44 shouldBe('range.startContainer', 'text.parentNode');
45 shouldBe('range.startOffset', '0');
46 shouldBe('range.endContainer', 'text.parentNode');
47 shouldBe('range.endOffset', '0');
50 evalAndLog('text = createTextWithParent(); range = createRange(text.parentNode, 1, text.parentNode, 1); text.splitText(0)');
51 shouldBe('range.startContainer', 'text.parentNode');
52 shouldBe('range.startOffset', '2');
53 shouldBe('range.endContainer', 'text.parentNode');
54 shouldBe('range.endOffset', '2');
57 evalAndLog('text = createTextWithParent(); range = createRange(text.parentNode, 0, text.parentNode, 1); text.splitText(0)');
58 shouldBe('range.startContainer', 'text.parentNode');
59 shouldBe('range.startOffset', '0');
60 shouldBe('range.endContainer', 'text.parentNode');
61 shouldBe('range.endOffset', '2');
64 evalAndLog('text = createTextWithParentAndSiblings(); range = createRange(text.parentNode, 1, text.parentNode, 1); text.splitText(0)');
65 shouldBe('range.startContainer', 'text.parentNode');
66 shouldBe('range.startOffset', '1');
67 shouldBe('range.endContainer', 'text.parentNode');
68 shouldBe('range.endOffset', '1');
71 evalAndLog('text = createTextWithParentAndSiblings(); range = createRange(text.parentNode, 2, text.parentNode, 2); text.splitText(0)');
72 shouldBe('range.startContainer', 'text.parentNode');
73 shouldBe('range.startOffset', '3');
74 shouldBe('range.endContainer', 'text.parentNode');
75 shouldBe('range.endOffset', '3');
78 evalAndLog('text = createTextWithParentAndSiblings(); range = createRange(text.parentNode, 1, text.parentNode, 2); text.splitText(0)');
79 shouldBe('range.startContainer', 'text.parentNode');
80 shouldBe('range.startOffset', '1');
81 shouldBe('range.endContainer', 'text.parentNode');
82 shouldBe('range.endOffset', '3');
85 <script src="../../../resources/js-test-post.js"></script>