setAttributeNS tests adapted from createAttributeNS which in turn were adapted from createElementNS tests attached to webkit bug 16833

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS element.setAttributeNS() threw exception TypeError: Not enough arguments.
PASS element.setAttributeNS("http://www.example.com") threw exception TypeError: Not enough arguments.
PASS element.setAttributeNS("http://www.example.com", "foo") threw exception TypeError: Not enough arguments.
PASS element.setAttributeNS(undefined, undefined, 'value')
PASS element.setAttributeNS(null, undefined, 'value')
FAIL element.setAttributeNS(undefined, null, 'value')
FAIL element.setAttributeNS(null, null, 'value')
PASS element.setAttributeNS(null, "", 'value'); threw INVALID_CHARACTER_ERR
FAIL element.setAttributeNS("", null, 'value')
PASS element.setAttributeNS("", "", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, "<div>", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, "0div", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, "di v", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, "di<v", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, "-div", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, ".div", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "<div>", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "0div", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "di<v", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "-div", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", ".div", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, ":div", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, "div:", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", ":div", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "div:", 'value'); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, "d:iv", 'value'); threw NAMESPACE_ERR
PASS element.setAttributeNS(null, "a:b:c", 'value'); valid XML name, invalid QName; threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "a:b:c", 'value'); valid XML name, invalid QName; threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS(null, "a::c", 'value'); valid XML name, invalid QName; threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "a::c", 'value'); valid XML name, invalid QName; threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "a:0", 'value'); valid XML name, not a valid QName; threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "0:a", 'value'); 0 at start makes it not a valid XML name; threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "a:_", 'value')
FAIL element.setAttributeNS("http://example.com/", "a:;", 'value'); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (but still a valid XML name, hence not INVALID_CHARACTER_ERR); expected NAMESPACE_ERR, threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", ";:a", 'value'); non-ASCII character after colon is CombiningChar, which is NCNameChar but not (Letter | "_") so invalid at start of NCName (Gecko chooses to throw NAMESPACE_ERR here, but either is valid as this is both an invalid XML name and an invalid QName); threw INVALID_CHARACTER_ERR
PASS element.setAttributeNS("http://example.com/", "a:aெ", 'value')
PASS element.setAttributeNS("http://example.com/", "aெ:a", 'value')
PASS element.setAttributeNS("http://example.com/", "xml:test", 'value'); binding xml prefix wrong; threw NAMESPACE_ERR
PASS element.setAttributeNS("http://example.com/", "xmlns:test", 'value'); binding xmlns prefix wrong; threw NAMESPACE_ERR
PASS element.setAttributeNS("http://www.w3.org/2000/xmlns/", "x:test", 'value'); binding namespace namespace to wrong prefix; threw NAMESPACE_ERR
PASS element.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:test", 'value')
PASS element.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:test", 'value')
PASS element.setAttributeNS("http://www.w3.org/XML/1998/namespace", "x:test", 'value')
PASS element.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", 'value')
PASS element.setAttributeNS("http://example.com/", "xmlns", 'value'); threw NAMESPACE_ERR
PASS successfullyParsed is true

TEST COMPLETE

