<!DOCTYPE html>
<script src="../include.js"></script>
<script>
function testLookupNamespaceURI(node, prefix, name) {
let prefixName = prefix;
if (prefixName !== null)
prefixName = `"${prefix}"`;
println(`${name}.lookupNamespaceURI(${prefixName}): ${node.lookupNamespaceURI(prefix)}`);
}
test(() => {
const documentFragment = document.createDocumentFragment();
testLookupNamespaceURI(documentFragment, null, "documentFragment");
testLookupNamespaceURI(documentFragment, "", "documentFragment");
testLookupNamespaceURI(documentFragment, "foo", "documentFragment");
testLookupNamespaceURI(documentFragment, "xml", "documentFragment");
testLookupNamespaceURI(documentFragment, "xmlns", "documentFragment");
const docType = document.doctype;
testLookupNamespaceURI(docType, null, "docType");
testLookupNamespaceURI(docType, "", "docType");
testLookupNamespaceURI(docType, "foo", "docType");
testLookupNamespaceURI(docType, "xml", "docType");
testLookupNamespaceURI(docType, "xmlns", "docType");
const element = document.createElementNS("namespace", "prefix:element");
element.setAttribute("bar", "value");
testLookupNamespaceURI(element, null, "element");
testLookupNamespaceURI(element, "", "element");
testLookupNamespaceURI(element, "foo", "element");
testLookupNamespaceURI(element, "xml", "element");
testLookupNamespaceURI(element, "xmlns", "element");
const XMLNS_NS = "http://www.w3.org/2000/xmlns/";
element.setAttributeNS(XMLNS_NS, 'xmlns:bar', 'exampleNamespaceURI');
println("After setting element attribute xmlns:bar='exampleNamespaceURI'");
testLookupNamespaceURI(element, null, "element");
testLookupNamespaceURI(element, "", "element");
testLookupNamespaceURI(element, "foo", "element");
testLookupNamespaceURI(element, "bar", "element");
});
</script>