summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/dom/nodes/MutationObserver-takeRecords.html
blob: 6a27ef77ecacf55a7eaaae18cdd007e017e42cd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>MutationObservers: takeRecords</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="mutationobservers.js"></script>
<h1>MutationObservers: takeRecords</h1>
<div id="log"></div>

<section style="display: none">

<p id='n00'></p>

</section>

<script>

  var n00 = document.getElementById('n00');

  var unused = async_test("unreachabled test");

  var observer;
  unused.step(function () {
    observer = new MutationObserver(unused.unreached_func("the observer callback should not fire"));
    observer.observe(n00, { "subtree": true,
                          "childList": true,
                          "attributes": true,
                          "characterData": true,
                          "attributeOldValue": true,
                          "characterDataOldValue": true});
    n00.id = "foo";
    n00.id = "bar";
    n00.className = "bar";
    n00.textContent = "old data";
    n00.firstChild.data = "new data";
  });

  test(function() {
    checkRecords(n00, observer.takeRecords(), [{type: "attributes", attributeName: "id", oldValue: "n00"},
                           {type: "attributes", attributeName: "id", oldValue: "foo"},
                           {type: "attributes", attributeName: "class"},
                           {type: "childList", addedNodes: [n00.firstChild]},
                           {type: "characterData", oldValue: "old data", target: n00.firstChild}]);
  }, "All records present");

  test(function() {
    checkRecords(n00, observer.takeRecords(), []);
  }, "No more records present");
</script>
<script>
  unused.done();

</script>