mirror of
https://github.com/servo/servo.git
synced 2025-08-23 06:15:35 +01:00
Update web-platform-tests to revision 0d318188757a9c996e20b82db201fd04de5aa255
This commit is contained in:
parent
b2a5225831
commit
1a81b18b9f
12321 changed files with 544385 additions and 6 deletions
|
@ -0,0 +1,167 @@
|
|||
<!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: document mutations</h1>
|
||||
<div id="log"></div>
|
||||
|
||||
<script id='s001'>
|
||||
var setupTest = async_test("setup test");
|
||||
var insertionTest = async_test("parser insertion mutations");
|
||||
var insertionTest2 = async_test("parser script insertion mutation");
|
||||
var testCounter = 0;
|
||||
|
||||
function masterMO(sequence, obs) {
|
||||
testCounter++;
|
||||
if (testCounter == 1) {
|
||||
insertionTest.step(
|
||||
function () {
|
||||
checkRecords(document, sequence,
|
||||
[{type: "childList",
|
||||
addedNodes: function () {
|
||||
return [ document.getElementById("n00") ];
|
||||
},
|
||||
previousSibling: function () {
|
||||
return document.getElementById("s001");
|
||||
},
|
||||
target: document.body},
|
||||
{type: "childList",
|
||||
addedNodes: function () {
|
||||
return [ document.getElementById("s002") ];
|
||||
},
|
||||
previousSibling: function () {
|
||||
return document.getElementById("n00");
|
||||
},
|
||||
target: document.body},
|
||||
{type: "childList",
|
||||
addedNodes: function () {
|
||||
return [ document.getElementById("s002").firstChild ];
|
||||
},
|
||||
target: function () {
|
||||
return document.getElementById("s002");
|
||||
}}]);
|
||||
});
|
||||
} else if (testCounter == 2) {
|
||||
insertionTest2.step(
|
||||
function () {
|
||||
checkRecords(document, sequence,
|
||||
[{type: "childList",
|
||||
addedNodes: function () {
|
||||
return [ document.getElementById("inserted_element") ];
|
||||
},
|
||||
previousSibling: function () {
|
||||
return document.getElementById("s002");
|
||||
},
|
||||
target: document.body},
|
||||
{type: "childList",
|
||||
addedNodes: function () {
|
||||
return [ document.getElementById("inserted_script") ];
|
||||
},
|
||||
target: function () {
|
||||
return document.getElementById("n00");
|
||||
}}
|
||||
]);
|
||||
});
|
||||
}
|
||||
}
|
||||
var document_observer;
|
||||
var newElement;
|
||||
setupTest.step(function() {
|
||||
document_observer = new MutationObserver(masterMO);
|
||||
newElement = document.createElement("span");
|
||||
document_observer.observe(document, {subtree:true,childList:true});
|
||||
newElement.id = "inserted_element";
|
||||
newElement.setAttribute("style", "display: none");
|
||||
newElement.textContent = "my new span for n00";
|
||||
});
|
||||
</script><p id='n00'></p><script id='s002'>
|
||||
var newScript = document.createElement("script");
|
||||
setupTest.step(function() {
|
||||
newScript.textContent = "document.body.appendChild(newElement);";
|
||||
newScript.id = "inserted_script";
|
||||
document.getElementById("n00").appendChild(newScript);
|
||||
});
|
||||
if (testCounter < 1) {
|
||||
insertionTest.step(
|
||||
function () {
|
||||
assert_unreached("document observer did not trigger");
|
||||
});
|
||||
}
|
||||
</script><script id='s003'>
|
||||
setupTest.step(function() {
|
||||
document_observer.disconnect();
|
||||
});
|
||||
if (testCounter < 2) {
|
||||
insertionTest2.step(
|
||||
function () {
|
||||
assert_unreached("document observer did not trigger");
|
||||
});
|
||||
}
|
||||
insertionTest.done();
|
||||
insertionTest2.done();
|
||||
</script>
|
||||
|
||||
<p id='n012'></p><div id='d01'>
|
||||
<script id='s011'>
|
||||
var removalTest = async_test("removal of parent during parsing");
|
||||
var d01 = document.getElementById("d01");
|
||||
testCounter = 0;
|
||||
|
||||
function removalMO(sequence, obs) {
|
||||
testCounter++;
|
||||
if (testCounter == 1) {
|
||||
removalTest.step(
|
||||
function () {
|
||||
checkRecords(document, sequence,
|
||||
[{type: "childList",
|
||||
removedNodes: function () {
|
||||
return [ d01 ];
|
||||
},
|
||||
previousSibling: function () {
|
||||
return document.getElementById("n012");
|
||||
},
|
||||
target: document.body}]);
|
||||
});
|
||||
} else if (testCounter == 2) {
|
||||
removalTest.step(
|
||||
function () {
|
||||
checkRecords(document, sequence,
|
||||
[{type: "childList",
|
||||
addedNodes: function () {
|
||||
return [ document.getElementById("s012") ];
|
||||
},
|
||||
previousSibling: function () {
|
||||
return document.getElementById("n012");
|
||||
},
|
||||
target: document.body},
|
||||
{type: "childList",
|
||||
addedNodes: function () {
|
||||
return [ document.getElementById("s012").firstChild ];
|
||||
},
|
||||
target: function () {
|
||||
return document.getElementById("s012");
|
||||
}}]);
|
||||
});
|
||||
}
|
||||
}
|
||||
var document2_observer;
|
||||
setupTest.step(function() {
|
||||
document2_observer = new MutationObserver(removalMO);
|
||||
document2_observer.observe(document, {subtree:true,childList:true});
|
||||
d01.parentNode.removeChild(d01);
|
||||
});
|
||||
</script><p id='n01'></p></div><script id='s012'>
|
||||
setupTest.step(function() {
|
||||
document2_observer.disconnect();
|
||||
});
|
||||
if (testCounter < 2) {
|
||||
removalTest.step(
|
||||
function () {
|
||||
assert_unreached("document observer did not trigger");
|
||||
});
|
||||
}
|
||||
removalTest.done();
|
||||
setupTest.done();
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue