Index: third_party/WebKit/LayoutTests/custom-elements/spec/custom-elements-registry/when_defined.html |
diff --git a/third_party/WebKit/LayoutTests/custom-elements/spec/custom-elements-registry/get.html b/third_party/WebKit/LayoutTests/custom-elements/spec/custom-elements-registry/when_defined.html |
similarity index 51% |
copy from third_party/WebKit/LayoutTests/custom-elements/spec/custom-elements-registry/get.html |
copy to third_party/WebKit/LayoutTests/custom-elements/spec/custom-elements-registry/when_defined.html |
index da310db308dea24ae654b3e9e898b6f2384b5911..5e48c1f232721a570170b9e15f3c1e23ab7ba55e 100644 |
--- a/third_party/WebKit/LayoutTests/custom-elements/spec/custom-elements-registry/get.html |
+++ b/third_party/WebKit/LayoutTests/custom-elements/spec/custom-elements-registry/when_defined.html |
@@ -1,9 +1,5 @@ |
<!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: CustomElementsRegistry.get</title> |
+<title>Custom Elements: CustomElementsRegistry.whenDefined</title> |
<script src="../../../resources/testharness.js"></script> |
<script src="../../../resources/testharnessreport.js"></script> |
<body> |
@@ -20,24 +16,27 @@ This file is taken from https://github.com/kojiishi/web-platform-tests/blob/5390 |
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'); |
+ if (!('whenDefined' in customElements)) |
+ return Promise.reject('This test requires window.customElements.whenDefined'); |
return Promise.resolve(customElements); |
} |
+ const kNameToBeDefined = 'x-foo'; |
+ const kNameNotDefined = 'x-bar'; |
+ let beforeDefined = false; |
+ let notDefined = true; |
+ let afterDefined = false; |
promise_test(() => setup() |
.then(customElements => { |
- // 1. If this CustomElementsRegistry 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); |
+ customElements.whenDefined(kNameToBeDefined).then(() => beforeDefined = true); |
+ customElements.whenDefined(kNameNotDefined).then(() => notDefined = false); |
+ customElements.define(kNameToBeDefined, class {}); |
+ customElements.whenDefined(kNameToBeDefined).then(() => afterDefined = true); |
+ return customElements; |
}).then(customElements => { |
- // 2. Otherwise, return undefined. |
- assert_equals(customElements.get('test-get-not-defined'), undefined, |
- 'get() returns undefined for not-defined name'); |
+ assert_true(beforeDefined, 'promise before defined should be resolved.'); |
+ assert_true(afterDefined, 'promise after defined should be resolved.'); |
+ assert_true(notDefined, 'promise for not defined name should not be resolved.'); |
}).catch(reason => { throw reason })); |
dominicc (has gone to gerrit)
2016/06/10 06:20:57
I think the spec additionally requires that the sa
yosin_UTC9
2016/06/10 07:52:28
Here is summary:
- After defined: spec says whenD
|
})(); |
</script> |