<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
<script src="xpath-test-pre.js"></script>
</head>
<body>
<p>This tests that XPath expressions with prefixes work correctly.</p>
<div id="console"></div>
<script>
    var xmlString = '<div/>';
    var doc = (new DOMParser()).parseFromString(xmlString, "text/xml");
    document.body.insertBefore(document.importNode(doc.documentElement, null), document.body.firstChild);

    var expr = document.createExpression("//div", null);
    var result = expr.evaluate(document.documentElement, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    checkSnapshot("//div", result, [document.getElementById("console")]);

</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
