blob: e6ee30c19998094c4e9570d4ec421fe4b30eb5ca [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<p>This tests observing the character data change by the HTML parser.</p>
<pre id="log"></pre>
<div id="parent"><script>
if (window.testRunner)
testRunner.dumpAsText();
const log = document.getElementById('log');
document.write('a');
let observer = new MutationObserver((mutations) => {
let result = 'PASS';
if (mutations.length != 1)
result = `FAIL - expected 1 mutation record but got ${mutations.length}`;
else if (mutations[0].type != 'characterData')
result = `FAIL - expected characterData mutation record but got ${mutations[0].type}`;
else if (mutations[0].oldValue != 'a')
result = `FAIL - expected oldValue to be "a" but got "${mutations[0].oldValue}"`;
log.textContent = result;
});
observer.observe(document.getElementById('parent'), {childList: true, subtree: true, characterData: true, characterDataOldValue: true});
document.write('b');
function fail() {
if (!log.textContent)
log.textContent = 'FAIL - did not receive a mutation record in time';
}
Promise.resolve().then(fail);
window.onload = () => fail;
</script></div>
</body>
</html>