diff options
Diffstat (limited to 'testing/web-platform/tests/css/css-shadow-parts/support')
-rw-r--r-- | testing/web-platform/tests/css/css-shadow-parts/support/shadow-helper.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-shadow-parts/support/shadow-helper.js b/testing/web-platform/tests/css/css-shadow-parts/support/shadow-helper.js new file mode 100644 index 0000000000..94accd6b1f --- /dev/null +++ b/testing/web-platform/tests/css/css-shadow-parts/support/shadow-helper.js @@ -0,0 +1,33 @@ +// Takes a root element and a list of ids of shadow host elements. Each id refers to a shadow host +// inside the previous id's shadow tree. +function getElementByShadowIds(root, ids) { + for (var i = 0; ;i++) { + var host = root.getElementById(ids[i]); + if (host == null) { + throw "No element found: i=" + i + " id=" + ids[i] + ". Root was " + root; + } + if (i == ids.length - 1) { + return host; + } + root = host.shadowRoot; + if (root == null) { + throw "No shadowRoot found: i=" + i + " id=" + ids[i] + ". Host was " + host; + } + } +} + +// Installs a mininal custom element based on this template. +function installCustomElement(element_name, template_id) { + ceClass = class extends HTMLElement { + constructor() { + super(); + var template = document + .getElementById(template_id) + .content; + this + .attachShadow({mode: 'open'}) + .appendChild(template.cloneNode(true)); + } + }; + window.customElements.define(element_name, ceClass); +} |