| 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 <title></title> | 6 <title></title> |
| 7 </head> | 7 </head> |
| 8 <body> | 8 <body> |
| 9 <p id=description></p> | 9 <p id=description></p> |
| 10 <div id="console"></div> | 10 <div id="console"></div> |
| 11 <script> | 11 <script> |
| 12 | 12 |
| 13 window.jsTestIsAsync = true; | 13 window.jsTestIsAsync = true; |
| 14 var mutations, mutations2; | 14 var mutations, mutations2; |
| 15 var calls; | 15 var calls; |
| 16 var div, removedDiv1, removedDiv2, addedDiv1, addedDiv2, addedDiv3; | 16 var div, removedDiv1, removedDiv2, addedDiv1, addedDiv2, addedDiv3; |
| 17 | 17 |
| 18 function testBasic() { | 18 function testBasic() { |
| 19 var div; | 19 var div; |
| 20 var observer; | 20 var observer; |
| 21 | 21 |
| 22 function start() { | 22 function start() { |
| 23 debug('Testing basic aspects of childList observation.'); | 23 debug('Testing basic aspects of childList observation.'); |
| 24 | 24 |
| 25 mutations = null; | 25 mutations = null; |
| 26 div = document.createElement('div'); | 26 div = document.createElement('div'); |
| 27 observer = new WebKitMutationObserver(function(m) { | 27 observer = new MutationObserver(function(m) { |
| 28 mutations = m; | 28 mutations = m; |
| 29 }); | 29 }); |
| 30 | 30 |
| 31 observer.observe(div, { childList: true }); | 31 observer.observe(div, { childList: true }); |
| 32 removedDiv1 = div.appendChild(document.createElement('div')); | 32 removedDiv1 = div.appendChild(document.createElement('div')); |
| 33 setTimeout(checkDisconnectAndMutate, 0); | 33 setTimeout(checkDisconnectAndMutate, 0); |
| 34 } | 34 } |
| 35 | 35 |
| 36 function checkDisconnectAndMutate() { | 36 function checkDisconnectAndMutate() { |
| 37 debug('...can childList changes be observed at all'); | 37 debug('...can childList changes be observed at all'); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 | 77 |
| 78 function testWrongType() { | 78 function testWrongType() { |
| 79 var div; | 79 var div; |
| 80 var observer; | 80 var observer; |
| 81 | 81 |
| 82 function start() { | 82 function start() { |
| 83 debug('Testing that observing without specifying "childList" does not re
sult in hearing about childList changes.'); | 83 debug('Testing that observing without specifying "childList" does not re
sult in hearing about childList changes.'); |
| 84 | 84 |
| 85 mutations = null; | 85 mutations = null; |
| 86 div = document.createElement('div'); | 86 div = document.createElement('div'); |
| 87 observer = new WebKitMutationObserver(function(m) { | 87 observer = new MutationObserver(function(m) { |
| 88 mutations = m; | 88 mutations = m; |
| 89 }); | 89 }); |
| 90 | 90 |
| 91 observer.observe(div, { attributes: true, characterData: true }); | 91 observer.observe(div, { attributes: true, characterData: true }); |
| 92 div.appendChild(document.createElement('div')); | 92 div.appendChild(document.createElement('div')); |
| 93 setTimeout(finish, 0); | 93 setTimeout(finish, 0); |
| 94 } | 94 } |
| 95 | 95 |
| 96 function finish() { | 96 function finish() { |
| 97 shouldBe('mutations', 'null'); | 97 shouldBe('mutations', 'null'); |
| 98 observer.disconnect(); | 98 observer.disconnect(); |
| 99 debug(''); | 99 debug(''); |
| 100 runNextTest(); | 100 runNextTest(); |
| 101 } | 101 } |
| 102 | 102 |
| 103 start(); | 103 start(); |
| 104 } | 104 } |
| 105 | 105 |
| 106 function testMultipleRegistration() { | 106 function testMultipleRegistration() { |
| 107 var div; | 107 var div; |
| 108 var observer; | 108 var observer; |
| 109 | 109 |
| 110 function start() { | 110 function start() { |
| 111 debug('Testing that re-observing the same node with the same observer ha
s the effect of resetting the options.'); | 111 debug('Testing that re-observing the same node with the same observer ha
s the effect of resetting the options.'); |
| 112 | 112 |
| 113 calls = 0; | 113 calls = 0; |
| 114 mutations = null; | 114 mutations = null; |
| 115 div = document.createElement('div'); | 115 div = document.createElement('div'); |
| 116 observer = new WebKitMutationObserver(function(m) { | 116 observer = new MutationObserver(function(m) { |
| 117 mutations = m; | 117 mutations = m; |
| 118 calls++; | 118 calls++; |
| 119 }); | 119 }); |
| 120 | 120 |
| 121 observer.observe(div, { childList: true, characterData: true }); | 121 observer.observe(div, { childList: true, characterData: true }); |
| 122 observer.observe(div, { childList: true }); | 122 observer.observe(div, { childList: true }); |
| 123 div.appendChild(document.createElement('div')); | 123 div.appendChild(document.createElement('div')); |
| 124 setTimeout(checkDisconnectAndMutate, 0); | 124 setTimeout(checkDisconnectAndMutate, 0); |
| 125 } | 125 } |
| 126 | 126 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 147 | 147 |
| 148 function testMultipleObservers() { | 148 function testMultipleObservers() { |
| 149 var div; | 149 var div; |
| 150 var observer; | 150 var observer; |
| 151 var observer2; | 151 var observer2; |
| 152 | 152 |
| 153 function start() { | 153 function start() { |
| 154 debug('Testing that multiple observers can be registered to a given node
and both receive mutations.'); | 154 debug('Testing that multiple observers can be registered to a given node
and both receive mutations.'); |
| 155 mutations = null; | 155 mutations = null; |
| 156 div = document.createElement('div'); | 156 div = document.createElement('div'); |
| 157 observer = new WebKitMutationObserver(function(m) { | 157 observer = new MutationObserver(function(m) { |
| 158 mutations = m; | 158 mutations = m; |
| 159 }); | 159 }); |
| 160 observer2 = new WebKitMutationObserver(function(m) { | 160 observer2 = new MutationObserver(function(m) { |
| 161 mutations2 = m; | 161 mutations2 = m; |
| 162 }); | 162 }); |
| 163 observer.observe(div, { childList: true }); | 163 observer.observe(div, { childList: true }); |
| 164 observer2.observe(div, { childList: true }); | 164 observer2.observe(div, { childList: true }); |
| 165 div.appendChild(document.createElement('div')); | 165 div.appendChild(document.createElement('div')); |
| 166 setTimeout(finish, 0); | 166 setTimeout(finish, 0); |
| 167 } | 167 } |
| 168 | 168 |
| 169 function finish() { | 169 function finish() { |
| 170 shouldBe('mutations.length', '1'); | 170 shouldBe('mutations.length', '1'); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 185 var observer; | 185 var observer; |
| 186 | 186 |
| 187 function start() { | 187 function start() { |
| 188 debug('Testing that innerText and innerHTML always result in a single ch
ildList mutation.'); | 188 debug('Testing that innerText and innerHTML always result in a single ch
ildList mutation.'); |
| 189 | 189 |
| 190 mutations = null; | 190 mutations = null; |
| 191 div = document.createElement('div'); | 191 div = document.createElement('div'); |
| 192 div.innerHTML = '<span>Foo</span><div>Bar</div>'; | 192 div.innerHTML = '<span>Foo</span><div>Bar</div>'; |
| 193 removedDiv1 = div.firstChild; | 193 removedDiv1 = div.firstChild; |
| 194 removedDiv2 = removedDiv1.nextSibling; | 194 removedDiv2 = removedDiv1.nextSibling; |
| 195 observer = new WebKitMutationObserver(function(m) { | 195 observer = new MutationObserver(function(m) { |
| 196 mutations = m; | 196 mutations = m; |
| 197 }); | 197 }); |
| 198 | 198 |
| 199 observer.observe(div, { childList: true }); | 199 observer.observe(div, { childList: true }); |
| 200 div.innerHTML = 'foo<img src="bar.png"><p>Baz</p>'; | 200 div.innerHTML = 'foo<img src="bar.png"><p>Baz</p>'; |
| 201 addedDiv1 = div.childNodes[0]; | 201 addedDiv1 = div.childNodes[0]; |
| 202 addedDiv2 = div.childNodes[1]; | 202 addedDiv2 = div.childNodes[1]; |
| 203 addedDiv3 = div.childNodes[2]; | 203 addedDiv3 = div.childNodes[2]; |
| 204 setTimeout(checkInnerHTML, 0); | 204 setTimeout(checkInnerHTML, 0); |
| 205 } | 205 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 var fragment; | 243 var fragment; |
| 244 | 244 |
| 245 function start() { | 245 function start() { |
| 246 debug('Testing that replaceChild results in minimal childList mutations.
'); | 246 debug('Testing that replaceChild results in minimal childList mutations.
'); |
| 247 | 247 |
| 248 mutations = null; | 248 mutations = null; |
| 249 div = document.createElement('div'); | 249 div = document.createElement('div'); |
| 250 div.innerHTML = '<span>Foo</span><div>Bar</div>'; | 250 div.innerHTML = '<span>Foo</span><div>Bar</div>'; |
| 251 removedDiv1 = div.firstChild; | 251 removedDiv1 = div.firstChild; |
| 252 | 252 |
| 253 observer = new WebKitMutationObserver(function(m) { | 253 observer = new MutationObserver(function(m) { |
| 254 mutations = m; | 254 mutations = m; |
| 255 }); | 255 }); |
| 256 | 256 |
| 257 observer.observe(div, { childList: true }); | 257 observer.observe(div, { childList: true }); |
| 258 addedDiv1 = document.createElement('div'); | 258 addedDiv1 = document.createElement('div'); |
| 259 div.replaceChild(addedDiv1, div.firstChild); | 259 div.replaceChild(addedDiv1, div.firstChild); |
| 260 setTimeout(checkReplaceWithNode, 0); | 260 setTimeout(checkReplaceWithNode, 0); |
| 261 } | 261 } |
| 262 | 262 |
| 263 function checkReplaceWithNode() { | 263 function checkReplaceWithNode() { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 function start() { | 308 function start() { |
| 309 debug('Testing that insertBefore results in minimal childList mutations.
'); | 309 debug('Testing that insertBefore results in minimal childList mutations.
'); |
| 310 | 310 |
| 311 mutations = null; | 311 mutations = null; |
| 312 div = document.createElement('div'); | 312 div = document.createElement('div'); |
| 313 div.innerHTML = '<span>Foo</span>'; | 313 div.innerHTML = '<span>Foo</span>'; |
| 314 fragment = document.createDocumentFragment(); | 314 fragment = document.createDocumentFragment(); |
| 315 addedDiv1 = fragment.appendChild(document.createElement('div')); | 315 addedDiv1 = fragment.appendChild(document.createElement('div')); |
| 316 addedDiv2 = fragment.appendChild(document.createElement('div')); | 316 addedDiv2 = fragment.appendChild(document.createElement('div')); |
| 317 | 317 |
| 318 observer = new WebKitMutationObserver(function(m) { | 318 observer = new MutationObserver(function(m) { |
| 319 mutations = m; | 319 mutations = m; |
| 320 }); | 320 }); |
| 321 | 321 |
| 322 observer.observe(div, { childList: true }); | 322 observer.observe(div, { childList: true }); |
| 323 div.insertBefore(fragment, div.firstChild); | 323 div.insertBefore(fragment, div.firstChild); |
| 324 setTimeout(finish, 0); | 324 setTimeout(finish, 0); |
| 325 } | 325 } |
| 326 | 326 |
| 327 | 327 |
| 328 function finish() { | 328 function finish() { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 349 function start() { | 349 function start() { |
| 350 debug('Testing that appendChild results in minimal childList mutations.'
); | 350 debug('Testing that appendChild results in minimal childList mutations.'
); |
| 351 | 351 |
| 352 mutations = null; | 352 mutations = null; |
| 353 div = document.createElement('div'); | 353 div = document.createElement('div'); |
| 354 div.innerHTML = '<span>Foo</span>'; | 354 div.innerHTML = '<span>Foo</span>'; |
| 355 fragment = document.createDocumentFragment(); | 355 fragment = document.createDocumentFragment(); |
| 356 addedDiv1 = fragment.appendChild(document.createElement('div')); | 356 addedDiv1 = fragment.appendChild(document.createElement('div')); |
| 357 addedDiv2 = fragment.appendChild(document.createElement('div')); | 357 addedDiv2 = fragment.appendChild(document.createElement('div')); |
| 358 | 358 |
| 359 observer = new WebKitMutationObserver(function(m) { | 359 observer = new MutationObserver(function(m) { |
| 360 mutations = m; | 360 mutations = m; |
| 361 }); | 361 }); |
| 362 | 362 |
| 363 observer.observe(div, { childList: true }); | 363 observer.observe(div, { childList: true }); |
| 364 div.appendChild(fragment); | 364 div.appendChild(fragment); |
| 365 setTimeout(finish, 0); | 365 setTimeout(finish, 0); |
| 366 } | 366 } |
| 367 | 367 |
| 368 function finish() { | 368 function finish() { |
| 369 shouldBe('mutations.length', '1'); | 369 shouldBe('mutations.length', '1'); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 380 | 380 |
| 381 start(); | 381 start(); |
| 382 } | 382 } |
| 383 | 383 |
| 384 function testInnerHTMLEmpty() { | 384 function testInnerHTMLEmpty() { |
| 385 function start() { | 385 function start() { |
| 386 debug('Setting an empty childlist to the empty string with innerHTML sho
uld not assert.'); | 386 debug('Setting an empty childlist to the empty string with innerHTML sho
uld not assert.'); |
| 387 | 387 |
| 388 var div = document.createElement('div'); | 388 var div = document.createElement('div'); |
| 389 mutations = null; | 389 mutations = null; |
| 390 observer = new WebKitMutationObserver(function(mutations) { | 390 observer = new MutationObserver(function(mutations) { |
| 391 window.mutations = mutations; | 391 window.mutations = mutations; |
| 392 }); | 392 }); |
| 393 observer.observe(div, {childList: true}); | 393 observer.observe(div, {childList: true}); |
| 394 div.innerHTML = ''; | 394 div.innerHTML = ''; |
| 395 setTimeout(finish, 0); | 395 setTimeout(finish, 0); |
| 396 } | 396 } |
| 397 | 397 |
| 398 function finish() { | 398 function finish() { |
| 399 shouldBeNull('mutations'); | 399 shouldBeNull('mutations'); |
| 400 debug(''); | 400 debug(''); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 414 finishJSTest(); | 414 finishJSTest(); |
| 415 } | 415 } |
| 416 | 416 |
| 417 description('Test WebKitMutationObserver.observe on attributes.'); | 417 description('Test WebKitMutationObserver.observe on attributes.'); |
| 418 | 418 |
| 419 runNextTest(); | 419 runNextTest(); |
| 420 </script> | 420 </script> |
| 421 <script src="../../js/resources/js-test-post.js"></script> | 421 <script src="../../js/resources/js-test-post.js"></script> |
| 422 </body> | 422 </body> |
| 423 </html> | 423 </html> |
| OLD | NEW |