| <!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> |