2 <html class=
"reftest-wait">
4 https://bugzilla.mozilla.org/show_bug.cgi?id=619273
7 <title>Test for Bug
619273</title>
8 <script type=
"application/javascript">
9 /** Test DOM mutations inside selection **/
10 function createDOM(doc) {
11 let s = doc.createElement('span');
12 s.appendChild(doc.createTextNode('|'))
13 let s2 = doc.createElement('span');
14 s2.appendChild(doc.createTextNode('z'))
21 function(win,doc,sel) {
22 doc.body.innerHTML = '.I
<br>B
<br>C|z'
23 let a = doc.body.firstChild;
24 let r = doc.createRange();
29 function(win,doc,sel) {
30 doc.body.innerHTML = '.I
<br>B
<br>C|z'
31 let a = doc.body.firstChild;
32 let r = doc.createRange();
33 r.setStart(doc.firstChild,
0);
37 function(win,doc,sel) {
38 doc.body.innerHTML = 'I
<br>.B
<br>C|z'
39 let a = doc.body.firstChild;
40 let b = doc.body.childNodes[
2];
41 let c = doc.body.childNodes[
4];
42 let r = doc.createRange();
47 function(win,doc,sel) {
48 doc.body.innerHTML = 'I
<br>.B
<br>C|z'
49 let b = doc.body.childNodes[
2];
50 let c = doc.body.childNodes[
4];
51 let r = doc.createRange();
52 r.setStart(doc.body,
0);
56 function(win,doc,sel) {
57 doc.body.innerHTML = 'I
<br>.B
<br>C|z'
58 let b = doc.body.childNodes[
2];
59 let c = doc.body.childNodes[
4];
60 let r = doc.createRange();
65 function(win,doc,sel) {
66 doc.body.innerHTML = 'I
<br>B
<br>.C|z'
67 let a = doc.body.firstChild;
68 let c = doc.body.childNodes[
4];
69 let r = doc.createRange();
75 function(win,doc,sel) {
76 doc.body.innerHTML = '|z|zI
<br>B
<br>C'
77 let a = doc.body.firstChild;
78 let r = doc.createRange();
83 function(win,doc,sel) {
84 doc.body.innerHTML = '|z|zI
<br>B
<br>C'
85 let a = doc.body.firstChild;
86 let r = doc.createRange();
87 r.setStart(doc.firstChild,
0);
91 function(win,doc,sel) {
92 doc.body.innerHTML = 'I
<br>|z|zB
<br>C'
93 let a = doc.body.firstChild;
94 let b = doc.body.childNodes[
2];
95 let c = doc.body.childNodes[
4];
96 let r = doc.createRange();
101 function(win,doc,sel) {
102 doc.body.innerHTML = 'I
<br>|z|zB
<br>C'
103 let b = doc.body.childNodes[
2];
104 let c = doc.body.childNodes[
4];
105 let r = doc.createRange();
106 r.setStart(doc.body,
0);
110 function(win,doc,sel) {
111 doc.body.innerHTML = 'I
<br>|z|zB
<br>C'
112 let b = doc.body.childNodes[
2];
113 let c = doc.body.childNodes[
4];
114 let r = doc.createRange();
119 function(win,doc,sel) {
120 doc.body.innerHTML = 'I
<br>B
<br>|z|zC'
121 let a = doc.body.firstChild;
122 let c = doc.body.childNodes[
4];
123 let r = doc.createRange();
129 function(win,doc,sel) {
130 doc.body.innerHTML = '
<br>B
<br>CI'
132 function(win,doc,sel) {
133 doc.body.innerHTML = '
<br>B
<br>C'
135 function(win,doc,sel) {
136 doc.body.innerHTML = 'I
<br>B
<br>C'
137 let a = doc.body.firstChild;
138 let c = doc.body.childNodes[
4];
139 let r = doc.createRange();
145 function(win,doc,sel) {
146 doc.body.innerHTML = 'I|z'
149 function(win,doc,sel) {
150 doc.body.innerHTML = 'Iz|'
152 document.body.appendChild(document.createTextNode('I'));
153 document.body.appendChild(document.createTextNode(' '));
154 document.body.appendChild(createDOM(document));
158 function runTestInIframe(run,t) {
159 let f = document.createElement('iframe');
160 f.setAttribute('frameborder','
0');
161 f.setAttribute('height','
100');
162 f.setAttribute('width','
200');
163 f.src = 'data:text/html,
<body style=
"margin:0;padding:0;font-family:monospace">';
164 f.onload = function () {
166 run(f.contentWindow, f.contentDocument, f.contentWindow.getSelection());
167 } finally { ++tests_done; }
173 function checkFinished() {
174 if (window.frames.length == tests_done) {
176 document.documentElement.className =
"";
181 for (let i=
0; i < tests.length; ++i) {
183 document.body.appendChild(runTestInIframe(t));
185 id = setInterval(checkFinished,
500);
189 <body onload=
"runTest()"></body>