mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 14:20:14 +02:00
MozReview-Commit-ID: LvpIb2OK2GS --HG-- rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/challenge-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/challenge-novalid.html rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-novalid.html rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-also-novalid.html rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/no-attributes-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/no-attributes-novalid.html rename : testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-isvalid.xhtml => testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-also-novalid.xhtml rename : testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/055-isvalid.xhtml => testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/055-also-novalid.xhtml rename : testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-isvalid.xhtml => testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-also-novalid.xhtml rename : testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-isvalid.xhtml => testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-also-novalid.xhtml rename : testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-isvalid.xhtml => testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-also-novalid.xhtml rename : testing/web-platform/tests/html-media-capture/capture_fallback_file_upload.html => testing/web-platform/tests/html-media-capture/capture_fallback_file_upload-manual.html rename : testing/web-platform/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-start.html => testing/web-platform/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-start-manual.html rename : testing/web-platform/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-stop.html => testing/web-platform/tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-stop-manual.html rename : testing/web-platform/tests/service-workers/cache-storage/serviceworker/credentials.html => testing/web-platform/tests/service-workers/cache-storage/serviceworker/credentials.https.html
58 lines
2 KiB
HTML
58 lines
2 KiB
HTML
<!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 result = find_child_element(test_el, "result");
|
|
var namespace = find_child_element(result, "namespace");
|
|
var localname = find_child_element(result, "localname");
|
|
var nth = find_child_element(result, "nth");
|
|
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 similar = new_doc.getElementsByTagNameNS(namespace.textContent,
|
|
localname.textContent);
|
|
assert_equals(matched[0], similar[nth.textContent]);
|
|
});
|
|
}
|
|
|
|
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>
|