| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <meta charset="utf-8"> | 4 <meta charset="utf-8"> |
| 5 <script src="../../js/resources/js-test-pre.js"></script> | 5 <script src="../../js/resources/js-test-pre.js"></script> |
| 6 </head> | 6 </head> |
| 7 <body> | 7 <body> |
| 8 <p id=description></p> | 8 <p id=description></p> |
| 9 <div id="console"></div> | 9 <div id="console"></div> |
| 10 <script> | 10 <script> |
| 11 | 11 |
| 12 window.jsTestIsAsync = true; | 12 window.jsTestIsAsync = true; |
| 13 var mutations; | 13 var mutations; |
| 14 var mutations2; | 14 var mutations2; |
| 15 var mutationsWithOldValue; | 15 var mutationsWithOldValue; |
| 16 var calls; | 16 var calls; |
| 17 var charDataNode; | 17 var charDataNode; |
| 18 | 18 |
| 19 function testBasic() { | 19 function testBasic() { |
| 20 var div; | 20 var div; |
| 21 var observer; | 21 var observer; |
| 22 | 22 |
| 23 function start() { | 23 function start() { |
| 24 debug('Testing basic aspects of characterData observation.'); | 24 debug('Testing basic aspects of characterData observation.'); |
| 25 | 25 |
| 26 mutations = null; | 26 mutations = null; |
| 27 div = document.createElement('div'); | 27 div = document.createElement('div'); |
| 28 div.textContent = 'foo'; | 28 div.textContent = 'foo'; |
| 29 charDataNode = div.firstChild; | 29 charDataNode = div.firstChild; |
| 30 observer = new WebKitMutationObserver(function(m) { | 30 observer = new MutationObserver(function(m) { |
| 31 mutations = m; | 31 mutations = m; |
| 32 }); | 32 }); |
| 33 | 33 |
| 34 observer.observe(charDataNode, {characterData: true}); | 34 observer.observe(charDataNode, {characterData: true}); |
| 35 charDataNode.textContent = 'bar'; | 35 charDataNode.textContent = 'bar'; |
| 36 setTimeout(checkDisconnectAndMutate, 0); | 36 setTimeout(checkDisconnectAndMutate, 0); |
| 37 } | 37 } |
| 38 | 38 |
| 39 function checkDisconnectAndMutate() { | 39 function checkDisconnectAndMutate() { |
| 40 debug('...can characterData changes be observed at all'); | 40 debug('...can characterData changes be observed at all'); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 var div; | 80 var div; |
| 81 var observer; | 81 var observer; |
| 82 | 82 |
| 83 function start() { | 83 function start() { |
| 84 debug('Testing that observing without specifying "characterData" does no
t result in hearing about characterData changes.'); | 84 debug('Testing that observing without specifying "characterData" does no
t result in hearing about characterData changes.'); |
| 85 | 85 |
| 86 mutations = null; | 86 mutations = null; |
| 87 div = document.createElement('div'); | 87 div = document.createElement('div'); |
| 88 div.textContent = 'hello'; | 88 div.textContent = 'hello'; |
| 89 charDataNode = div.firstChild; | 89 charDataNode = div.firstChild; |
| 90 observer = new WebKitMutationObserver(function(m) { | 90 observer = new MutationObserver(function(m) { |
| 91 mutations = m; | 91 mutations = m; |
| 92 }); | 92 }); |
| 93 | 93 |
| 94 observer.observe(charDataNode, {childList: true, attributes: true}); | 94 observer.observe(charDataNode, {childList: true, attributes: true}); |
| 95 charDataNode = 'goodbye'; | 95 charDataNode = 'goodbye'; |
| 96 setTimeout(finish, 0); | 96 setTimeout(finish, 0); |
| 97 } | 97 } |
| 98 | 98 |
| 99 function finish() { | 99 function finish() { |
| 100 shouldBe('mutations', 'null'); | 100 shouldBe('mutations', 'null'); |
| 101 observer.disconnect(); | 101 observer.disconnect(); |
| 102 debug(''); | 102 debug(''); |
| 103 runNextTest(); | 103 runNextTest(); |
| 104 } | 104 } |
| 105 | 105 |
| 106 start(); | 106 start(); |
| 107 } | 107 } |
| 108 | 108 |
| 109 function testMultipleObservers() { | 109 function testMultipleObservers() { |
| 110 var div; | 110 var div; |
| 111 var observer; | 111 var observer; |
| 112 var observer2; | 112 var observer2; |
| 113 | 113 |
| 114 function start() { | 114 function start() { |
| 115 debug('Testing that multiple observers can be registered to a given node
and both receive mutations.'); | 115 debug('Testing that multiple observers can be registered to a given node
and both receive mutations.'); |
| 116 mutations = null; | 116 mutations = null; |
| 117 div = document.createElement('div'); | 117 div = document.createElement('div'); |
| 118 div.textContent = 'foo'; | 118 div.textContent = 'foo'; |
| 119 charDataNode = div.firstChild; | 119 charDataNode = div.firstChild; |
| 120 observer = new WebKitMutationObserver(function(m) { | 120 observer = new MutationObserver(function(m) { |
| 121 mutations = m; | 121 mutations = m; |
| 122 }); | 122 }); |
| 123 observer2 = new WebKitMutationObserver(function(m) { | 123 observer2 = new MutationObserver(function(m) { |
| 124 mutations2 = m; | 124 mutations2 = m; |
| 125 }); | 125 }); |
| 126 observer.observe(charDataNode, {characterData: true}); | 126 observer.observe(charDataNode, {characterData: true}); |
| 127 observer2.observe(charDataNode, {characterData: true}); | 127 observer2.observe(charDataNode, {characterData: true}); |
| 128 charDataNode.textContent = 'bar'; | 128 charDataNode.textContent = 'bar'; |
| 129 setTimeout(finish, 0); | 129 setTimeout(finish, 0); |
| 130 } | 130 } |
| 131 | 131 |
| 132 function finish() { | 132 function finish() { |
| 133 shouldBe('mutations.length', '1'); | 133 shouldBe('mutations.length', '1'); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 154 debug('Testing mutation records are enqueued for characterData before DO
MSubtreeModified is dispatched.'); | 154 debug('Testing mutation records are enqueued for characterData before DO
MSubtreeModified is dispatched.'); |
| 155 | 155 |
| 156 mutations = null; | 156 mutations = null; |
| 157 div = document.body.appendChild(document.createElement('div')); | 157 div = document.body.appendChild(document.createElement('div')); |
| 158 div2 = document.body.appendChild(document.createElement('div')); | 158 div2 = document.body.appendChild(document.createElement('div')); |
| 159 | 159 |
| 160 subDiv = div.appendChild(document.createElement('div')); | 160 subDiv = div.appendChild(document.createElement('div')); |
| 161 subDiv.textContent = 'foo'; | 161 subDiv.textContent = 'foo'; |
| 162 charDataNode = subDiv.firstChild; | 162 charDataNode = subDiv.firstChild; |
| 163 | 163 |
| 164 observer = new WebKitMutationObserver(function(m) { | 164 observer = new MutationObserver(function(m) { |
| 165 mutations = m; | 165 mutations = m; |
| 166 }); | 166 }); |
| 167 | 167 |
| 168 listener = function(e) { | 168 listener = function(e) { |
| 169 div2.setAttribute('baz', 'bat'); | 169 div2.setAttribute('baz', 'bat'); |
| 170 } | 170 } |
| 171 | 171 |
| 172 div.addEventListener('DOMSubtreeModified', listener); | 172 div.addEventListener('DOMSubtreeModified', listener); |
| 173 observer.observe(charDataNode, {characterData: true}); | 173 observer.observe(charDataNode, {characterData: true}); |
| 174 observer.observe(div2, {attributes: true}); | 174 observer.observe(div2, {attributes: true}); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 195 function testOldValue() { | 195 function testOldValue() { |
| 196 var div; | 196 var div; |
| 197 var observer; | 197 var observer; |
| 198 | 198 |
| 199 function start() { | 199 function start() { |
| 200 debug('Testing that oldValue is returned when requested.'); | 200 debug('Testing that oldValue is returned when requested.'); |
| 201 mutations = null; | 201 mutations = null; |
| 202 div = document.createElement('div'); | 202 div = document.createElement('div'); |
| 203 div.textContent = 'foo'; | 203 div.textContent = 'foo'; |
| 204 charDataNode = div.firstChild; | 204 charDataNode = div.firstChild; |
| 205 observer = new WebKitMutationObserver(function(mutations) { | 205 observer = new MutationObserver(function(mutations) { |
| 206 window.mutations = mutations; | 206 window.mutations = mutations; |
| 207 }); | 207 }); |
| 208 observer.observe(charDataNode, {characterData: true, characterDataOldVal
ue: true}); | 208 observer.observe(charDataNode, {characterData: true, characterDataOldVal
ue: true}); |
| 209 charDataNode.textContent = 'bar'; | 209 charDataNode.textContent = 'bar'; |
| 210 charDataNode.textContent = 'baz'; | 210 charDataNode.textContent = 'baz'; |
| 211 setTimeout(finish, 0); | 211 setTimeout(finish, 0); |
| 212 } | 212 } |
| 213 | 213 |
| 214 function finish() { | 214 function finish() { |
| 215 shouldBe('mutations.length', '2'); | 215 shouldBe('mutations.length', '2'); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 232 var observerWithOldValue; | 232 var observerWithOldValue; |
| 233 var observer; | 233 var observer; |
| 234 | 234 |
| 235 function start() { | 235 function start() { |
| 236 debug('Testing that oldValue is delivered as requested (or not).'); | 236 debug('Testing that oldValue is delivered as requested (or not).'); |
| 237 mutations = null; | 237 mutations = null; |
| 238 mutationsWithOldValue = null; | 238 mutationsWithOldValue = null; |
| 239 div = document.createElement('div'); | 239 div = document.createElement('div'); |
| 240 div.textContent = 'foo'; | 240 div.textContent = 'foo'; |
| 241 charDataNode = div.firstChild; | 241 charDataNode = div.firstChild; |
| 242 observerWithOldValue = new WebKitMutationObserver(function(mutations) { | 242 observerWithOldValue = new MutationObserver(function(mutations) { |
| 243 window.mutationsWithOldValue = mutations; | 243 window.mutationsWithOldValue = mutations; |
| 244 }); | 244 }); |
| 245 observer = new WebKitMutationObserver(function(mutations) { | 245 observer = new MutationObserver(function(mutations) { |
| 246 window.mutations = mutations; | 246 window.mutations = mutations; |
| 247 }); | 247 }); |
| 248 observerWithOldValue.observe(charDataNode, {characterData: true, charact
erDataOldValue: true}); | 248 observerWithOldValue.observe(charDataNode, {characterData: true, charact
erDataOldValue: true}); |
| 249 observer.observe(charDataNode, {characterData: true}); | 249 observer.observe(charDataNode, {characterData: true}); |
| 250 charDataNode.textContent = 'bar'; | 250 charDataNode.textContent = 'bar'; |
| 251 setTimeout(finish, 0); | 251 setTimeout(finish, 0); |
| 252 } | 252 } |
| 253 | 253 |
| 254 function finish() { | 254 function finish() { |
| 255 shouldBe('mutationsWithOldValue.length', '1'); | 255 shouldBe('mutationsWithOldValue.length', '1'); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 270 function testOldValueUnionMultipleObservations() { | 270 function testOldValueUnionMultipleObservations() { |
| 271 var div; | 271 var div; |
| 272 var observer; | 272 var observer; |
| 273 | 273 |
| 274 function start() { | 274 function start() { |
| 275 debug('An observer with multiple observations will get characterDataOldV
alue if any entries request it.'); | 275 debug('An observer with multiple observations will get characterDataOldV
alue if any entries request it.'); |
| 276 mutations = null; | 276 mutations = null; |
| 277 div = document.createElement('div'); | 277 div = document.createElement('div'); |
| 278 div.textContent = 'foo'; | 278 div.textContent = 'foo'; |
| 279 charDataNode = div.firstChild; | 279 charDataNode = div.firstChild; |
| 280 observer = new WebKitMutationObserver(function(mutations) { | 280 observer = new MutationObserver(function(mutations) { |
| 281 window.mutations = mutations; | 281 window.mutations = mutations; |
| 282 }); | 282 }); |
| 283 observer.observe(div, {characterData: true, characterDataOldValue: true,
subtree: true}); | 283 observer.observe(div, {characterData: true, characterDataOldValue: true,
subtree: true}); |
| 284 observer.observe(charDataNode, {characterData: true}); | 284 observer.observe(charDataNode, {characterData: true}); |
| 285 charDataNode.textContent = 'bar'; | 285 charDataNode.textContent = 'bar'; |
| 286 setTimeout(finish, 0); | 286 setTimeout(finish, 0); |
| 287 } | 287 } |
| 288 | 288 |
| 289 function finish() { | 289 function finish() { |
| 290 shouldBe('mutations.length', '1'); | 290 shouldBe('mutations.length', '1'); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 316 finishJSTest(); | 316 finishJSTest(); |
| 317 } | 317 } |
| 318 | 318 |
| 319 description('Test WebKitMutationObserver.observe on CharacterData nodes'); | 319 description('Test WebKitMutationObserver.observe on CharacterData nodes'); |
| 320 | 320 |
| 321 runNextTest(); | 321 runNextTest(); |
| 322 </script> | 322 </script> |
| 323 <script src="../../js/resources/js-test-post.js"></script> | 323 <script src="../../js/resources/js-test-post.js"></script> |
| 324 </body> | 324 </body> |
| 325 </html> | 325 </html> |
| OLD | NEW |