| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Element.prototype.setAttribute</title> |
| <link rel=help href="https://dom.spec.whatwg.org/#dom-element-setattribute"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <script> |
| "use strict"; |
| |
| test(() => { |
| |
| const el = document.createElement("p"); |
| el.setAttributeNS("foo", "x", "first"); |
| el.setAttributeNS("foo2", "x", "second"); |
| |
| el.setAttribute("x", "changed"); |
| |
| assert_equals(el.attributes.length, 2); |
| assert_equals(el.getAttribute("x"), "changed"); |
| assert_equals(el.getAttributeNS("foo", "x"), "changed"); |
| assert_equals(el.getAttributeNS("foo2", "x"), "second"); |
| |
| }, "setAttribute should change the first attribute, irrespective of namespace"); |
| |
| test(() => { |
| // https://github.com/whatwg/dom/issues/31 |
| |
| const el = document.createElement("p"); |
| el.setAttribute("FOO", "bar"); |
| |
| assert_equals(el.getAttribute("foo"), "bar"); |
| assert_equals(el.getAttribute("FOO"), "bar"); |
| assert_equals(el.getAttributeNS("", "foo"), "bar"); |
| assert_equals(el.getAttributeNS("", "FOO"), null); |
| |
| }, "setAttribute should lowercase before setting"); |
| </script> |