content/base/test/mutationobserver_dialog.html

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:f6c21d420537
1 <html>
2 <head>
3 <title></title>
4 <script>
5
6 var div = document.createElement("div");
7
8 var M;
9 if ("MozMutationObserver" in window) {
10 M = window.MozMutationObserver;
11 } else if ("WebKitMutationObserver" in window) {
12 M = window.WebKitMutationObserver;
13 } else {
14 M = window.MutationObserver;
15 }
16
17 var didCall1 = false;
18 var didCall2 = false;
19 function testMutationObserverInDialog() {
20 div.innerHTML = "<span>1</span><span>2</span>";
21 m = new M(function(records, observer) {
22 opener.is(records[0].type, "childList", "Should have got childList");
23 opener.is(records[0].removedNodes.length, 2, "Should have got removedNodes");
24 opener.is(records[0].addedNodes.length, 1, "Should have got addedNodes");
25 observer.disconnect();
26 m = null;
27 didCall1 = true;
28 });
29 m.observe(div, { childList: true });
30 div.innerHTML = "<span><span>foo</span></span>";
31 }
32
33 function testMutationObserverInDialog2() {
34 div.innerHTML = "<span>1</span><span>2</span>";
35 m = new M(function(records, observer) {
36 opener.is(records[0].type, "childList", "Should have got childList");
37 opener.is(records[0].removedNodes.length, 2, "Should have got removedNodes");
38 opener.is(records[0].addedNodes.length, 1, "Should have got addedNodes");
39 observer.disconnect();
40 m = null;
41 didCall2 = true;
42 });
43 m.observe(div, { childList: true });
44 div.innerHTML = "<span><span>foo</span></span>";
45 }
46
47 window.addEventListener("load", testMutationObserverInDialog);
48 window.addEventListener("load", testMutationObserverInDialog2);
49 window.addEventListener("load",
50 function() {
51 opener.ok(didCall1, "Should have called 1st mutation callback");
52 opener.ok(didCall2, "Should have called 2nd mutation callback");
53 window.close();
54 });
55 </script>
56 <style>
57 </style>
58 </head>
59 <body>
60 <input type="button" onclick="window.close()" value="close">
61 </body>
62 </html>

mercurial