summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/dom/nodes/DocumentFragment-getElementById.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/dom/nodes/DocumentFragment-getElementById.html')
-rw-r--r--testing/web-platform/tests/dom/nodes/DocumentFragment-getElementById.html62
1 files changed, 62 insertions, 0 deletions
diff --git a/testing/web-platform/tests/dom/nodes/DocumentFragment-getElementById.html b/testing/web-platform/tests/dom/nodes/DocumentFragment-getElementById.html
new file mode 100644
index 0000000000..ce0d302c12
--- /dev/null
+++ b/testing/web-platform/tests/dom/nodes/DocumentFragment-getElementById.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>DocumentFragment.prototype.getElementById</title>
+<link rel="help" href="https://dom.spec.whatwg.org/#dom-nonelementparentnode-getelementbyid">
+<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<template>
+ <div id="bar">
+ <span id="foo" data-yes></span>
+ </div>
+ <div id="foo">
+ <span id="foo"></span>
+ <ul id="bar">
+ <li id="foo"></li>
+ </ul>
+ </div>
+</template>
+
+<script>
+"use strict";
+
+test(() => {
+ assert_equals(typeof DocumentFragment.prototype.getElementById, "function", "It must exist on the prototype");
+ assert_equals(typeof document.createDocumentFragment().getElementById, "function", "It must exist on an instance");
+}, "The method must exist");
+
+test(() => {
+ assert_equals(document.createDocumentFragment().getElementById("foo"), null);
+ assert_equals(document.createDocumentFragment().getElementById(""), null);
+}, "It must return null when there are no matches");
+
+test(() => {
+ const frag = document.createDocumentFragment();
+ frag.appendChild(document.createElement("div"));
+ frag.appendChild(document.createElement("span"));
+ frag.childNodes[0].id = "foo";
+ frag.childNodes[1].id = "foo";
+
+ assert_equals(frag.getElementById("foo"), frag.childNodes[0]);
+}, "It must return the first element when there are matches");
+
+test(() => {
+ const frag = document.createDocumentFragment();
+ frag.appendChild(document.createElement("div"));
+ frag.childNodes[0].setAttribute("id", "");
+
+ assert_equals(
+ frag.getElementById(""),
+ null,
+ "Even if there is an element with an empty-string ID attribute, it must not be returned"
+ );
+}, "Empty string ID values");
+
+test(() => {
+ const frag = document.querySelector("template").content;
+
+ assert_true(frag.getElementById("foo").hasAttribute("data-yes"));
+}, "It must return the first element when there are matches, using a template");
+</script>