OLD | NEW |
| (Empty) |
1 <html> | |
2 <link rel="import" href="../resources/mocha.html" /> | |
3 <link rel="import" href="../resources/chai.html" /> | |
4 <script> | |
5 describe('DocumentFragments should remove all children of the fragment before mo
ving children, ', function() { | |
6 var mutations; | |
7 var observer; | |
8 | |
9 beforeEach(function() { | |
10 mutations = null; | |
11 observer = new MutationObserver(function(records) { | |
12 mutations = records; | |
13 }); | |
14 }); | |
15 | |
16 function createObservedFragment() { | |
17 var fragment = document.createDocumentFragment(); | |
18 fragment.appendChild(document.createElement('b')); | |
19 fragment.appendChild(document.createElement('i')); | |
20 observer.observe(fragment, {childList: true}); | |
21 return fragment; | |
22 } | |
23 | |
24 it('using appendChild', function(done) { | |
25 var div = document.createElement('div'); | |
26 observer.observe(div, {childList: true}); | |
27 div.appendChild(createObservedFragment()); | |
28 setTimeout(function() { | |
29 assert.equal(mutations.length, 2); | |
30 assert.equal(mutations[0].addedNodes.length, 0); | |
31 assert.equal(mutations[0].removedNodes.length, 2); | |
32 assert.equal(mutations[1].addedNodes.length, 2); | |
33 assert.equal(mutations[1].removedNodes.length, 0); | |
34 done(); | |
35 }, 0); | |
36 }); | |
37 | |
38 it('using insertBefore', function(done) { | |
39 var div = document.createElement('div'); | |
40 div.appendChild(document.createElement('span')); | |
41 observer.observe(div, {childList: true}); | |
42 div.insertBefore(createObservedFragment(), div.firstChild); | |
43 setTimeout(function() { | |
44 assert.equal(mutations.length, 2); | |
45 assert.equal(mutations[0].addedNodes.length, 0); | |
46 assert.equal(mutations[0].removedNodes.length, 2); | |
47 assert.equal(mutations[1].addedNodes.length, 2); | |
48 assert.equal(mutations[1].removedNodes.length, 0); | |
49 done(); | |
50 }, 0); | |
51 }); | |
52 | |
53 it('using replaceChild', function(done) { | |
54 var div = document.createElement('div'); | |
55 div.appendChild(document.createElement('span')); | |
56 observer.observe(div, {childList: true}); | |
57 div.replaceChild(createObservedFragment(), div.firstChild); | |
58 setTimeout(function() { | |
59 assert.equal(mutations.length, 2); | |
60 assert.equal(mutations[0].addedNodes.length, 0); | |
61 assert.equal(mutations[0].removedNodes.length, 2); | |
62 assert.equal(mutations[1].addedNodes.length, 2); | |
63 assert.equal(mutations[1].removedNodes.length, 1); | |
64 done(); | |
65 }, 0); | |
66 }); | |
67 }); | |
68 </script> | |
69 </html> | |
OLD | NEW |