<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
function debug(str) {
    pre = document.getElementById('console');
    text = document.createTextNode(str + '\n');
    pre.appendChild(text);
}

function runTests() {
    if (window.testRunner)
        testRunner.dumpAsText();

    elem = document.createElementNS('http://www.example.org', 'test');
    attr = elem.setAttribute('bb:dddd', 'attr_value');
    attrNode = elem.attributes[0];
    debug("namespace is " + attrNode.namespaceURI);
    debug("prefix is " + attrNode.prefix);
    debug("localName is " + attrNode.localName);
    if (attrNode.namespaceURI == null && attrNode.prefix == null && attrNode.localName == 'bb:dddd')
        debug('SUCCESS')
    else
        debug('FAILURE')
}

</script>
</head>
<body onload="runTests();">
<p>This tests checks whether setAttribute allows name parameters with colons in them. If the test is successful, text below should say "SUCCESS".</p>
<pre id="console"></pre>
</body>
</html>
