Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /dom/nodes/MutationObserver-takeRecords.html - WPT Dashboard Interop Dashboard
<!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>