summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/dom/nodes/ParentNode-querySelector-All.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/dom/nodes/ParentNode-querySelector-All.js')
-rw-r--r--testing/web-platform/tests/dom/nodes/ParentNode-querySelector-All.js252
1 files changed, 0 insertions, 252 deletions
diff --git a/testing/web-platform/tests/dom/nodes/ParentNode-querySelector-All.js b/testing/web-platform/tests/dom/nodes/ParentNode-querySelector-All.js
deleted file mode 100644
index 4e6bef6d5..000000000
--- a/testing/web-platform/tests/dom/nodes/ParentNode-querySelector-All.js
+++ /dev/null
@@ -1,252 +0,0 @@
-// Require selectors.js to be included before this.
-
-/*
- * Create and append special elements that cannot be created correctly with HTML markup alone.
- */
-function setupSpecialElements(doc, parent) {
- // Setup null and undefined tests
- parent.appendChild(doc.createElement("null"));
- parent.appendChild(doc.createElement("undefined"));
-
- // Setup namespace tests
- var anyNS = doc.createElement("div");
- var noNS = doc.createElement("div");
- anyNS.id = "any-namespace";
- noNS.id = "no-namespace";
-
- var divs;
- div = [doc.createElement("div"),
- doc.createElementNS("http://www.w3.org/1999/xhtml", "div"),
- doc.createElementNS("", "div"),
- doc.createElementNS("http://www.example.org/ns", "div")];
-
- div[0].id = "any-namespace-div1";
- div[1].id = "any-namespace-div2";
- div[2].setAttribute("id", "any-namespace-div3"); // Non-HTML elements can't use .id property
- div[3].setAttribute("id", "any-namespace-div4");
-
- for (var i = 0; i < div.length; i++) {
- anyNS.appendChild(div[i])
- }
-
- div = [doc.createElement("div"),
- doc.createElementNS("http://www.w3.org/1999/xhtml", "div"),
- doc.createElementNS("", "div"),
- doc.createElementNS("http://www.example.org/ns", "div")];
-
- div[0].id = "no-namespace-div1";
- div[1].id = "no-namespace-div2";
- div[2].setAttribute("id", "no-namespace-div3"); // Non-HTML elements can't use .id property
- div[3].setAttribute("id", "no-namespace-div4");
-
- for (i = 0; i < div.length; i++) {
- noNS.appendChild(div[i])
- }
-
- parent.appendChild(anyNS);
- parent.appendChild(noNS);
-}
-
-/*
- * Check that the querySelector and querySelectorAll methods exist on the given Node
- */
-function interfaceCheck(type, obj) {
- test(function() {
- var q = typeof obj.querySelector === "function";
- assert_true(q, type + " supports querySelector.");
- }, type + " supports querySelector")
-
- test(function() {
- var qa = typeof obj.querySelectorAll === "function";
- assert_true( qa, type + " supports querySelectorAll.");
- }, type + " supports querySelectorAll")
-
- test(function() {
- var list = obj.querySelectorAll("div");
- if (obj.ownerDocument) { // The object is not a Document
- assert_true(list instanceof obj.ownerDocument.defaultView.NodeList, "The result should be an instance of a NodeList")
- } else { // The object is a Document
- assert_true(list instanceof obj.defaultView.NodeList, "The result should be an instance of a NodeList")
- }
- }, type + ".querySelectorAll returns NodeList instance")
-}
-
-/*
- * Verify that the NodeList returned by querySelectorAll is static and and that a new list is created after
- * each call. A static list should not be affected by subsequent changes to the DOM.
- */
-function verifyStaticList(type, doc, root) {
- var pre, post, preLength;
-
- test(function() {
- pre = root.querySelectorAll("div");
- preLength = pre.length;
-
- var div = doc.createElement("div");
- (root.body || root).appendChild(div);
-
- assert_equals(pre.length, preLength, "The length of the NodeList should not change.")
- }, type + ": static NodeList")
-
- test(function() {
- post = root.querySelectorAll("div"),
- assert_equals(post.length, preLength + 1, "The length of the new NodeList should be 1 more than the previous list.")
- }, type + ": new NodeList")
-}
-
-/*
- * Verify handling of special values for the selector parameter, including stringification of
- * null and undefined, and the handling of the empty string.
- */
-function runSpecialSelectorTests(type, root) {
- test(function() { // 1
- assert_equals(root.querySelectorAll(null).length, 1, "This should find one element with the tag name 'NULL'.");
- }, type + ".querySelectorAll null")
-
- test(function() { // 2
- assert_equals(root.querySelectorAll(undefined).length, 1, "This should find one element with the tag name 'UNDEFINED'.");
- }, type + ".querySelectorAll undefined")
-
- test(function() { // 3
- assert_throws(TypeError(), function() {
- root.querySelectorAll();
- }, "This should throw a TypeError.")
- }, type + ".querySelectorAll no parameter")
-
- test(function() { // 4
- var elm = root.querySelector(null)
- assert_not_equals(elm, null, "This should find an element.");
- assert_equals(elm.tagName.toUpperCase(), "NULL", "The tag name should be 'NULL'.")
- }, type + ".querySelector null")
-
- test(function() { // 5
- var elm = root.querySelector(undefined)
- assert_not_equals(elm, undefined, "This should find an element.");
- assert_equals(elm.tagName.toUpperCase(), "UNDEFINED", "The tag name should be 'UNDEFINED'.")
- }, type + ".querySelector undefined")
-
- test(function() { // 6
- assert_throws(TypeError(), function() {
- root.querySelector();
- }, "This should throw a TypeError.")
- }, type + ".querySelector no parameter")
-
- test(function() { // 7
- result = root.querySelectorAll("*");
- var i = 0;
- traverse(root, function(elem) {
- if (elem !== root) {
- assert_equals(elem, result[i], "The result in index " + i + " should be in tree order.");
- i++;
- }
- })
- }, type + ".querySelectorAll tree order");
-}
-
-/*
- * Execute queries with the specified valid selectors for both querySelector() and querySelectorAll()
- * Only run these tests when results are expected. Don't run for syntax error tests.
- */
-function runValidSelectorTest(type, root, selectors, testType, docType) {
- var nodeType = "";
- switch (root.nodeType) {
- case Node.DOCUMENT_NODE:
- nodeType = "document";
- break;
- case Node.ELEMENT_NODE:
- nodeType = root.parentNode ? "element" : "detached";
- break;
- case Node.DOCUMENT_FRAGMENT_NODE:
- nodeType = "fragment";
- break;
- default:
- assert_unreached();
- nodeType = "unknown"; // This should never happen.
- }
-
- for (var i = 0; i < selectors.length; i++) {
- var s = selectors[i];
- var n = s["name"];
- var q = s["selector"];
- var e = s["expect"];
-
- if ((!s["exclude"] || (s["exclude"].indexOf(nodeType) === -1 && s["exclude"].indexOf(docType) === -1))
- && (s["testType"] & testType) ) {
- var foundall, found;
-
- test(function() {
- foundall = root.querySelectorAll(q);
- assert_not_equals(foundall, null, "The method should not return null.")
- assert_equals(foundall.length, e.length, "The method should return the expected number of matches.")
-
- for (var i = 0; i < e.length; i++) {
- assert_not_equals(foundall[i], null, "The item in index " + i + " should not be null.")
- assert_equals(foundall[i].getAttribute("id"), e[i], "The item in index " + i + " should have the expected ID.");
- assert_false(foundall[i].hasAttribute("data-clone"), "This should not be a cloned element.");
- }
- }, type + ".querySelectorAll: " + n + ": " + q);
-
- test(function() {
- found = root.querySelector(q);
-
- if (e.length > 0) {
- assert_not_equals(found, null, "The method should return a match.")
- assert_equals(found.getAttribute("id"), e[0], "The method should return the first match.");
- assert_equals(found, foundall[0], "The result should match the first item from querySelectorAll.");
- assert_false(found.hasAttribute("data-clone"), "This should not be annotated as a cloned element.");
- } else {
- assert_equals(found, null, "The method should not match anything.");
- }
- }, type + ".querySelector: " + n + ": " + q);
- }
- }
-}
-
-/*
- * Execute queries with the specified invalid selectors for both querySelector() and querySelectorAll()
- * Only run these tests when errors are expected. Don't run for valid selector tests.
- */
-function runInvalidSelectorTest(type, root, selectors) {
- for (var i = 0; i < selectors.length; i++) {
- var s = selectors[i];
- var n = s["name"];
- var q = s["selector"];
-
- test(function() {
- assert_throws("SyntaxError", function() {
- root.querySelector(q)
- })
- }, type + ".querySelector: " + n + ": " + q);
-
- test(function() {
- assert_throws("SyntaxError", function() {
- root.querySelectorAll(q)
- })
- }, type + ".querySelectorAll: " + n + ": " + q);
- }
-}
-
-function traverse(elem, fn) {
- if (elem.nodeType === elem.ELEMENT_NODE) {
- fn(elem);
- }
- elem = elem.firstChild;
- while (elem) {
- traverse(elem, fn);
- elem = elem.nextSibling;
- }
-}
-
-function getNodeType(node) {
- switch (node.nodeType) {
- case Node.DOCUMENT_NODE:
- return "document";
- case Node.ELEMENT_NODE:
- return node.parentNode ? "element" : "detached";
- case Node.DOCUMENT_FRAGMENT_NODE:
- return "fragment";
- default:
- assert_unreached();
- return "unknown"; // This should never happen.
- }
-}