| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <script src="../../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <div id="test-container" style="display: none;"></div> |
| </body> |
| <script> |
| description('Test using setAttributeNode() behaves like setAttribute() to get the existing attribute, but like setAttributeNS() to set the new value. This test covers attributes set through an AttributeNode with a namespace."'); |
| |
| var testElement = document.createElement("div"); |
| var a = document.createAttributeNS('ns1', 'foobar'); |
| a.value = 'WebKit' |
| testElement.setAttributeNode(a); |
| |
| shouldBe('testElement.attributes.length', '1'); |
| shouldBeEqualToString('testElement.getAttribute("foobar")', 'WebKit'); |
| shouldBeTrue('testElement.hasAttribute("foobar")'); |
| shouldBeEqualToString('testElement.getAttribute("FooBar")', 'WebKit'); |
| shouldBeTrue('testElement.hasAttribute("FooBar")'); |
| |
| shouldBeEqualToString('testElement.getAttributeNS("ns1", "foobar")', 'WebKit'); |
| shouldBeTrue('testElement.hasAttributeNS("ns1", "foobar")'); |
| shouldBe('testElement.getAttributeNS("ns1", "FooBar")', 'null'); |
| shouldBeFalse('testElement.hasAttributeNS("ns1", "FooBar")'); |
| |
| shouldBe('testElement.getAttributeNS("", "foobar")', 'null'); |
| shouldBeFalse('testElement.hasAttributeNS("", "foobar")'); |
| shouldBe('testElement.getAttributeNS("", "FooBar")', 'null'); |
| shouldBeFalse('testElement.hasAttributeNS("", "FooBar")'); |
| |
| // Setting this node through setAttributeNode() instead of setAttributeNodeNS() |
| // erases the lowercase "foobar". |
| var b = document.createAttributeNS('ns1', 'FooBar'); |
| b.value = "Rocks!"; |
| testElement.setAttributeNode(b); |
| |
| shouldBe('testElement.attributes.length', '1'); |
| shouldBe('testElement.getAttribute("foobar")', 'null'); |
| shouldBeFalse('testElement.hasAttribute("foobar")'); |
| shouldBe('testElement.getAttribute("FooBar")', 'null'); |
| shouldBeFalse('testElement.hasAttribute("FooBar")'); |
| |
| shouldBe('testElement.getAttributeNS("ns1", "foobar")', 'null'); |
| shouldBeFalse('testElement.hasAttributeNS("ns1", "foobar")'); |
| shouldBeEqualToString('testElement.getAttributeNS("ns1", "FooBar")', 'Rocks!'); |
| shouldBeTrue('testElement.hasAttributeNS("ns1", "FooBar")'); |
| |
| shouldBe('testElement.getAttributeNS("", "foobar")', 'null'); |
| shouldBeFalse('testElement.hasAttributeNS("", "foobar")'); |
| shouldBe('testElement.getAttributeNS("", "FooBar")', 'null'); |
| shouldBeFalse('testElement.hasAttributeNS("", "FooBar")'); |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </html> |