OLD | NEW |
| (Empty) |
1 <!DOCTYPE HTML> | |
2 <meta charset=utf-8> | |
3 <title>MutationObservers: characterData mutations</title> | |
4 <script src="../../../../resources/testharness.js"></script> | |
5 <script src="../../../../resources/testharnessreport.js"></script> | |
6 <script src="mutationobservers.js"></script> | |
7 <h1>MutationObservers: characterData mutations</h1> | |
8 <div id="log"></div> | |
9 | |
10 <section style="display: none"> | |
11 | |
12 <p id='n'>text content</p> | |
13 | |
14 <p id='n00'>text content</p> | |
15 | |
16 <p id='n10'>CHAN</p> | |
17 <p id='n11'>CHANGED</p> | |
18 <p id='n12'>CHANGED</p> | |
19 | |
20 <p id='n20'>CHGED</p> | |
21 <p id='n21'>CHANGED</p> | |
22 <p id='n22'>CHANGED</p> | |
23 | |
24 <p id='n30'>CCCHANGED</p> | |
25 <p id='n31'>CHANGED</p> | |
26 | |
27 <p id='n40'>CCCHANGED</p> | |
28 <p id='n41'>CHANGED</p> | |
29 | |
30 <p id="n50"><?processing data?></p> | |
31 | |
32 <p id="n60"><!-- data --></p> | |
33 | |
34 <p id='n70'>CHANN</p> | |
35 <p id='n71'>CHANN</p> | |
36 | |
37 <p id='n80'>CHANN</p> | |
38 <p id='n81'>CHANN</p> | |
39 | |
40 <p id='n90'>CHANN</p> | |
41 | |
42 </section> | |
43 | |
44 <script> | |
45 var n = document.getElementById('n').firstChild; | |
46 runMutationTest(n, | |
47 {"characterData":true}, | |
48 [{type: "characterData"}], | |
49 function() { n.data = "NEW VALUE"; }, | |
50 "characterData Text.data: simple mutation without oldValue"); | |
51 | |
52 var n00 = document.getElementById('n00').firstChild; | |
53 runMutationTest(n00, | |
54 {"characterData":true,"characterDataOldValue":true}, | |
55 [{type: "characterData", oldValue: "text content" }], | |
56 function() { n00.data = "CHANGED"; }, | |
57 "characterData Text.data: simple mutation"); | |
58 | |
59 var n10 = document.getElementById('n10').firstChild; | |
60 runMutationTest(n10, | |
61 {"characterData":true,"characterDataOldValue":true}, | |
62 [{type: "characterData", oldValue: "CHAN" }], | |
63 function() { n10.appendData("GED"); }, | |
64 "characterData Text.appendData: simple mutation"); | |
65 | |
66 var n11 = document.getElementById('n11').firstChild; | |
67 runMutationTest(n11, | |
68 {"characterData":true,"characterDataOldValue":true}, | |
69 [{type: "characterData", oldValue: "CHANGED" }], | |
70 function() { n11.appendData(""); }, | |
71 "characterData Text.appendData: empty string mutation"); | |
72 | |
73 var n12 = document.getElementById('n12').firstChild; | |
74 runMutationTest(n12, | |
75 {"characterData":true,"characterDataOldValue":true}, | |
76 [{type: "characterData", oldValue: "CHANGED" }], | |
77 function() { n12.appendData(null); }, | |
78 "characterData Text.appendData: null string mutation"); | |
79 | |
80 var n20 = document.getElementById('n20').firstChild; | |
81 runMutationTest(n20, | |
82 {"characterData":true,"characterDataOldValue":true}, | |
83 [{type: "characterData", oldValue: "CHGED" }], | |
84 function() { n20.insertData(2, "AN"); }, | |
85 "characterData Text.insertData: simple mutation"); | |
86 | |
87 var n21 = document.getElementById('n21').firstChild; | |
88 runMutationTest(n21, | |
89 {"characterData":true,"characterDataOldValue":true}, | |
90 [{type: "characterData", oldValue: "CHANGED" }], | |
91 function() { n21.insertData(2, ""); }, | |
92 "characterData Text.insertData: empty string mutation"); | |
93 | |
94 var n22 = document.getElementById('n22').firstChild; | |
95 runMutationTest(n22, | |
96 {"characterData":true,"characterDataOldValue":true}, | |
97 [{type: "characterData", oldValue: "CHANGED" }], | |
98 function() { n22.insertData(2, null); }, | |
99 "characterData Text.insertData: null string mutation"); | |
100 | |
101 var n30 = document.getElementById('n30').firstChild; | |
102 runMutationTest(n30, | |
103 {"characterData":true,"characterDataOldValue":true}, | |
104 [{type: "characterData", oldValue: "CCCHANGED" }], | |
105 function() { n30.deleteData(0, 2); }, | |
106 "characterData Text.deleteData: simple mutation"); | |
107 | |
108 var n31 = document.getElementById('n31').firstChild; | |
109 runMutationTest(n31, | |
110 {"characterData":true,"characterDataOldValue":true}, | |
111 [{type: "characterData", oldValue: "CHANGED" }, {type: "charac
terData", oldValue: "CHANGED" }], | |
112 function() { n31.deleteData(0, 0); n31.data = "n31"; }, | |
113 "characterData Text.deleteData: empty mutation"); | |
114 | |
115 var n40 = document.getElementById('n40').firstChild; | |
116 runMutationTest(n40, | |
117 {"characterData":true,"characterDataOldValue":true}, | |
118 [{type: "characterData", oldValue: "CCCHANGED" }], | |
119 function() { n40.replaceData(0, 2, "CH"); }, | |
120 "characterData Text.replaceData: simple mutation"); | |
121 | |
122 var n41 = document.getElementById('n41').firstChild; | |
123 runMutationTest(n41, | |
124 {"characterData":true,"characterDataOldValue":true}, | |
125 [{type: "characterData", oldValue: "CHANGED" }], | |
126 function() { n41.replaceData(0, 0, "CH"); }, | |
127 "characterData Text.replaceData: empty mutation"); | |
128 | |
129 var n50 = document.getElementById('n50').firstChild; | |
130 runMutationTest(n50, | |
131 {"characterData":true,"characterDataOldValue":true}, | |
132 [{type: "characterData", oldValue: "?processing data?" },{type
: "characterData", oldValue: "CHANGED" },{type: "characterData", oldValue: "CHAN
GED" }], | |
133 function() { | |
134 n50.data = "CHANGED"; | |
135 n50.deleteData(0, 0); | |
136 n50.replaceData(0, 2, "CH"); }, | |
137 "characterData ProcessingInstruction: data mutations"); | |
138 | |
139 var n60 = document.getElementById('n60').firstChild; | |
140 runMutationTest(n60, | |
141 {"characterData":true,"characterDataOldValue":true}, | |
142 [{type: "characterData", oldValue: " data " },{type: "characte
rData", oldValue: "CHANGED" },{type: "characterData", oldValue: "CHANGED" }], | |
143 function() { | |
144 n60.data = "CHANGED"; | |
145 n60.deleteData(0, 0); | |
146 n60.replaceData(0, 2, "CH"); }, | |
147 "characterData Comment: data mutations"); | |
148 | |
149 var n70 = document.getElementById('n70'); | |
150 var r70 = null; | |
151 test(function () { | |
152 n70.appendChild(document.createTextNode("NNN")); | |
153 n70.appendChild(document.createTextNode("NGED")); | |
154 r70 = document.createRange(); | |
155 r70.setStart(n70.firstChild, 4); | |
156 r70.setEnd(n70.lastChild, 1); | |
157 }, "Range (r70) is created"); | |
158 runMutationTest(n70.firstChild, | |
159 {"characterData":true,"characterDataOldValue":true}, | |
160 [{type: "characterData", oldValue: "CHANN" }], | |
161 function() { r70.deleteContents(); }, | |
162 "characterData Range.deleteContents: child and data removal mu
tation"); | |
163 | |
164 var n71 = document.getElementById('n71'); | |
165 var r71 = null; | |
166 test(function () { | |
167 n71.appendChild(document.createTextNode("NNN")); | |
168 n71.appendChild(document.createTextNode("NGED")); | |
169 r71 = document.createRange(); | |
170 r71.setStart(n71.firstChild, 4); | |
171 r71.setEnd(n71.lastChild, 1); | |
172 }, "Range (r71) is created"); | |
173 runMutationTest(n71.lastChild, | |
174 {"characterData":true,"characterDataOldValue":true}, | |
175 [{type: "characterData", oldValue: "NGED"}], | |
176 function() { r71.deleteContents(); }, | |
177 "characterData Range.deleteContents: child and data removal mu
tation (2)"); | |
178 | |
179 var n80 = document.getElementById('n80'); | |
180 var r80 = null; | |
181 test(function () { | |
182 n80.appendChild(document.createTextNode("NNN")); | |
183 n80.appendChild(document.createTextNode("NGED")); | |
184 r80 = document.createRange(); | |
185 r80.setStart(n80.firstChild, 4); | |
186 r80.setEnd(n80.lastChild, 1); | |
187 }, "Range (r80) is created"); | |
188 runMutationTest(n80.firstChild, | |
189 {"characterData":true,"characterDataOldValue":true}, | |
190 [{type: "characterData", oldValue: "CHANN" }], | |
191 function() { r80.extractContents(); }, | |
192 "characterData Range.extractContents: child and data removal m
utation"); | |
193 | |
194 var n81 = document.getElementById('n81'); | |
195 var r81 = null; | |
196 test(function () { | |
197 n81.appendChild(document.createTextNode("NNN")); | |
198 n81.appendChild(document.createTextNode("NGED")); | |
199 r81 = document.createRange(); | |
200 r81.setStart(n81.firstChild, 4); | |
201 r81.setEnd(n81.lastChild, 1); | |
202 }, "Range (r81) is created"); | |
203 runMutationTest(n81.lastChild, | |
204 {"characterData":true,"characterDataOldValue":true}, | |
205 [{type: "characterData", oldValue: "NGED" }], | |
206 function() { r81.extractContents(); }, | |
207 "characterData Range.extractContents: child and data removal m
utation (2)"); | |
208 | |
209 var n90 = document.getElementById('n90').firstChild; | |
210 runMutationTest(n90, | |
211 {"characterDataOldValue":true}, | |
212 [{type: "characterData", oldValue: "CHANN" }], | |
213 function() { n90.data = "CHANGED"; }, | |
214 "characterData/characterDataOldValue alone Text.data: simple m
utation"); | |
215 </script> | |
OLD | NEW |