[wpt-sync] Sync PR 44067 - Add more Observable tests.
Categories
(Core :: DOM: Core & HTML, task, P4)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox124 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
(Blocks 1 open bug, )
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 44067 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/44067
Details from upstream follow.
Keith Cirkel <chromium@keithcirkel.co.uk> wrote:
Add more Observable tests.
This change introduces the idl_test for shorthand testing of properties,
and adds some additional tests around the properties in flight:
asserting that readonly properties don't change, that flags are set
correctly, as well as some edge cases such as how it can be observed
thatactiveis false beforesignal.abortedis true. These will
largely help early implementations in other areas (polyfills, browsers).Bug: 1485981
Change-Id: I08f76b3d1bcf567a8991a19d9623d2e743a6e326
Reviewed-on: https://chromium-review.googlesource.com/5211031
WPT-Export-Revision: 9ffcdfcce21f71880e4ba05f6b6fc26b588feb0c
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Comment 1•2 years ago
|
||
| Assignee | ||
Comment 2•2 years ago
|
||
CI Results
Ran 9 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 3 tests and 36 subtests
Status Summary
Firefox
OK : 3
PASS: 2
FAIL: 106
Chrome
OK : 3
PASS: 108
Safari
OK : 3
PASS: 2
FAIL: 106
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
- /dom/observable/tentative/idlharness.html [wpt.fyi]
- Subscriber interface: existence and properties of interface object:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface object length:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface object name:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: existence and properties of interface prototype object:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: existence and properties of interface prototype object's "constructor" property:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: existence and properties of interface prototype object's @@unscopables property:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: operation next(any):
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: operation error(any):
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: operation complete():
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: operation addTeardown(VoidFunction):
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: attribute active:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: attribute signal:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber must be primary interface of (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })():
FAIL(Chrome:PASS, Safari:FAIL) - Stringification of (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })():
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() must inherit property "next(any)" with the proper type:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: calling next(any) on (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() with too few arguments must throw TypeError:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() must inherit property "error(any)" with the proper type:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: calling error(any) on (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() with too few arguments must throw TypeError:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() must inherit property "complete()" with the proper type:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() must inherit property "addTeardown(VoidFunction)" with the proper type:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: calling addTeardown(VoidFunction) on (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() with too few arguments must throw TypeError:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() must inherit property "active" with the proper type:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface: (() => { let s = null; new Observable(_s => s = _s).subscribe({}); return s })() must inherit property "signal" with the proper type:
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface: existence and properties of interface object:
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface object length:
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface object name:
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface: existence and properties of interface prototype object:
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface: existence and properties of interface prototype object's "constructor" property:
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface: existence and properties of interface prototype object's @@unscopables property:
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface: operation subscribe(optional ObserverUnion, optional SubscribeOptions):
FAIL(Chrome:PASS, Safari:FAIL) - Observable must be primary interface of new Observable(() => {}):
FAIL(Chrome:PASS, Safari:FAIL) - Stringification of new Observable(() => {}):
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface: new Observable(() => {}) must inherit property "subscribe(optional ObserverUnion, optional SubscribeOptions)" with the proper type:
FAIL(Chrome:PASS, Safari:FAIL) - Observable interface: calling subscribe(optional ObserverUnion, optional SubscribeOptions) on new Observable(() => {}) with too few arguments must throw TypeError:
FAIL(Chrome:PASS, Safari:FAIL)
- Subscriber interface: existence and properties of interface object:
- /dom/observable/tentative/observable-constructor.any.html [wpt.fyi]
- Observable constructor:
FAIL(Chrome:PASS, Safari:FAIL) - subscribe() can be called with no arguments:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface is not constructible:
FAIL(Chrome:PASS, Safari:FAIL) - Subscribe with just a function as the next handler:
FAIL(Chrome:PASS, Safari:FAIL) - Observable constructor calls initializer on subscribe:
FAIL(Chrome:PASS, Safari:FAIL) - Observable error path called synchronously:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber must have receiver:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber next & error must recieve argument:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber complete() will set active to false, and abort signal:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber active is readonly:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber signal is readonly:
FAIL(Chrome:PASS, Safari:FAIL) - Observable should error if initializer throws:
FAIL(Chrome:PASS, Safari:FAIL) - Subscription is inactive after complete():
FAIL(Chrome:PASS, Safari:FAIL) - Subscription is inactive after error():
FAIL(Chrome:PASS, Safari:FAIL) - Subscription is inactive when aborted signal is passed in:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber#signal is not the same AbortSignal as the one passed into
subscribe():FAIL(Chrome:PASS, Safari:FAIL) - Subscription does not emit values after completion:
FAIL(Chrome:PASS, Safari:FAIL) - Subscription does not emit values after error:
FAIL(Chrome:PASS, Safari:FAIL) - Completing or nexting a subscriber after an error does nothing:
FAIL(Chrome:PASS, Safari:FAIL) - Errors pushed to the subscriber that are not handled by the subscription are reported to the global:
FAIL(Chrome:PASS, Safari:FAIL) - Errors thrown in the initializer that are not handled by the subscription are reported to the global:
FAIL(Chrome:PASS, Safari:FAIL) - Subscription reports errors that are pushed after subscriber is closed by completion:
FAIL(Chrome:PASS, Safari:FAIL) - Errors thrown by initializer function after subscriber is closed by completion are reported:
FAIL(Chrome:PASS, Safari:FAIL) - Errors thrown by initializer function after subscriber is closed by error are reported:
FAIL(Chrome:PASS, Safari:FAIL) - Errors pushed by initializer function after subscriber is closed by error are reported:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber#complete() cannot re-entrantly invoke itself:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber#error() cannot re-entrantly invoke itself:
FAIL(Chrome:PASS, Safari:FAIL) - Unsubscription lifecycle:
FAIL(Chrome:PASS, Safari:FAIL) - Aborting a subscription should stop emitting values:
FAIL(Chrome:PASS, Safari:FAIL) - Calling subscribe should never throw an error synchronously, initializer throws error:
FAIL(Chrome:PASS, Safari:FAIL) - Calling subscribe should never throw an error synchronously, subscriber pushes error:
FAIL(Chrome:PASS, Safari:FAIL) - Teardown should be called when subscription is aborted:
FAIL(Chrome:PASS, Safari:FAIL) - Teardowns should be called when subscription is closed by completion:
FAIL(Chrome:PASS, Safari:FAIL) - Teardowns should be called when subscription is closed by subscriber pushing an error:
FAIL(Chrome:PASS, Safari:FAIL) - Teardowns should be called when subscription is closed by subscriber throwing error:
FAIL(Chrome:PASS, Safari:FAIL) - Teardowns should be called synchronously during addTeardown() if the subscription is inactive:
FAIL(Chrome:PASS, Safari:FAIL)
- Observable constructor:
- /dom/observable/tentative/observable-constructor.any.worker.html [wpt.fyi]
- Observable constructor:
FAIL(Chrome:PASS, Safari:FAIL) - subscribe() can be called with no arguments:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber interface is not constructible:
FAIL(Chrome:PASS, Safari:FAIL) - Subscribe with just a function as the next handler:
FAIL(Chrome:PASS, Safari:FAIL) - Observable constructor calls initializer on subscribe:
FAIL(Chrome:PASS, Safari:FAIL) - Observable error path called synchronously:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber must have receiver:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber next & error must recieve argument:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber complete() will set active to false, and abort signal:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber active is readonly:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber signal is readonly:
FAIL(Chrome:PASS, Safari:FAIL) - Observable should error if initializer throws:
FAIL(Chrome:PASS, Safari:FAIL) - Subscription is inactive after complete():
FAIL(Chrome:PASS, Safari:FAIL) - Subscription is inactive after error():
FAIL(Chrome:PASS, Safari:FAIL) - Subscription is inactive when aborted signal is passed in:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber#signal is not the same AbortSignal as the one passed into
subscribe():FAIL(Chrome:PASS, Safari:FAIL) - Subscription does not emit values after completion:
FAIL(Chrome:PASS, Safari:FAIL) - Subscription does not emit values after error:
FAIL(Chrome:PASS, Safari:FAIL) - Completing or nexting a subscriber after an error does nothing:
FAIL(Chrome:PASS, Safari:FAIL) - Errors pushed to the subscriber that are not handled by the subscription are reported to the global:
FAIL(Chrome:PASS, Safari:FAIL) - Errors thrown in the initializer that are not handled by the subscription are reported to the global:
FAIL(Chrome:PASS, Safari:FAIL) - Subscription reports errors that are pushed after subscriber is closed by completion:
FAIL(Chrome:PASS, Safari:FAIL) - Errors thrown by initializer function after subscriber is closed by completion are reported:
FAIL(Chrome:PASS, Safari:FAIL) - Errors thrown by initializer function after subscriber is closed by error are reported:
FAIL(Chrome:PASS, Safari:FAIL) - Errors pushed by initializer function after subscriber is closed by error are reported:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber#complete() cannot re-entrantly invoke itself:
FAIL(Chrome:PASS, Safari:FAIL) - Subscriber#error() cannot re-entrantly invoke itself:
FAIL(Chrome:PASS, Safari:FAIL) - Unsubscription lifecycle:
FAIL(Chrome:PASS, Safari:FAIL) - Aborting a subscription should stop emitting values:
FAIL(Chrome:PASS, Safari:FAIL) - Calling subscribe should never throw an error synchronously, initializer throws error:
FAIL(Chrome:PASS, Safari:FAIL) - Calling subscribe should never throw an error synchronously, subscriber pushes error:
FAIL(Chrome:PASS, Safari:FAIL) - Teardown should be called when subscription is aborted:
FAIL(Chrome:PASS, Safari:FAIL) - Teardowns should be called when subscription is closed by completion:
FAIL(Chrome:PASS, Safari:FAIL) - Teardowns should be called when subscription is closed by subscriber pushing an error:
FAIL(Chrome:PASS, Safari:FAIL) - Teardowns should be called when subscription is closed by subscriber throwing error:
FAIL(Chrome:PASS, Safari:FAIL) - Teardowns should be called synchronously during addTeardown() if the subscription is inactive:
FAIL(Chrome:PASS, Safari:FAIL)
- Observable constructor:
Comment 4•2 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/89bd201a0907
https://hg.mozilla.org/mozilla-central/rev/6ae6b80de053
Description
•