| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>Cross-document XPath expressions</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <body> | |
| <script> | |
| function toArray(result) { | |
| var a = []; | |
| while (true) { | |
| var node = result.iterateNext(); | |
| if (node === null) break; | |
| a.push(node); | |
| } | |
| return a; | |
| } | |
| var html_ns = "http://www.w3.org/1999/xhtml"; | |
| var xml_doc = document.implementation.createDocument(html_ns, "html"); | |
| var html_doc = document.implementation.createHTMLDocument(); | |
| function ns_resolver(x) { | |
| if (x === "html") { | |
| return html_ns; | |
| } else { | |
| return null; | |
| } | |
| } | |
| test(function() { | |
| var xml_doc_expression = xml_doc.createExpression("//html"); | |
| assert_array_equals(toArray(xml_doc_expression.evaluate(xml_doc)), []); | |
| }, "expression from XML document, context node in XML document, no namespace resolver"); | |
| test(function() { | |
| var html_doc_expression = html_doc.createExpression("//html"); | |
| assert_array_equals(toArray(html_doc_expression.evaluate(html_doc)), [html_doc.documentElement]); | |
| }, "expression from HTML document, context node in HTML document, no namespace resolver"); | |
| test(function() { | |
| var xml_doc_expression = xml_doc.createExpression("//html"); | |
| assert_array_equals(toArray(xml_doc_expression.evaluate(html_doc)), [html_doc.documentElement]); | |
| }, "expression from XML document, context node in HTML document, no namespace resolver"); | |
| test(function() { | |
| var html_doc_expression = html_doc.createExpression("//html"); | |
| assert_array_equals(toArray(html_doc_expression.evaluate(xml_doc)), []); | |
| }, "expression from HTML document, context node in XML document, no namespace resolver"); | |
| test(function() { | |
| var xml_doc_expression = xml_doc.createExpression("//html", ns_resolver); | |
| assert_array_equals(toArray(xml_doc_expression.evaluate(xml_doc)), []); | |
| }, "expression from XML document, context node in XML document, with namespace resolver"); | |
| test(function() { | |
| var html_doc_expression = html_doc.createExpression("//html", ns_resolver); | |
| assert_array_equals(toArray(html_doc_expression.evaluate(html_doc)), [html_doc.documentElement]); | |
| }, "expression from HTML document, context node in HTML document, with namespace resolver"); | |
| test(function() { | |
| var xml_doc_expression = xml_doc.createExpression("//html", ns_resolver); | |
| assert_array_equals(toArray(xml_doc_expression.evaluate(html_doc)), [html_doc.documentElement]); | |
| }, "expression from XML document, context node in HTML document, with namespace resolver"); | |
| test(function() { | |
| var html_doc_expression = html_doc.createExpression("//html", ns_resolver); | |
| assert_array_equals(toArray(html_doc_expression.evaluate(xml_doc)), []); | |
| }, "expression from HTML document, context node in XML document, with namespace resolver"); | |
| </script> |