<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<body onload="onPageLoad()">
<p>Test of Range.createContextualFragment() with in-scope namespace prefixes, where the XML fragment introduces additional namespace prefixes. If the test succeeds you will see the word "PASS" below.</p>
<p id="result">Running test...</p>
<svg:svg xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg:defs id="defs"/>
</svg:svg>
<script type="text/javascript">//<![CDATA[
function onPageLoad() {
if (window.testRunner)
testRunner.dumpAsText();
var result = document.getElementById("result");
var defs = document.getElementById("defs"),
range = document.createRange(),
docFragment;
range.setStart(defs, 0);
docFragment = range.createContextualFragment("<svg:linearGradient id='gradient1'/>" +
"<a:aTest id='aTest' xmlns:a='urn:x-test:a' xmlns:b='urn:x-test:b' a:aAttr='aValue' xlink:href='#gradient1'>" +
" <b:bTest id='bTest' a:aAttr='aValue2' b:bAttr='bValue'>" +
" <xlink:testRedefiningXlink id='testRedefiningXlink' xlink:xlinkAttr='xlinkValue' xmlns:xlink='urn:x-test:xlink'/>" +
" <svg:linearGradient id='gradient2' xlink:href='#gradient1'/>" +
" </b:bTest>" +
"</a:aTest>");
defs.appendChild(docFragment);
var gradient1 = document.getElementById("gradient1");
if (gradient1.namespaceURI != "http://www.w3.org/2000/svg") {
result.textContent += ' - #gradient1 has the wrong namespaceURI';
return;
}
var aTest = document.getElementById("aTest");
if (aTest.namespaceURI != "urn:x-test:a") {
result.textContent += ' - #aTest has the wrong namespaceURI';
return;
}
if (aTest.getAttributeNS("urn:x-test:a", "aAttr") != "aValue") {
result.textContent += ' - wrong value for the a:aAttr attribute of #aTest';
return;
}
if (aTest.getAttributeNS("http://www.w3.org/1999/xlink", "href") != "#gradient1") {
result.textContent += ' - wrong value for the xlink:href attribute of #aTest';
return;
}
var bTest = document.getElementById("bTest");
if (bTest.namespaceURI != "urn:x-test:b") {
result.textContent += ' - #bTest has the wrong namespaceURI';
return;
}
if (bTest.getAttributeNS("urn:x-test:a", "aAttr") != "aValue2") {
result.textContent += ' - wrong value for the a:aAttr attribute of #bTest';
return;
}
if (bTest.getAttributeNS("urn:x-test:b", "bAttr") != "bValue") {
result.textContent += ' - wrong value for the b:bAttr attribute of #bTest';
return;
}
var testRedefiningXlink = document.getElementById("testRedefiningXlink");
if (testRedefiningXlink.namespaceURI != "urn:x-test:xlink") {
result.textContent += ' - #testRedefiningXlink has the wrong namespaceURI';
return;
}
if (testRedefiningXlink.getAttributeNS("urn:x-test:xlink", "xlinkAttr") != "xlinkValue") {
result.textContent += ' - wrong value for the xlink:xlinkAttr attribute of #testRedefiningXlink';
return;
}
var gradient2 = document.getElementById("gradient2");
if (gradient2.namespaceURI != "http://www.w3.org/2000/svg") {
result.textContent += ' - #gradient2 has the wrong namespaceURI';
return;
}
if (gradient2.getAttributeNS("http://www.w3.org/1999/xlink", "href") != "#gradient1") {
result.textContent += ' - wrong value for the xlink:href attribute of #gradient2';
return;
}
if (result.textContent === "Running test...")
result.textContent = "PASS";
}
//]]>
</script>
</body>
</html>