diff options
Diffstat (limited to 'testing/web-platform/tests/dom/attributes-are-nodes.html')
-rw-r--r-- | testing/web-platform/tests/dom/attributes-are-nodes.html | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/web-platform/tests/dom/attributes-are-nodes.html b/testing/web-platform/tests/dom/attributes-are-nodes.html new file mode 100644 index 0000000000..54ff4ccaec --- /dev/null +++ b/testing/web-platform/tests/dom/attributes-are-nodes.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Attributes are Nodes but should not be accepted outside of the `attributes` NamedNodeMap</title> +<link rel=help href="https://dom.spec.whatwg.org/#dom-core-changes"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<script> +"use strict"; + +test(() => { + + const attribute = document.createAttribute("newattribute"); + + assert_true(attribute instanceof Node, "attribute instances are instances of Node"); + assert_true(Attr.prototype instanceof Node, "attribute instances are instances of Node"); + +}, "Attrs are subclasses of Nodes"); + +test(() => { + + const parent = document.createElement("p"); + + const attribute = document.createAttribute("newattribute"); + assert_throws_dom("HierarchyRequestError", () => { + parent.appendChild(attribute); + }); + +}, "appendChild with an attribute as the child should fail"); + +test(() => { + + const parent = document.createElement("p"); + parent.appendChild(document.createElement("span")); + + const attribute = document.createAttribute("newattribute"); + assert_throws_dom("HierarchyRequestError", () => { + parent.replaceChild(attribute, parent.firstChild); + }); + +}, "replaceChild with an attribute as the child should fail"); + +test(() => { + + const parent = document.createElement("p"); + parent.appendChild(document.createElement("span")); + + const attribute = document.createAttribute("newattribute"); + assert_throws_dom("HierarchyRequestError", () => { + parent.insertBefore(attribute, parent.firstChild); + }); + +}, "insertBefore with an attribute as the child should fail"); + +</script> |