summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/shadow-dom/resources
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2021-02-25 01:03:57 +0000
committerMoonchild <moonchild@palemoon.org>2021-02-25 01:03:57 +0000
commitceadffab6b357723981a429e11222daf6cd6dcfb (patch)
tree5603053048d6a460f79b22bdf165fb74d32d39b0 /testing/web-platform/tests/shadow-dom/resources
parent14fb2f966e9b54598c451e3cb35b4aa0480dafed (diff)
parentad5a13bd501e379517da1a944c104a11d951a3f5 (diff)
downloadUXP-RC_20210225.tar
UXP-RC_20210225.tar.gz
UXP-RC_20210225.tar.lz
UXP-RC_20210225.tar.xz
UXP-RC_20210225.zip
Merge branch 'master' into releaseRC_20210225
Diffstat (limited to 'testing/web-platform/tests/shadow-dom/resources')
-rw-r--r--testing/web-platform/tests/shadow-dom/resources/Document-prototype-currentScript-helper.js1
-rw-r--r--testing/web-platform/tests/shadow-dom/resources/event-path-test-helpers.js93
-rw-r--r--testing/web-platform/tests/shadow-dom/resources/shadow-dom-utils.js154
-rw-r--r--testing/web-platform/tests/shadow-dom/resources/shadow-dom.js130
4 files changed, 0 insertions, 378 deletions
diff --git a/testing/web-platform/tests/shadow-dom/resources/Document-prototype-currentScript-helper.js b/testing/web-platform/tests/shadow-dom/resources/Document-prototype-currentScript-helper.js
deleted file mode 100644
index c25693cdb..000000000
--- a/testing/web-platform/tests/shadow-dom/resources/Document-prototype-currentScript-helper.js
+++ /dev/null
@@ -1 +0,0 @@
-executeExternalScript();
diff --git a/testing/web-platform/tests/shadow-dom/resources/event-path-test-helpers.js b/testing/web-platform/tests/shadow-dom/resources/event-path-test-helpers.js
deleted file mode 100644
index 091bcd082..000000000
--- a/testing/web-platform/tests/shadow-dom/resources/event-path-test-helpers.js
+++ /dev/null
@@ -1,93 +0,0 @@
-
-function dispatchEventWithLog(shadow, target, event) {
- var eventPath = [];
- var relatedTargets = [];
- var pathAtTargets = [];
-
- var attachedNodes = [];
- for (var nodeKey in shadow) {
- var startingNode = shadow[nodeKey];
- for (var node = startingNode; node; node = node.parentNode) {
- if (attachedNodes.indexOf(node) >= 0)
- continue;
- attachedNodes.push(node);
- node.addEventListener(event.type, (function (event) {
- eventPath.push(this.label);
- relatedTargets.push(event.relatedTarget ? event.relatedTarget.label : null);
-
- if (!event.composedPath) // Don't fail all tests just for the lack of composedPath.
- return;
-
- pathAtTargets.push(event.composedPath().map(function (node) { return node.label; }));
- }).bind(node));
- }
- }
-
- target.dispatchEvent(event);
-
- return {eventPath: eventPath, relatedTargets: relatedTargets, pathAtTargets: pathAtTargets};
-}
-
-/*
--SR: ShadowRoot -S: Slot
-A ------------------------------- A-SR
-+ B ------------ B-SR + A1 --- A1-SR
- + C + B1 --- B1-SR + A2-S + A1a
- + D --- D-SR + B1a + B1b --- B1b-SR
- + D1 + B1c-S + B1b1
- + B1b2
-*/
-function createTestTree(mode) {
- var namedNodes = {};
-
- function element(name) {
- var element = document.createElement(name.indexOf('-S') > 0 ? 'slot' : 'div');
- element.label = name;
- namedNodes[name] = element;
- for (var i = 1; i < arguments.length; i++) {
- var item = arguments[i];
- if (typeof(item) == 'function')
- item(element);
- else
- element.appendChild(item);
- }
- return element;
- }
-
- function shadow(name) {
- var children = [];
- for (var i = 1; i < arguments.length; i++)
- children.push(arguments[i]);
- return function (element) {
- var shadowRoot = element.attachShadow({mode: mode});
- shadowRoot.label = name;
- namedNodes[name] = shadowRoot;
- for (var child of children)
- shadowRoot.appendChild(child);
- }
- }
-
- var host = element('A',
- shadow('A-SR',
- element('A1',
- shadow('A1-SR',
- element('A1a'))),
- element('A2-S')
- ),
- element('B',
- shadow('B-SR',
- element('B1',
- shadow('B1-SR',
- element('B1b',
- shadow('B1b-SR',
- element('B1b1'),
- element('B1b2'))),
- element('B1c-S')),
- element('B1a'))),
- element('C'),
- element('D',
- shadow('D-SR',
- element('D1')))));
-
- return namedNodes;
-}
diff --git a/testing/web-platform/tests/shadow-dom/resources/shadow-dom-utils.js b/testing/web-platform/tests/shadow-dom/resources/shadow-dom-utils.js
deleted file mode 100644
index 07db34336..000000000
--- a/testing/web-platform/tests/shadow-dom/resources/shadow-dom-utils.js
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2012 Google Inc. All Rights Reserved.
-
-/*
-Distributed under both the W3C Test Suite License [1] and the W3C
-3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
-policies and contribution forms [3].
-
-[1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
-[2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
-[3] http://www.w3.org/2004/10/27-testcases
-*/
-
-"use strict";
-
-// custom element is also allowed.
-var ATTACHSHADOW_SAFELISTED_ELEMENTS = [
- 'article',
- 'aside',
- 'blockquote',
- 'body',
- 'div',
- 'footer',
- 'h1',
- 'h2',
- 'h3',
- 'h4',
- 'h5',
- 'h6',
- 'header',
- 'nav',
- 'p',
- 'section',
- 'span'
-];
-
-var HTML5_ELEMENT_NAMES = [
- 'a', 'abbr', 'address', 'area', 'article', 'aside', 'audio',
- 'b', 'base', 'bdi', 'bdo', 'blockquote', 'body', 'br', 'button',
- 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'command',
- 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt',
- 'em', 'embed',
- 'fieldset', 'figcaption', 'figure', 'footer', 'form',
- 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr',
- 'html',
- 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen',
- 'label', 'legend', 'li', 'link',
- 'map', 'mark', 'menu', 'meta', 'meter',
- 'nav', 'noscript',
- 'object', 'ol', 'optgroup', 'option', 'output',
- 'p', 'param', 'pre', 'progress',
- 'q',
- 'rp', 'rt', 'ruby',
- 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span',
- 'strong', 'style', 'sub',
- 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time',
- 'title', 'tr', 'track',
- 'u', 'ul',
- 'var', 'video',
- 'wbr'
-];
-
-function unit(f) {
- return function () {
- var ctx = newContext();
- try {
- f(ctx);
- } finally {
- cleanContext(ctx);
- }
- }
-}
-
-function step_unit(f, ctx, t) {
- return function () {
- var done = false;
- try {
- f();
- done = true;
- } finally {
- if (done) {
- t.done();
- }
- cleanContext(ctx);
- }
- }
-}
-
-function assert_nodelist_contents_equal_noorder(actual, expected, message) {
- assert_equals(actual.length, expected.length, message);
- var used = [];
- for (var i = 0; i < expected.length; i++) {
- used.push(false);
- }
- for (i = 0; i < expected.length; i++) {
- var found = false;
- for (var j = 0; j < actual.length; j++) {
- if (used[j] == false && expected[i] == actual[j]) {
- used[j] = true;
- found = true;
- break;
- }
- }
- if (!found) {
- assert_unreached(message + ". Fail reason: element not found: " + expected[i]);
- }
- }
-}
-
-//Example taken from http://www.w3.org/TR/shadow-dom/#event-retargeting-example
-function createTestMediaPlayer(d) {
- d.body.innerHTML = '' +
- '<div id="player">' +
- '<input type="checkbox" id="outside-control">' +
- '<div id="player-shadow-host">' +
- '</div>' +
- '</div>';
-
- var playerShadowRoot = d.querySelector('#player-shadow-host').attachShadow({mode: 'open'});
- playerShadowRoot.innerHTML = '' +
- '<div id="controls">' +
- '<button class="play-button">PLAY</button>' +
- '<div tabindex="0" id="timeline">' +
- '<div id="timeline-shadow-host">' +
- '</div>' +
- '</div>' +
- '<div class="volume-slider-container" id="volume-slider-container">' +
- '<div tabindex="0" class="volume-slider" id="volume-slider">' +
- '<div id="volume-shadow-host">' +
- '</div>' +
- '</div>' +
- '</div>' +
- '</div>';
-
- var timeLineShadowRoot = playerShadowRoot.querySelector('#timeline-shadow-host').attachShadow({mode: 'open'});
- timeLineShadowRoot.innerHTML = '<div class="slider-thumb" id="timeline-slider-thumb"></div>';
-
- var volumeShadowRoot = playerShadowRoot.querySelector('#volume-shadow-host').attachShadow({mode: 'open'});
- volumeShadowRoot.innerHTML = '<div class="slider-thumb" id="volume-slider-thumb"></div>';
-
- return {
- 'playerShadowRoot': playerShadowRoot,
- 'timeLineShadowRoot': timeLineShadowRoot,
- 'volumeShadowRoot': volumeShadowRoot
- };
-}
-
-//FIXME This call of initKeyboardEvent works for WebKit-only.
-//See https://bugs.webkit.org/show_bug.cgi?id=16735
-// and https://bugs.webkit.org/show_bug.cgi?id=13368. Add check for browser here
-function fireKeyboardEvent(doc, element, key) {
- var event = doc.createEvent('KeyboardEvent');
- event.initKeyboardEvent("keydown", true, true, doc.defaultView, key, 0, false, false, false, false);
- element.dispatchEvent(event);
-}
diff --git a/testing/web-platform/tests/shadow-dom/resources/shadow-dom.js b/testing/web-platform/tests/shadow-dom/resources/shadow-dom.js
deleted file mode 100644
index 3e55684da..000000000
--- a/testing/web-platform/tests/shadow-dom/resources/shadow-dom.js
+++ /dev/null
@@ -1,130 +0,0 @@
-function removeWhiteSpaceOnlyTextNodes(node)
-{
- for (var i = 0; i < node.childNodes.length; i++) {
- var child = node.childNodes[i];
- if (child.nodeType === Node.TEXT_NODE && child.nodeValue.trim().length == 0) {
- node.removeChild(child);
- i--;
- } else if (child.nodeType === Node.ELEMENT_NODE || child.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
- removeWhiteSpaceOnlyTextNodes(child);
- }
- }
- if (node.shadowRoot) {
- removeWhiteSpaceOnlyTextNodes(node.shadowRoot);
- }
-}
-
-function createTestTree(node) {
-
- let ids = {};
-
- function attachShadowFromTemplate(template) {
- let parent = template.parentNode;
- parent.removeChild(template);
- let shadowRoot;
- if (template.getAttribute('data-mode') === 'v0') {
- // For legacy Shadow DOM
- shadowRoot = parent.createShadowRoot();
- } else {
- shadowRoot = parent.attachShadow({mode: template.getAttribute('data-mode')});
- }
- let id = template.id;
- if (id) {
- shadowRoot.id = id;
- ids[id] = shadowRoot;
- }
- shadowRoot.appendChild(document.importNode(template.content, true));
- return shadowRoot;
- }
-
- function walk(root) {
- if (root.id) {
- ids[root.id] = root;
- }
- for (let e of Array.from(root.querySelectorAll('[id]'))) {
- ids[e.id] = e;
- }
- for (let e of Array.from(root.querySelectorAll('template'))) {
- walk(attachShadowFromTemplate(e));
- }
- }
-
- walk(node.cloneNode(true));
- return ids;
-}
-
-function dispatchEventWithLog(nodes, target, event) {
-
- function labelFor(e) {
- return e.id || e.tagName;
- }
-
- let log = [];
- let attachedNodes = [];
- for (let label in nodes) {
- let startingNode = nodes[label];
- for (let node = startingNode; node; node = node.parentNode) {
- if (attachedNodes.indexOf(node) >= 0)
- continue;
- let id = node.id;
- if (!id)
- continue;
- attachedNodes.push(node);
- node.addEventListener(event.type, (e) => {
- // Record [currentTarget, target, relatedTarget, composedPath()]
- log.push([id,
- labelFor(e.target),
- e.relatedTarget ? labelFor(e.relatedTarget) : null,
- e.composedPath().map((n) => {
- return labelFor(n);
- })]);
- });
- }
- }
- target.dispatchEvent(event);
- return log;
-}
-
-// TODO(hayato): Merge this into dispatchEventWithLog
-function dispatchUAEventWithLog(nodes, target, eventType, callback) {
-
- function labelFor(e) {
- return e.id || e.tagName;
- }
-
- let log = [];
- let attachedNodes = [];
- for (let label in nodes) {
- let startingNode = nodes[label];
- for (let node = startingNode; node; node = node.parentNode) {
- if (attachedNodes.indexOf(node) >= 0)
- continue;
- let id = node.id;
- if (!id)
- continue;
- attachedNodes.push(node);
- node.addEventListener(eventType, (e) => {
- // Record [currentTarget, target, relatedTarget, composedPath()]
- log.push([id,
- labelFor(e.target),
- e.relatedTarget ? labelFor(e.relatedTarget) : null,
- e.composedPath().map((n) => {
- return labelFor(n);
- })]);
- });
- }
- }
- callback(target);
- return log;
-}
-
-// This function assumes that testharness.js is available.
-function assert_event_path_equals(actual, expected) {
- assert_equals(actual.length, expected.length);
- for (let i = 0; i < actual.length; ++i) {
- assert_equals(actual[i][0], expected[i][0], 'currentTarget at ' + i + ' should be same');
- assert_equals(actual[i][1], expected[i][1], 'target at ' + i + ' should be same');
- assert_equals(actual[i][2], expected[i][2], 'relatedTarget at ' + i + ' should be same');
- assert_array_equals(actual[i][3], expected[i][3], 'composedPath at ' + i + ' should be same');
- }
-}