mirror of
https://github.com/servo/servo.git
synced 2025-06-24 00:54:32 +01:00
215 lines
8.8 KiB
HTML
215 lines
8.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<meta charset=utf-8>
|
|
<title>MutationObservers: characterData mutations</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="mutationobservers.js"></script>
|
|
<h1>MutationObservers: characterData mutations</h1>
|
|
<div id="log"></div>
|
|
|
|
<section style="display: none">
|
|
|
|
<p id='n'>text content</p>
|
|
|
|
<p id='n00'>text content</p>
|
|
|
|
<p id='n10'>CHAN</p>
|
|
<p id='n11'>CHANGED</p>
|
|
<p id='n12'>CHANGED</p>
|
|
|
|
<p id='n20'>CHGED</p>
|
|
<p id='n21'>CHANGED</p>
|
|
<p id='n22'>CHANGED</p>
|
|
|
|
<p id='n30'>CCCHANGED</p>
|
|
<p id='n31'>CHANGED</p>
|
|
|
|
<p id='n40'>CCCHANGED</p>
|
|
<p id='n41'>CHANGED</p>
|
|
|
|
<p id="n50"><?processing data?></p>
|
|
|
|
<p id="n60"><!-- data --></p>
|
|
|
|
<p id='n70'>CHANN</p>
|
|
<p id='n71'>CHANN</p>
|
|
|
|
<p id='n80'>CHANN</p>
|
|
<p id='n81'>CHANN</p>
|
|
|
|
<p id='n90'>CHANN</p>
|
|
|
|
</section>
|
|
|
|
<script>
|
|
var n = document.getElementById('n').firstChild;
|
|
runMutationTest(n,
|
|
{"characterData":true},
|
|
[{type: "characterData"}],
|
|
function() { n.data = "NEW VALUE"; },
|
|
"characterData Text.data: simple mutation without oldValue");
|
|
|
|
var n00 = document.getElementById('n00').firstChild;
|
|
runMutationTest(n00,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "text content" }],
|
|
function() { n00.data = "CHANGED"; },
|
|
"characterData Text.data: simple mutation");
|
|
|
|
var n10 = document.getElementById('n10').firstChild;
|
|
runMutationTest(n10,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHAN" }],
|
|
function() { n10.appendData("GED"); },
|
|
"characterData Text.appendData: simple mutation");
|
|
|
|
var n11 = document.getElementById('n11').firstChild;
|
|
runMutationTest(n11,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANGED" }],
|
|
function() { n11.appendData(""); },
|
|
"characterData Text.appendData: empty string mutation");
|
|
|
|
var n12 = document.getElementById('n12').firstChild;
|
|
runMutationTest(n12,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANGED" }],
|
|
function() { n12.appendData(null); },
|
|
"characterData Text.appendData: null string mutation");
|
|
|
|
var n20 = document.getElementById('n20').firstChild;
|
|
runMutationTest(n20,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHGED" }],
|
|
function() { n20.insertData(2, "AN"); },
|
|
"characterData Text.insertData: simple mutation");
|
|
|
|
var n21 = document.getElementById('n21').firstChild;
|
|
runMutationTest(n21,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANGED" }],
|
|
function() { n21.insertData(2, ""); },
|
|
"characterData Text.insertData: empty string mutation");
|
|
|
|
var n22 = document.getElementById('n22').firstChild;
|
|
runMutationTest(n22,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANGED" }],
|
|
function() { n22.insertData(2, null); },
|
|
"characterData Text.insertData: null string mutation");
|
|
|
|
var n30 = document.getElementById('n30').firstChild;
|
|
runMutationTest(n30,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CCCHANGED" }],
|
|
function() { n30.deleteData(0, 2); },
|
|
"characterData Text.deleteData: simple mutation");
|
|
|
|
var n31 = document.getElementById('n31').firstChild;
|
|
runMutationTest(n31,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANGED" }, {type: "characterData", oldValue: "CHANGED" }],
|
|
function() { n31.deleteData(0, 0); n31.data = "n31"; },
|
|
"characterData Text.deleteData: empty mutation");
|
|
|
|
var n40 = document.getElementById('n40').firstChild;
|
|
runMutationTest(n40,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CCCHANGED" }],
|
|
function() { n40.replaceData(0, 2, "CH"); },
|
|
"characterData Text.replaceData: simple mutation");
|
|
|
|
var n41 = document.getElementById('n41').firstChild;
|
|
runMutationTest(n41,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANGED" }],
|
|
function() { n41.replaceData(0, 0, "CH"); },
|
|
"characterData Text.replaceData: empty mutation");
|
|
|
|
var n50 = document.getElementById('n50').firstChild;
|
|
runMutationTest(n50,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "?processing data?" },{type: "characterData", oldValue: "CHANGED" },{type: "characterData", oldValue: "CHANGED" }],
|
|
function() {
|
|
n50.data = "CHANGED";
|
|
n50.deleteData(0, 0);
|
|
n50.replaceData(0, 2, "CH"); },
|
|
"characterData ProcessingInstruction: data mutations");
|
|
|
|
var n60 = document.getElementById('n60').firstChild;
|
|
runMutationTest(n60,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: " data " },{type: "characterData", oldValue: "CHANGED" },{type: "characterData", oldValue: "CHANGED" }],
|
|
function() {
|
|
n60.data = "CHANGED";
|
|
n60.deleteData(0, 0);
|
|
n60.replaceData(0, 2, "CH"); },
|
|
"characterData Comment: data mutations");
|
|
|
|
var n70 = document.getElementById('n70');
|
|
var r70 = null;
|
|
test(function () {
|
|
n70.appendChild(document.createTextNode("NNN"));
|
|
n70.appendChild(document.createTextNode("NGED"));
|
|
r70 = document.createRange();
|
|
r70.setStart(n70.firstChild, 4);
|
|
r70.setEnd(n70.lastChild, 1);
|
|
}, "Range (r70) is created");
|
|
runMutationTest(n70.firstChild,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANN" }],
|
|
function() { r70.deleteContents(); },
|
|
"characterData Range.deleteContents: child and data removal mutation");
|
|
|
|
var n71 = document.getElementById('n71');
|
|
var r71 = null;
|
|
test(function () {
|
|
n71.appendChild(document.createTextNode("NNN"));
|
|
n71.appendChild(document.createTextNode("NGED"));
|
|
r71 = document.createRange();
|
|
r71.setStart(n71.firstChild, 4);
|
|
r71.setEnd(n71.lastChild, 1);
|
|
}, "Range (r71) is created");
|
|
runMutationTest(n71.lastChild,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "NGED"}],
|
|
function() { r71.deleteContents(); },
|
|
"characterData Range.deleteContents: child and data removal mutation (2)");
|
|
|
|
var n80 = document.getElementById('n80');
|
|
var r80 = null;
|
|
test(function () {
|
|
n80.appendChild(document.createTextNode("NNN"));
|
|
n80.appendChild(document.createTextNode("NGED"));
|
|
r80 = document.createRange();
|
|
r80.setStart(n80.firstChild, 4);
|
|
r80.setEnd(n80.lastChild, 1);
|
|
}, "Range (r80) is created");
|
|
runMutationTest(n80.firstChild,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANN" }],
|
|
function() { r80.extractContents(); },
|
|
"characterData Range.extractContents: child and data removal mutation");
|
|
|
|
var n81 = document.getElementById('n81');
|
|
var r81 = null;
|
|
test(function () {
|
|
n81.appendChild(document.createTextNode("NNN"));
|
|
n81.appendChild(document.createTextNode("NGED"));
|
|
r81 = document.createRange();
|
|
r81.setStart(n81.firstChild, 4);
|
|
r81.setEnd(n81.lastChild, 1);
|
|
}, "Range (r81) is created");
|
|
runMutationTest(n81.lastChild,
|
|
{"characterData":true,"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "NGED" }],
|
|
function() { r81.extractContents(); },
|
|
"characterData Range.extractContents: child and data removal mutation (2)");
|
|
|
|
var n90 = document.getElementById('n90').firstChild;
|
|
runMutationTest(n90,
|
|
{"characterDataOldValue":true},
|
|
[{type: "characterData", oldValue: "CHANN" }],
|
|
function() { n90.data = "CHANGED"; },
|
|
"characterData/characterDataOldValue alone Text.data: simple mutation");
|
|
</script>
|