Summary

Harness status: OK

Found 46 tests

Details

ResultTest NameMessage
PassCustomElementRegistry interface must have define as a method
Asserts run
Pass
assert_true(true, "\"define\" exists on CustomElementRegistry.prototype")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:17:5)
Pass
assert_true(true, "\"define\" exists on window.customElements")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:18:5)
PasscustomElements.define must throw when the element interface is not a constructor
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('badname', 1); }", "customElements.define must throw a TypeError when the element interface is a number")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:22:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('badname', '123'); }", "customElements.define must throw a TypeError when the element interface is a string")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:24:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('badname', {}); }", "customElements.define must throw a TypeError when the element interface is an object")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:26:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('badname', []); }", "customElements.define must throw a TypeError when the element interface is an array")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:28:5)
PasscustomElements.define must not throw the constructor is HTMLElement
Asserts runNo asserts ran
PasscustomElements.define must throw with an invalid name
Asserts run
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(null, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is null")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:39:5)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define('', MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is empty")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:41:5)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define('abc', MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name does not contain \"-\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:43:5)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define('a-Bc', MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name contains an upper case letter")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:45:5)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(tagName, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is \"annotation-xml\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:60:9)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(tagName, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is \"color-profile\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:60:9)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(tagName, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is \"font-face\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:60:9)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(tagName, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is \"font-face-src\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:60:9)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(tagName, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is \"font-face-uri\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:60:9)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(tagName, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is \"font-face-format\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:60:9)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(tagName, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is \"font-face-name\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:60:9)
Pass
assert_throws_dom("SyntaxError", function "function () { customElements.define(tagName, MyCustomElement); }", "customElements.define must throw a SyntaxError if the tag name is \"missing-glyph\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:60:9)
PasscustomElements.define must throw when there is already a custom element of the same name
Asserts run
Pass
assert_throws_dom("NotSupportedError", function "function () { customElements.define('some-custom-element', OtherCustomElement); }", "customElements.define must throw a NotSupportedError if the specified tag name is already used")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:78:5)
Pass
assert_array_equals([], [], "customElements.define must validate the custom element name before getting the prototype of the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:80:5)
PasscustomElements.define must throw a NotSupportedError when there is already a custom element with the same class
Asserts run
Pass
assert_throws_dom("NotSupportedError", function "function () { customElements.define('some-other-element', AnotherCustomElement); }", "customElements.define must throw a NotSupportedError if the specified class already defines an element")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:88:5)
PasscustomElements.define must throw a NotSupportedError when element definition is running flag is set
Asserts run
Pass
assert_throws_dom("NotSupportedError", function "function () { customElements.define('outer-custom-element', OuterCustomElement); }", "customElements.define must throw a NotSupportedError if the specified class already defines an element")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:110:5)
Pass
assert_array_equals(["prototype"], ["prototype"], "customElements.define must get \"prototype\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:112:5)
Pass
assert_array_equals([], [], "customElements.define must throw a NotSupportedError when element definition is running flag is set before getting the prototype of the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:113:5)
PasscustomElements.define must check IsConstructor on the constructor before checking the element definition is running flag
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () {         customElements.define('element-with-bad-inner-constructor', ElementWithBadInnerConstructor);     }", "customElements.define must throw a NotSupportedError if IsConstructor(constructor) is false")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:129:5)
Pass
assert_array_equals(["prototype"], ["prototype"], "customElements.define must get \"prototype\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:133:5)
PasscustomElements.define must validate the custom element name before checking the element definition is running flag
Asserts run
Pass
assert_throws_dom("SyntaxError", function "function () {         customElements.define('element-with-bad-inner-name', ElementWithBadInnerName);     }", "customElements.define must throw a SyntaxError if the specified name is not a valid custom element name")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:146:5)
Pass
assert_array_equals(["prototype"], ["prototype"], "customElements.define must get \"prototype\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:150:5)
PasscustomElements.define unset the element definition is running flag before upgrading custom elements
Asserts run
Pass
assert_false(false)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:172:5)
Pass
assert_false(false)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:173:5)
Pass
assert_false(false)
    at new ConstructorCallsDefine ( /custom-elements/CustomElementRegistry.html:164:13)
Pass
assert_true(true)
    at new ConstructorCallsDefine ( /custom-elements/CustomElementRegistry.html:165:13)
Pass
assert_true(true)
    at new ConstructorCallsDefine ( /custom-elements/CustomElementRegistry.html:167:13)
Pass
assert_true(true)
    at new ConstructorCallsDefine ( /custom-elements/CustomElementRegistry.html:168:13)
PasscustomElements.define must not throw when defining another custom element in a different global object during Get(constructor, "prototype")
Asserts run
Pass
assert_array_equals(["prototype", "disabledFeatures", "formAssociated"], ["prototype", "disabledFeatures", "formAssociated"], "customElements.define must get \"prototype\", \"disabledFeatures\", and \"formAssociated\" on the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:197:13)
Pass
assert_true(true)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:199:13)
PassCustom Elements: CustomElementRegistry interface
Asserts run
Pass
assert_throws_dom("SyntaxError", function "function () {         customElements.define('element-with-bad-inner-name', ElementWithBadInnerName);     }", "customElements.define must throw a SyntaxError if the specified name is not a valid custom element name")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:218:5)
Pass
assert_array_equals(["prototype"], ["prototype"], "customElements.define must get \"prototype\"")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:222:5)
PasscustomElements.define must get "prototype", "disabledFeatures", and "formAssociated" property of the constructor
Asserts run
Pass
assert_array_equals(["prototype", "disabledFeatures", "formAssociated"], ["prototype", "disabledFeatures", "formAssociated"])
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:234:5)
PasscustomElements.define must rethrow an exception thrown while getting "prototype" property of the constructor
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "function () { customElements.define('element-with-string-prototype', proxy); }")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:244:5)
PasscustomElements.define must throw when "prototype" property of the constructor is not an object
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('element-with-string-prototype', proxy); }", "customElements.define must throw when \"prototype\" property of the constructor is null")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:254:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('element-with-string-prototype', proxy); }", "customElements.define must throw when \"prototype\" property of the constructor is undefined")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:257:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('element-with-string-prototype', proxy); }", "customElements.define must throw when \"prototype\" property of the constructor is a string")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:260:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('element-with-string-prototype', proxy); }", "customElements.define must throw when \"prototype\" property of the constructor is a number")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:263:5)
PasscustomElements.define must get callbacks of the constructor prototype
Asserts run
Pass
assert_array_equals(["connectedCallback", "disconnectedCallback", "adoptedCallback", "attributeChangedCallback"], ["connectedCallback", "disconnectedCallback", "adoptedCallback", "attributeChangedCallback"])
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:278:5)
PasscustomElements.define must rethrow an exception thrown while getting callbacks on the constructor prototype
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "function () { customElements.define('element-with-throwing-callback', constructor); }")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:295:5)
Pass
assert_array_equals(["connectedCallback", "disconnectedCallback"], ["connectedCallback", "disconnectedCallback"], "customElements.define must not get callbacks after one of the get throws")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:296:5)
PasscustomElements.define must rethrow an exception thrown while converting a callback value to Function callback type
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('element-with-throwing-callback', constructor); }")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:311:5)
Pass
assert_array_equals(["connectedCallback", "disconnectedCallback", "adoptedCallback"], ["connectedCallback", "disconnectedCallback", "adoptedCallback"], "customElements.define must not get callbacks after one of the conversion throws")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:312:5)
FailcustomElements.define must get "observedAttributes" property on the constructor prototype when "attributeChangedCallback" is presentassert_array_equals: expected property 2 to be 6 but got 5 (expected array [0, "prototype", 6, "observedAttributes", 7, "disabledFeatures", 8, "formAssociated"] got [0, "prototype", 5, "observedAttributes", 6, "disabledFeatures", 7, "formAssociated"])
    at Test.<anonymous> (https://www1.wpt.live/custom-elements/CustomElementRegistry.html:346:5)
    at Test.step (https://www1.wpt.live/resources/testharness.js:2638:25)
    at test (https://www1.wpt.live/resources/testharness.js:633:30)
    at https://www1.wpt.live/custom-elements/CustomElementRegistry.html:319:1
Asserts run
Pass
assert_array_equals([1, "connectedCallback", 2, "disconnectedCallback", 3, "adoptedCallback", 4, "attributeChangedCallback"], [1, "connectedCallback", 2, "disconnectedCallback", 3, "adoptedCallback", 4, "attributeChangedCallback"])
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:342:5)
Fail
assert_array_equals([0, "prototype", 5, "observedAttributes", 6, "disabledFeatures", 7, "formAssociated"], [0, "prototype", 6, "observedAttributes", 7, "disabledFeatures", 8, "formAssociated"])
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:346:5)
PasscustomElements.define must rethrow an exception thrown while getting observedAttributes on the constructor prototype
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "function () { customElements.define('element-with-throwing-observed-attributes', proxy); }")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:365:5)
Pass
assert_array_equals(["prototype", "observedAttributes"], ["prototype", "observedAttributes"], "customElements.define must get \"prototype\" and \"observedAttributes\" on the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:366:5)
PasscustomElements.define must rethrow an exception thrown while converting the value of observedAttributes to sequence<DOMString>
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('element-with-invalid-observed-attributes', proxy); }")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:382:5)
Pass
assert_array_equals(["prototype", "observedAttributes"], ["prototype", "observedAttributes"], "customElements.define must get \"prototype\" and \"observedAttributes\" on the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:383:5)
PasscustomElements.define must rethrow an exception thrown while iterating over observedAttributes to sequence<DOMString>
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "function () { customElements.define('element-with-generator-observed-attributes', constructor); }")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:395:5)
PasscustomElements.define must rethrow an exception thrown while retrieving Symbol.iterator on observedAttributes
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "function () { customElements.define('element-with-observed-attributes-with-uncallable-iterator', constructor); }")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:402:5)
PasscustomElements.define must not throw even if "observedAttributes" fails to convert if "attributeChangedCallback" is not defined
Asserts runNo asserts ran
PasscustomElements.define must rethrow an exception thrown while getting disabledFeatures on the constructor prototype
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "() => customElements.define('element-with-throwing-disabled-features', proxy)")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:423:5)
Pass
assert_array_equals(["prototype", "disabledFeatures"], ["prototype", "disabledFeatures"], "customElements.define must get \"prototype\" and \"disabledFeatures\" on the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:424:5)
PasscustomElements.define must rethrow an exception thrown while converting the value of disabledFeatures to sequence<DOMString>
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => customElements.define('element-with-invalid-disabled-features', proxy)")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:439:5)
Pass
assert_array_equals(["prototype", "disabledFeatures"], ["prototype", "disabledFeatures"], "customElements.define must get \"prototype\" and \"disabledFeatures\" on the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:440:5)
PasscustomElements.define must rethrow an exception thrown while iterating over disabledFeatures to sequence<DOMString>
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "() => customElements.define('element-with-generator-disabled-features', constructor)")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:451:5)
PasscustomElements.define must rethrow an exception thrown while retrieving Symbol.iterator on disabledFeatures
Asserts run
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => customElements.define('element-with-disabled-features-with-uncallable-iterator', constructor)")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:457:5)
PasscustomElements.define must rethrow an exception thrown while getting formAssociated on the constructor prototype
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "() => customElements.define('element-with-throwing-form-associated', proxy)")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:472:5)
Pass
assert_array_equals(["prototype", "disabledFeatures", "formAssociated"], ["prototype", "disabledFeatures", "formAssociated"], "customElements.define must get \"prototype\", \"disabledFeatures\", and \"formAssociated\" on the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:474:5)
PasscustomElements.define must get four additional callbacks on the prototype if formAssociated is converted to true
Asserts run
Pass
assert_array_equals(["prototype", "disabledFeatures", "formAssociated"], ["prototype", "disabledFeatures", "formAssociated"], "customElements.define must get \"prototype\", \"disabledFeatures\", and \"formAssociated\" on the constructor")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:499:5)
Pass
assert_array_equals(["connectedCallback", "disconnectedCallback", "adoptedCallback", "attributeChangedCallback", "formAssociatedCallback", "formResetCallback", "formDisabledCallback", "formStateRestoreCallback"], ["connectedCallback", "disconnectedCallback", "adoptedCallback", "attributeChangedCallback", "formAssociatedCallback", "formResetCallback", "formDisabledCallback", "formStateRestoreCallback"], "customElements.define must get 8 callbacks on the prototype")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:503:5)
PasscustomElements.define must rethrow an exception thrown while getting additional formAssociated callbacks on the constructor prototype
Asserts run
Pass
assert_throws_exactly(object "[object Object]", function "() => customElements.define('element-with-throwing-callback-2', proxy)")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:536:5)
Pass
assert_array_equals(["connectedCallback", "disconnectedCallback", "adoptedCallback", "attributeChangedCallback", "formAssociatedCallback", "formResetCallback", "formDisabledCallback"], ["connectedCallback", "disconnectedCallback", "adoptedCallback", "attributeChangedCallback", "formAssociatedCallback", "formResetCallback", "formDisabledCallback"], "customElements.define must not get callbacks after one of the get throws")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:538:5)
Pass
assert_throws_js(function "function TypeError() { [native code] }", function "() => customElements.define('element-with-throwing-callback-3', proxy)")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:556:5)
Pass
assert_array_equals(["connectedCallback", "disconnectedCallback", "adoptedCallback", "attributeChangedCallback", "formAssociatedCallback", "formResetCallback"], ["connectedCallback", "disconnectedCallback", "adoptedCallback", "attributeChangedCallback", "formAssociatedCallback", "formResetCallback"], "customElements.define must not get callbacks after one of the get throws")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:558:5)
PasscustomElements.define must define an instantiatable custom element
Asserts run
Pass
assert_true(true, "An instance of a custom HTML element be an instance of the associated interface")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:572:5)
Pass
assert_true(true, "An instance of a custom HTML element must inherit from HTMLElement")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:575:5)
Pass
assert_equals("my-custom-element", "my-custom-element", "An instance of a custom element must use the associated tag name")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:578:5)
Pass
assert_equals("http://www.w3.org/1999/xhtml", "http://www.w3.org/1999/xhtml", "A custom element HTML must use HTML namespace")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:581:5)
PasscustomElements.define must upgrade elements in the shadow-including tree order
Asserts run
Pass
assert_array_equals([Element node <some-custom></some-custom>, Element node <some-custom></some-custom>, Element node <some-custom></some-custom>, Element node <some-custom></some-custom>, Element node <some-custom></some-custom>, Element node <some-custom></some-custom>], [Element node <some-custom></some-custom>, Element node <some-custom></some-custom>, Element node <some-custom></some-custom>, Element node <some-custom></some-custom>, Element node <some-custom></some-custom>, Element node <some-custom></some-custom>])
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:618:5)
PassCustomElementRegistry interface must have get as a method
Asserts run
Pass
assert_true(true, "\"get\" exists on CustomElementRegistry.prototype")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:622:5)
Pass
assert_true(true, "\"get\" exists on window.customElements")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:623:5)
PasscustomElements.get must return undefined when the registry does not contain an entry with the given name
Asserts run
Pass
assert_equals(undefined, undefined)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:627:5)
PasscustomElements.get must return undefined when the registry does not contain an entry with the given name even if the name was not a valid custom element name
Asserts run
Pass
assert_equals(undefined, undefined)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:631:5)
Pass
assert_equals(undefined, undefined)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:632:5)
Pass
assert_equals(undefined, undefined)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:633:5)
Pass
assert_equals(undefined, undefined)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:634:5)
Pass
assert_equals(undefined, undefined)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:635:5)
PasscustomElements.get return the constructor of the entry with the given name when there is a matching entry.
Asserts run
Pass
assert_equals(undefined, undefined)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:639:5)
Pass
assert_equals(function "class ExistingCustomElement extends HTMLElement {}", function "class ExistingCustomElement extends HTMLElement {}")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:642:5)
PasscustomElements.whenDefined must return a promise for a valid custom element name
Asserts run
Pass
assert_true(true)
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:646:5)
PasscustomElements.whenDefined must return the same promise each time invoked for a valid custom element name which has not been defined
Asserts run
Pass
assert_equals(object "[object Promise]", object "[object Promise]")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:650:5)
PasscustomElements.whenDefined must return an unresolved promise when the registry does not contain the entry with the given name
Asserts run
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:658:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:659:9
PasscustomElements.whenDefined must return a rejected promise when the given name is not a valid custom element name
Asserts run
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:667:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:668:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must be resolved when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:671:9
Pass
assert_true(true, "The promise returned by \"whenDefined\" must not be rejected when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:672:9
PasscustomElements.whenDefined must return a resolved promise when the registry contains the entry with the given name
Asserts run
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:683:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:684:5)
Pass
assert_true(true, "The promise returned by \"whenDefined\" must be resolved when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:687:9
Pass
assert_equals(function "class PreexistingCustomElement extends HTMLElement { }", function "class PreexistingCustomElement extends HTMLElement { }", "The promise returned by \"whenDefined\" must be resolved with the constructor of the element when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:688:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:690:9
PasscustomElements.whenDefined must return a new resolved promise each time invoked when the registry contains the entry with the given name
Asserts run
Pass
assert_not_equals(object "[object Promise]", object "[object Promise]")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:703:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:704:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:705:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:706:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:707:5)
Pass
assert_true(true, "The promise returned by \"whenDefined\" must be resolved when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:710:9
Pass
assert_equals(function "class AnotherExistingCustomElement extends HTMLElement {}", function "class AnotherExistingCustomElement extends HTMLElement {}", "The promise returned by \"whenDefined\" must be resolved with the constructor of the element when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:711:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:712:9
Pass
assert_true(true, "The promise returned by \"whenDefined\" must be resolved when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:714:9
Pass
assert_equals(function "class AnotherExistingCustomElement extends HTMLElement {}", function "class AnotherExistingCustomElement extends HTMLElement {}", "The promise returned by \"whenDefined\" must be resolved with the constructor of the element when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:715:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:716:9
PassA promise returned by customElements.whenDefined must be resolved by "define"
Asserts run
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:725:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until the end of the next microtask")
    at Test.<anonymous> ( /custom-elements/CustomElementRegistry.html:726:5)
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until the element is defined")
    at  /custom-elements/CustomElementRegistry.html:730:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until the element is defined")
    at  /custom-elements/CustomElementRegistry.html:731:9
Pass
assert_equals(object "[object Promise]", object "[object Promise]", "\"whenDefined\" must return the same unresolved promise before the custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:732:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until the end of the next microtask")
    at  /custom-elements/CustomElementRegistry.html:735:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until the end of the next microtask")
    at  /custom-elements/CustomElementRegistry.html:736:9
Pass
assert_not_equals(object "[object Promise]", object "[object Promise]", "\"whenDefined\" must return a resolved promise once the custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:740:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be resolved until the end of the next microtask")
    at  /custom-elements/CustomElementRegistry.html:741:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected until the end of the next microtask")
    at  /custom-elements/CustomElementRegistry.html:742:9
Pass
assert_true(true, "The promise returned by \"whenDefined\" must be resolved when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:744:9
Pass
assert_equals(function "class ElementDefinedAfterWhenDefined extends HTMLElement { }", function "class ElementDefinedAfterWhenDefined extends HTMLElement { }", "The promise returned by \"whenDefined\" must be resolved with the constructor of the element when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:745:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:747:9
Pass
assert_true(true, "The promise returned by \"whenDefined\" must be resolved when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:749:9
Pass
assert_equals(function "class ElementDefinedAfterWhenDefined extends HTMLElement { }", function "class ElementDefinedAfterWhenDefined extends HTMLElement { }", "The promise returned by \"whenDefined\" must be resolved with the constructor of the element when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:750:9
Pass
assert_false(false, "The promise returned by \"whenDefined\" must not be rejected when a custom element is defined")
    at  /custom-elements/CustomElementRegistry.html:752:9
PassA promise returned by customElements.whenDefined must be resolved with the defined class
Asserts run
Pass
assert_equals(function "class ResolvedCustomElement extends HTMLElement {}", function "class ResolvedCustomElement extends HTMLElement {}", "The promise returned by \"whenDefined\" must resolve with the defined class")
    at  /custom-elements/CustomElementRegistry.html:760:9
PassA promise returned by customElements.whenDefined must be resolved with the defined class once such class is defined
Asserts run
Pass
assert_equals(function "class NotResolvedYetCustomElement extends HTMLElement {}", function "class NotResolvedYetCustomElement extends HTMLElement {}", "The promise returned by \"whenDefined\" must resolve with the defined class once such class is defined")
    at  /custom-elements/CustomElementRegistry.html:766:9