blob: c7eee29061f450045ea4e236360c3e3e77085bd3 [file] [log] [blame]
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