mirror of
https://github.com/servo/servo.git
synced 2025-09-13 00:18:22 +01:00
Update web-platform-tests to revision 58eb04cecbbec2e18531ab440225e38944a9c444
This commit is contained in:
parent
25e8bf69e6
commit
665817d2a6
35333 changed files with 1818077 additions and 16036 deletions
|
@ -4,6 +4,10 @@
|
|||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="container"></div>
|
||||
<script>
|
||||
// As of March 2017, WebKit and Blink have inconsistent results depending on
|
||||
// rendered or not. setupTest() tests a rendered case, and setupTestDetached()
|
||||
// tests a not-rendered case.
|
||||
|
||||
function setupTest(context, plain) {
|
||||
// context is either a string or an element node
|
||||
if (typeof context === "string") {
|
||||
|
@ -16,27 +20,68 @@ function setupTest(context, plain) {
|
|||
while (e && e.nodeType != Node.ELEMENT_NODE) {
|
||||
e = e.nextSibling;
|
||||
}
|
||||
e.offsetWidth;
|
||||
var oldChild = e.firstChild;
|
||||
e.innerText = plain;
|
||||
return [e, oldChild];
|
||||
}
|
||||
|
||||
function setupTestDetached(context, plain) {
|
||||
var detachedContainer = document.createElement("div");
|
||||
// context is either a string or an element node
|
||||
if (typeof context === "string") {
|
||||
detachedContainer.innerHTML = context;
|
||||
} else {
|
||||
detachedContainer.innerHTML = "";
|
||||
detachedContainer.appendChild(context);
|
||||
}
|
||||
var e = detachedContainer.firstChild;
|
||||
while (e && e.nodeType != Node.ELEMENT_NODE) {
|
||||
e = e.nextSibling;
|
||||
}
|
||||
var oldChild = e.firstChild;
|
||||
e.innerText = plain;
|
||||
return [e, oldChild];
|
||||
}
|
||||
|
||||
function assertNewSingleTextNode(newChild, expectedText, oldChild) {
|
||||
assert_not_equals(newChild, null, "Should have a child");
|
||||
assert_equals(newChild.nodeType, Node.TEXT_NODE, "Child should be a text node");
|
||||
assert_equals(newChild.nextSibling, null, "Should have only one child");
|
||||
assert_equals(newChild.data, expectedText);
|
||||
assert_not_equals(newChild, oldChild, "Child should be a *new* text node");
|
||||
}
|
||||
|
||||
function assertNoEmptyTextChild(parent) {
|
||||
for (var child = parent.firstChild; child; child = child.nextSibling) {
|
||||
if (child.nodeType === Node.TEXT_NODE) {
|
||||
assert_not_equals(child.data, "", "Should not have empty text nodes");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function testText(context, plain, expectedText, msg) {
|
||||
test(function(){
|
||||
var arr = setupTest(context, plain);
|
||||
var e = arr[0];
|
||||
var oldChild = arr[1];
|
||||
assert_not_equals(e.firstChild, null, "Should have a child");
|
||||
assert_equals(e.firstChild.nodeType, Node.TEXT_NODE, "Child should be a text node");
|
||||
assert_equals(e.firstChild.nextSibling, null, "Should have only one child");
|
||||
assert_equals(e.firstChild.data, expectedText);
|
||||
assert_not_equals(e.firstChild, oldChild, "Child should be a *new* text node");
|
||||
assertNewSingleTextNode(arr[0].firstChild, expectedText, arr[1]);
|
||||
}, msg);
|
||||
test(function() {
|
||||
var arr = setupTestDetached(context, plain);
|
||||
assertNewSingleTextNode(arr[0].firstChild, expectedText, arr[1]);
|
||||
}, msg + ", detached");
|
||||
}
|
||||
|
||||
function testHTML(context, plain, expectedHTML, msg) {
|
||||
test(function(){
|
||||
var e = setupTest(context, plain)[0];
|
||||
assert_equals(e.innerHTML, expectedHTML);
|
||||
assertNoEmptyTextChild(e);
|
||||
}, msg);
|
||||
test(function() {
|
||||
var e = setupTestDetached(context, plain)[0];
|
||||
assert_equals(e.innerHTML, expectedHTML);
|
||||
assertNoEmptyTextChild(e);
|
||||
}, msg + ", detached");
|
||||
}
|
||||
</script>
|
||||
<script src="setter-tests.js"></script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue