| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>Custom element's type is immutable.</title> |
| <meta name="author" title="Bon-Yong Lee" href="mailto:bylee78@gmail.com"> |
| <meta name="assert" content="After a custom element is instantiated, changing the value of the is attribute must not affect this element's custom element type."> |
| <link rel="help" href="http://w3c.github.io/webcomponents/spec/custom/#instantiating-custom-elements"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id="log"></div> |
| <script type="text/javascript"> |
| test(function() { |
| var CustomButton = document.registerElement('custom-button', { |
| prototype: Object.create(HTMLButtonElement.prototype), |
| extends: 'button' |
| }); |
| var customButton = document.createElement('button', 'custom-button'); |
| |
| assert_true(customButton instanceof CustomButton, |
| 'A custom element is of the custom element type after ' + |
| 'instantiation'); |
| customButton.setAttribute('is', 'dirty'); |
| assert_equals('dirty', customButton.getAttribute('is'), |
| 'An attribute must be changed by method "setAttribute"'); |
| |
| assert_true(customButton instanceof CustomButton, |
| 'A custom element is of the original custom element type even ' + |
| 'after changing the \'is\' attribute'); |
| }, 'After a custom element is instantiated, changing the value of the is attribute must not affect this element\'s custom element type.'); |
| </script> |