blob: e49b14412be206aefc5fba036456ae644a6dfd2c [file] [log] [blame]
<!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."');
document.documentElement.setAttribute('FooBar', 'WebKit');
shouldBeEqualToString('document.documentElement.getAttribute("foobar")', 'WebKit');
shouldBeTrue('document.documentElement.hasAttribute("foobar")');
shouldBeEqualToString('document.documentElement.getAttribute("FooBar")', 'WebKit');
shouldBeTrue('document.documentElement.hasAttribute("FooBar")');
shouldBeEqualToString('document.documentElement.getAttributeNS("", "foobar")', 'WebKit');
shouldBeTrue('document.documentElement.hasAttributeNS("", "foobar")');
shouldBe('document.documentElement.getAttributeNS("", "FooBar")', 'null');
shouldBeFalse('document.documentElement.hasAttributeNS("", "FooBar")');
shouldBe('document.documentElement.attributes.length', '1');
// "FooBar" should nuke the "foobar" value and itself having the "foobar" name.
var camelCaseFoobar = document.createAttribute("FooBar");
camelCaseFoobar.value = 'Rocks!'
var oldAttributeNode = document.documentElement.setAttributeNode(camelCaseFoobar);
shouldNotBe('camelCaseFoobar', 'oldAttributeNode');
shouldBeEqualToString('document.documentElement.getAttribute("foobar")', 'Rocks!');
shouldBeTrue('document.documentElement.hasAttribute("foobar")');
shouldBeEqualToString('document.documentElement.getAttribute("FooBar")', 'Rocks!');
shouldBeTrue('document.documentElement.hasAttribute("FooBar")');
shouldBeEqualToString('document.documentElement.getAttributeNS("", "foobar")', 'Rocks!');
shouldBeTrue('document.documentElement.hasAttributeNS("", "foobar")');
shouldBeNull('document.documentElement.getAttributeNS("", "FooBar")');
shouldBeFalse('document.documentElement.hasAttributeNS("", "FooBar")');
// "foobar" should exist alongside "FooBar".
var lowerCaseFoobar = document.createAttribute("foobar");
lowerCaseFoobar.value = 'WebKit2'
var oldAttributeNode2 = document.documentElement.setAttributeNode(lowerCaseFoobar);
shouldBe('oldAttributeNode2', 'camelCaseFoobar');
shouldBeEqualToString('document.documentElement.getAttribute("foobar")', 'WebKit2');
shouldBeTrue('document.documentElement.hasAttribute("foobar")');
shouldBeEqualToString('document.documentElement.getAttribute("FooBar")', 'WebKit2');
shouldBeTrue('document.documentElement.hasAttribute("FooBar")');
shouldBeEqualToString('document.documentElement.getAttributeNS("", "foobar")', 'WebKit2');
shouldBeTrue('document.documentElement.hasAttributeNS("", "foobar")');
shouldBeNull('document.documentElement.getAttributeNS("", "FooBar")');
shouldBeFalse('document.documentElement.hasAttributeNS("", "FooBar")');
</script>
<script src="../../../resources/js-test-post.js"></script>
</html>