UNPKG

@webcomponents/custom-elements

Version:
45 lines (43 loc) 1.8 kB
<!DOCTYPE html> <!-- TODO(yosin): We should upstream to wpt test. This file is taken from https://github.com/kojiishi/web-platform-tests/blob/53908d773012edf931047674f7afe3975bc1820f/custom-elements/custom-elements-registry/get.html --> <title>Custom Elements: CustomElementRegistry.get</title> <script src="../../../resources/testharness.js"></script> <script src="../../../resources/testharnessreport.js"></script> <body> <div id="log"></div> <script> 'use strict'; (() => { // https://html.spec.whatwg.org/multipage/scripting.html#dom-customelementregistry-whendefined // Use window from iframe to isolate the test. function setup() { const iframe = document.createElement('iframe'); document.body.appendChild(iframe); const testWindow = iframe.contentWindow; const customElements = testWindow.customElements; if (!customElements) return Promise.reject('This test requires window.customElements'); if (!('get' in customElements)) return Promise.reject('This test requires window.customElements.get'); return Promise.resolve(customElements); } promise_test(() => setup() .then(customElements => { // 1. If this CustomElementRegistry contains an entry with name name, // then return that entry's constructor. const name = 'test-get-existing'; class C extends HTMLElement {}; customElements.define(name, C); assert_equals(customElements.get(name), C, 'get() returns the constructor') return Promise.resolve(customElements); }).then(customElements => { // 2. Otherwise, return undefined. assert_equals(customElements.get('test-get-not-defined'), undefined, 'get() returns undefined for not-defined name'); }).catch(reason => { throw reason })); })(); </script> </body>