<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=12340">bug 12340</a>:
XPath name() function doesn't work with nodes and attributes in null namespace.
</p>
<script>
if (window.testRunner)
  testRunner.dumpAsText();

var strXML = '<doc><record/><record/><record/><record/><record foo="a-a"/></doc>';
var doc = (new DOMParser()).parseFromString(strXML, "text/xml");

// This matches in both Firefox and WebKit, which indicates that 
// XPathEvaluator does not normalize the document.
doc.firstChild.childNodes[0].setAttributeNS("bar", "foo", "-a-");

// This doesn't match.
doc.firstChild.childNodes[1].setAttributeNS("bar", "b:foo", "-a-");

// These both match, too.
doc.firstChild.childNodes[2].setAttributeNS("", "foo", "-a-");
doc.firstChild.childNodes[3].setAttributeNS(null, "foo", "-a-");

// The last (static) record matches, of course.


var xpe = new XPathEvaluator();
var objResult = xpe.evaluate("//@*[name()='foo']", doc, null, 0, null);
var itm = null;
var objNodes = [];
while (itm = objResult.iterateNext())
  objNodes.push(itm);

if (objNodes.length == 4)
  document.write("SUCCESS");
else
  document.write("FAILURE: matched " + objNodes.length + " nodes.");
</script>
