| <!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> |