summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/domxpath/xml_xpath_runner.html
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/domxpath/xml_xpath_runner.html
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/domxpath/xml_xpath_runner.html')
-rw-r--r--testing/web-platform/tests/domxpath/xml_xpath_runner.html51
1 files changed, 51 insertions, 0 deletions
diff --git a/testing/web-platform/tests/domxpath/xml_xpath_runner.html b/testing/web-platform/tests/domxpath/xml_xpath_runner.html
new file mode 100644
index 000000000..a9bbb1588
--- /dev/null
+++ b/testing/web-platform/tests/domxpath/xml_xpath_runner.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<title>XPath tests</title>
+<script src='/resources/testharness.js'></script>
+<script src='/resources/testharnessreport.js'></script>
+<script>
+setup({ explicit_done: true });
+
+function find_child_element(context, element) {
+ for (var i = 0; i < context.childNodes.length; i++) {
+ var child = context.childNodes[i];
+ if (child.nodeType === Node.ELEMENT_NODE && child.tagName === element)
+ return child;
+ }
+}
+
+function xpath_test(test_el) {
+ /* note this func adopts the tree! */
+ var new_doc = document.implementation.createDocument("", "");
+ var xpath = find_child_element(test_el, "xpath");
+ var tree = find_child_element(test_el, "tree");
+ var actual_tree = new_doc.adoptNode(tree.firstElementChild);
+ new_doc.appendChild(actual_tree);
+ test(function() {
+ var result = new_doc.evaluate(xpath.textContent, // expression
+ actual_tree, // context node
+ new_doc.createNSResolver(actual_tree), // resolver
+ XPathResult.ANY_TYPE, // type
+ null); // result
+ var matched = [];
+ var cur;
+ while ((cur = result.iterateNext()) !== null) {
+ matched.push(cur);
+ }
+ assert_equals(matched.length, 1, "Should match one node");
+ });
+}
+
+var xhr = new XMLHttpRequest();
+xhr.open("GET", "xml_xpath_tests.xml");
+xhr.onload = function(e) {
+ var tests = xhr.responseXML.documentElement;
+ for (var i = 0; i < tests.childNodes.length; i++) {
+ var child = tests.childNodes[i];
+ if (child.nodeType === Node.ELEMENT_NODE) {
+ xpath_test(child);
+ }
+ }
+ done();
+};
+xhr.send();
+</script>