Test steps 4 and 5 of the HTMLConstructor

This commit is contained in:
Connor Brewster 2017-06-13 15:01:34 -06:00
parent 1f3fd77d8f
commit 81e28a2b5f
2 changed files with 13 additions and 1 deletions

View file

@ -27,6 +27,18 @@ test(function () {
assert_throws({'name': 'TypeError'}, function () { new SomeCustomElement; });
}, 'HTMLElement constructor must throw TypeError when it has not been defined by customElements.define');
test(function () {
class SomeCustomElement extends HTMLParagraphElement {};
customElements.define('some-custom-element', SomeCustomElement);
assert_throws({'name': 'TypeError'}, function () { new SomeCustomElement(); });
}, 'Custom element constructor must throw TypeError when it does not extend HTMLElement');
test(function () {
class SomeCustomButtonElement extends HTMLButtonElement {};
customElements.define('some-custom-button-element', SomeCustomButtonElement, { extends: "p" });
assert_throws({'name': 'TypeError'}, function () { new SomeCustomButtonElement(); });
}, 'Custom element constructor must throw TypeError when it does not extend the proper element interface');
test(function () {
class CustomElementWithInferredTagName extends HTMLElement {};
customElements.define('inferred-name', CustomElementWithInferredTagName);