Bug 1918096 - Reject gUM/gDM request if video track ends before first frame. r=webrtc...
[gecko.git] / layout / reftests / selection / dom-mutations-ref.html
blob5d2e29dcb5572caacbfb5012de3ea92921c0028e
1 <!DOCTYPE HTML>
2 <html class="reftest-wait">
3 <!--
4 https://bugzilla.mozilla.org/show_bug.cgi?id=619273
5 -->
6 <head>
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'))
15 s.appendChild(s2)
16 return s;
19 var tests_done = 0;
20 var tests = [
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();
25 r.setStart(a, 1);
26 r.setEnd(a, 2);
27 sel.addRange(r);
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);
34 r.setEnd(a, 2);
35 sel.addRange(r);
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();
43 r.setStart(a, 0);
44 r.setEnd(c, 1);
45 sel.addRange(r);
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);
53 r.setEnd(c, 1);
54 sel.addRange(r);
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();
61 r.setStart(doc, 0);
62 r.setEnd(c, 1);
63 sel.addRange(r);
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();
70 r.setStart(a, 0);
71 r.setEnd(c, 2);
72 sel.addRange(r);
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();
79 r.setStart(a, 4);
80 r.setEnd(a, 5);
81 sel.addRange(r);
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);
88 r.setEnd(a, 5);
89 sel.addRange(r);
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();
97 r.setStart(a, 0);
98 r.setEnd(c, 1);
99 sel.addRange(r);
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);
107 r.setEnd(c, 1);
108 sel.addRange(r);
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();
115 r.setStart(doc, 0);
116 r.setEnd(c, 1);
117 sel.addRange(r);
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();
124 r.setStart(a, 0);
125 r.setEnd(c, 5);
126 sel.addRange(r);
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();
140 r.setStart(a, 0);
141 r.setEnd(c, 1);
142 sel.addRange(r);
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 () {
165 try {
166 run(f.contentWindow, f.contentDocument, f.contentWindow.getSelection());
167 } finally { ++tests_done; }
169 return f;
172 var id;
173 function checkFinished() {
174 if (window.frames.length == tests_done) {
175 clearInterval(id);
176 document.documentElement.className = "";
180 function runTest() {
181 for (let i=0; i < tests.length; ++i) {
182 let t = tests[i];
183 document.body.appendChild(runTestInIframe(t));
185 id = setInterval(checkFinished,500);
187 </script>
188 </head>
189 <body onload="runTest()"></body>
190 </html>