Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(705)

Unified Diff: third_party/WebKit/LayoutTests/imported/wpt/custom-elements/custom-elements-registry/define.html

Issue 2022203002: Import wpt@d510ec1abc30eee4c855c13842bc2f0dfa791f8b (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Message changed by testharness.js update Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/imported/wpt/custom-elements/custom-elements-registry/define.html
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/custom-elements-registry/define.html b/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/custom-elements-registry/define.html
index b4f15063e0ec0d17341925e43ff459c339763481..d0d65820c9a25d315e702c3218cd66fc095912bd 100644
--- a/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/custom-elements-registry/define.html
+++ b/third_party/WebKit/LayoutTests/imported/wpt/custom-elements/custom-elements-registry/define.html
@@ -161,7 +161,14 @@
// 8. Let observedAttributesIterable be Get(constructor, "observedAttributes").
// Rethrow any exceptions.
- // See step 12 for rethrow tests.
+ test(() => {
+ class C {
+ static get observedAttributes() { throw_rethrown_error(); }
+ }
+ assert_rethrown(() => {
+ customElements.define('test-define-observedattributes-rethrow', C);
+ });
+ }, 'If constructor.observedAttributes throws, should rethrow');
// 10. Let prototype be Get(constructor, "prototype"). Rethrow any exceptions.
function assert_rethrown(func, description) {
@@ -208,42 +215,38 @@
// 17. If attributeChangedCallback is not undefined, and IsCallable(attributeChangedCallback) is false,
// then throw a TypeError exception.
[
- 'observedAttributes', // See step 8 above.
'connectedCallback',
'disconnectedCallback',
'attributeChangedCallback',
- ].forEach(name => {
- test(() => {
+ ].forEach(name => {
+ test(() => {
class C {
get [name]() { throw_rethrown_error(); }
}
- assert_rethrown(() => {
- customElements.define('test-define-constructor-rethrow-prototype-' + name, C);
+ assert_rethrown(() => {
+ customElements.define(`test-define-${name.toLowerCase()}-rethrow`, C);
});
}, `If constructor.prototype.${name} throws, should rethrow`);
- });
- [
- 'connectedCallback',
- 'disconnectedCallback',
- 'attributeChangedCallback',
- ].forEach(name => {
- test(() => {
- class c {};
- c.prototype[name] = undefined;
- customElements.define('test-define-constructor-prototype-' + name, c);
- }, `If constructor.prototype.${name} is undefined, should success`);
+
[
- [ 'null', null ],
- [ 'object', {} ],
- ].forEach(value => {
- test(() => {
- class c {};
- c.prototype[name] = value[1];
- assert_throws(expectTypeError, () => {
- customElements.define('test-define-constructor-prototype-' + name, c);
- });
- }, `If constructor.prototype.${name} is ${value[0]}, should throw a TypeError`);
- })
+ { name: 'undefined', value: undefined, success: true },
+ { name: 'function', value: function () { }, success: true },
+ { name: 'null', value: null, success: false },
+ { name: 'object', value: {}, success: false },
+ { name: 'integer', value: 1, success: false },
+ ].forEach(data => {
+ test(() => {
+ class C { };
+ C.prototype[name] = data.value;
+ if (data.success) {
+ customElements.define(`test-define-${name.toLowerCase()}-${data.name}`, C);
+ } else {
+ assert_throws(expectTypeError, () => {
+ customElements.define(`test-define-${name.toLowerCase()}-${data.name}`, C);
+ });
+ }
+ }, `If constructor.prototype.${name} is ${data.name}, should ${data.success ? 'succeed' : 'throw a TypeError'}`);
+ });
});
})();
</script>

Powered by Google App Engine
This is Rietveld 408576698