Auto merge of #10915 - Ms2ger:document-body, r=nox

Consolidate tests for Document::body.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10915)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-04-29 01:49:43 -07:00
commit 26be403e3c
5 changed files with 60 additions and 104 deletions

View file

@ -35238,7 +35238,10 @@
"wdspec": []
},
"local_changes": {
"deleted": [],
"deleted": [
"html/dom/documents/dom-tree-accessors/document.body-getter.html",
"html/dom/documents/dom-tree-accessors/document.body-setter-01.html"
],
"deleted_reftests": {},
"items": {
"reftest": {
@ -35254,6 +35257,14 @@
"url": "/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas_without_context_a.html"
}
]
},
"testharness": {
"html/dom/documents/dom-tree-accessors/Document.body.html": [
{
"path": "html/dom/documents/dom-tree-accessors/Document.body.html",
"url": "/html/dom/documents/dom-tree-accessors/Document.body.html"
}
]
}
},
"reftest_nodes": {

View file

@ -6088,12 +6088,6 @@
"url": "/_mozilla/mozilla/document_activeElement.html"
}
],
"mozilla/document_body.html": [
{
"path": "mozilla/document_body.html",
"url": "/_mozilla/mozilla/document_body.html"
}
],
"mozilla/document_characterSet.html": [
{
"path": "mozilla/document_characterSet.html",

View file

@ -1,66 +0,0 @@
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
test(function() {
assert_not_equals(document.body, null, "test1-0, existing document's body");
assert_true(document.body instanceof HTMLBodyElement, "test1-1, exising document's body: should be HTMLBodyElement");
assert_equals(document.body && document.body.tagName, "BODY", "test1-2, existing document's body");
}, "existing document's body");
test(function() {
var new_body = document.createElement("body");
assert_not_equals(new_body, null, "test2-0, replace document's body with new body");
document.body = new_body;
assert_equals(new_body, document.body, "test2-1, replace document's body with new body");
}, "replace document's body with new body");
test(function() {
var new_frameset = document.createElement("frameset");
assert_not_equals(new_frameset, null, "test2-0, replace document's body with new frameset");
document.body = new_frameset;
assert_equals(new_frameset, document.body, "test2-1, replace document's body with new frameset");
}, "replace document's body with new frameset");
test(function() {
var new_document = new Document();
new_document.appendChild(new_document.createElement("html"));
var new_div = new_document.createElement("div");
assert_not_equals(new_div, null, "test4-0, append an invalid element to a new document");
assert_throws(null, function() {
new_document.body = new_div;
});
assert_equals(new_document.body, null, "test4-1, append an invalid element to a new document");
}, "append an invalid element to a new document");
test(function() {
var new_document = document.implementation.createHTMLDocument();
var new_body = new_document.createElement("body");
assert_not_equals(new_body, null, "test5-0, append body to a new document");
assert_true(new_body instanceof HTMLBodyElement, "test5-1, append body to a new document: should be HTMLBodyElement");
assert_equals(new_body && new_body.tagName, "BODY", "test5-2, append body to a new document");
new_document.body = new_body;
assert_equals(new_document.body, new_body, "test5-3, append body to a new document");
}, "append body to a new document");
test(function() {
var new_document = document.implementation.createHTMLDocument();
var new_frameset = new_document.createElement("frameset");
assert_not_equals(new_frameset, null, "test6-0, append frameset to a new document");
assert_true(new_frameset instanceof HTMLFrameSetElement, "test6-1, append frameset to a new document: should be HTMLFrameSetElement");
assert_equals(new_frameset && new_frameset.tagName, "FRAMESET", "test6-2, append frameset to a new document");
new_document.body = new_frameset;
assert_equals(new_document.body, new_frameset, "test6-3, append frameset to a new document");
}, "append frameset to a new document");
</script>
</body>
</html>

View file

@ -118,4 +118,52 @@ test(function() {
doc.appendChild(doc.createElementNS("http://example.org/test", "frameset"));
assert_equals(doc.body, null);
}, "Non-HTML frameset as the root node");
test(function() {
assert_not_equals(document.body, null);
assert_true(document.body instanceof HTMLBodyElement, "should be HTMLBodyElement");
assert_equals(document.body.tagName, "BODY");
}, "existing document's body");
var originalBody = document.body;
test(function() {
assert_throws(new TypeError(), function() {
document.body = "text"
})
assert_equals(document.body, originalBody);
}, "Setting document.body to a string.")
test(function() {
assert_throws("HierarchyRequestError", function() {
document.body = document.createElement("div")
})
assert_equals(document.body, originalBody);
}, "Setting document.body to a div element.")
test(function() {
var doc = createDocument();
assert_throws("HierarchyRequestError", function() {
doc.body = doc.createElement("body")
})
assert_equals(doc.body, null);
}, "Setting document.body when there's no root element.")
test(function() {
var doc = document.implementation.createHTMLDocument();
var new_body = doc.createElement("body");
assert_true(new_body instanceof HTMLBodyElement, "should be HTMLBodyElement");
assert_equals(new_body.tagName, "BODY");
doc.body = new_body;
assert_equals(doc.body, new_body);
}, "Setting document.body to a new body element.");
test(function() {
var doc = document.implementation.createHTMLDocument();
var new_frameset = doc.createElement("frameset");
assert_true(new_frameset instanceof HTMLFrameSetElement, "should be HTMLFrameSetElement");
assert_equals(new_frameset.tagName, "FRAMESET");
doc.body = new_frameset;
assert_equals(doc.body, new_frameset, "test6-3, append frameset to a new document");
}, "Setting document.body to a new frameset element.");
</script>

View file

@ -1,31 +0,0 @@
<!DOCTYPE html>
<title>Setting document.body to incorrect values</title>
<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-document-body">
<link rel="help" href="https://heycam.github.io/webidl/#es-interface">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
var originalBody = document.body;
test(function() {
assert_throws(new TypeError(), function() {
document.body = "text"
})
}, "Should throw a TypeError when trying to set document.body to a string.")
test(function() {
assert_throws("HierarchyRequestError", function() {
document.body = document.createElement("div")
})
}, "Should throw a HierarchyRequestError when trying to set document.body to a div element.")
test(function() {
var doc = document.implementation.createHTMLDocument("")
doc.removeChild(doc.documentElement)
assert_throws("HierarchyRequestError", function() {
doc.body = document.createElement("body")
})
}, "Should throw a HierarchyRequestError when trying to set document.body when there's no root element.")
test(function() {
assert_equals(document.body, originalBody);
}, "document.body has not changed")
</script>