| Index: third_party/WebKit/LayoutTests/imported/wpt/custom-elements/connected-callbacks.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/connected-callbacks.html b/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/connected-callbacks.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..97833db850545dbe9944d9208149d594273733e9
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/connected-callbacks.html
|
| @@ -0,0 +1,88 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| +<title>Custom Elements: connectedCallback</title>
|
| +<meta name="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org">
|
| +<meta name="assert" content="connectedCallback must be enqueued whenever custom element is inserted into a document">
|
| +<link rel="help" href="https://w3c.github.io/webcomponents/spec/custom/#dfn-connected-callback">
|
| +<script src="/resources/testharness.js"></script>
|
| +<script src="/resources/testharnessreport.js"></script>
|
| +<script src="resources/document-types.js"></script>
|
| +</head>
|
| +<body>
|
| +<div id="log"></div>
|
| +<script>
|
| +
|
| +var calls = [];
|
| +class MyCustomElement extends HTMLElement {
|
| + connectedCallback() { calls.push('connected', this); }
|
| + disconnectedCallback() { calls.push('disconnected', this); }
|
| +}
|
| +customElements.define('my-custom-element', MyCustomElement);
|
| +
|
| +DocumentTypes.forEach(function (entry) {
|
| + var documentName = entry.name;
|
| + var getDocument = entry.create;
|
| +
|
| + promise_test(function () {
|
| + return getDocument().then(function (doc) {
|
| + var instance = document.createElement('my-custom-element');
|
| + calls = [];
|
| + doc.documentElement.appendChild(instance);
|
| + assert_array_equals(calls, ['connected', instance]);
|
| + });
|
| + }, 'Inserting a custom element into a ' + documentName + ' must enqueue and invoke connectedCallback');
|
| +
|
| + promise_test(function () {
|
| + return getDocument().then(function (doc) {
|
| + var instance = document.createElement('my-custom-element');
|
| + var parent = document.createElement('div');
|
| + parent.appendChild(instance);
|
| + calls = [];
|
| + doc.documentElement.appendChild(parent);
|
| + assert_array_equals(calls, ['connected', instance]);
|
| + });
|
| + }, 'Inserting an ancestor of custom element into a ' + documentName + ' must enqueue and invoke connectedCallback');
|
| +
|
| + promise_test(function () {
|
| + return getDocument().then(function (doc) {
|
| + var instance = document.createElement('my-custom-element');
|
| + var host = doc.createElementNS('http://www.w3.org/1999/xhtml', 'div');
|
| + var shadowRoot = host.attachShadow({mode: 'closed'});
|
| + doc.documentElement.appendChild(host);
|
| +
|
| + calls = [];
|
| + shadowRoot.appendChild(instance);
|
| + assert_array_equals(calls, ['connected', instance]);
|
| + });
|
| + }, 'Inserting a custom element into a shadow tree in a ' + documentName + ' must enqueue and invoke connectedCallback');
|
| +
|
| + promise_test(function () {
|
| + return getDocument().then(function (doc) {
|
| + var instance = document.createElement('my-custom-element');
|
| + var host = doc.createElementNS('http://www.w3.org/1999/xhtml', 'div');
|
| + var shadowRoot = host.attachShadow({mode: 'closed'});
|
| + shadowRoot.appendChild(instance);
|
| +
|
| + calls = [];
|
| + doc.documentElement.appendChild(host);
|
| + assert_array_equals(calls, ['connected', instance]);
|
| + });
|
| + }, 'Inserting the shadow host of a custom element into a ' + documentName + ' must enqueue and invoke connectedCallback');
|
| +
|
| + promise_test(function () {
|
| + return getDocument().then(function (doc) {
|
| + var instance = document.createElement('my-custom-element');
|
| + var host = doc.createElementNS('http://www.w3.org/1999/xhtml', 'div');
|
| + var shadowRoot = host.attachShadow({mode: 'closed'});
|
| +
|
| + calls = [];
|
| + shadowRoot.appendChild(instance);
|
| + assert_array_equals(calls, []);
|
| + });
|
| + }, 'Inserting a custom element into a detached shadow tree that belongs to a ' + documentName + ' must not enqueue and invoke connectedCallback');
|
| +});
|
| +
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|