diff --git a/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini
index 35fe4fd6e0d..282ab0b2525 100644
--- a/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini
+++ b/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini
@@ -14,6 +14,3 @@
[Opening a blob URL in a new window by clicking an tag works immediately before revoking the URL.]
expected: TIMEOUT
-
- [Fetching a blob URL immediately before revoking it works in
-
-
-
diff --git a/tests/wpt/tests/IndexedDB/fire-success-event-exception.html b/tests/wpt/tests/IndexedDB/fire-success-event-exception.any.js
similarity index 58%
rename from tests/wpt/tests/IndexedDB/fire-success-event-exception.html
rename to tests/wpt/tests/IndexedDB/fire-success-event-exception.any.js
index eaff1b962a0..bd757ea6b1f 100644
--- a/tests/wpt/tests/IndexedDB/fire-success-event-exception.html
+++ b/tests/wpt/tests/IndexedDB/fire-success-event-exception.any.js
@@ -1,29 +1,29 @@
-
-
-Call us
Call us
+
+
+
+Elements with implicit button, heading, link roles containing element with implicit term role
+
+this is an example
+this is an example
+
+
Test passes if there is a filled green square and no red.
+Test passes if there is a filled green square and no red.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square and no red.
+ + diff --git a/tests/wpt/tests/css/css-overflow/content-change-then-scroll-into-view.html b/tests/wpt/tests/css/css-overflow/content-change-then-scroll-into-view.html new file mode 100644 index 00000000000..ec8836d5cb9 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/content-change-then-scroll-into-view.html @@ -0,0 +1,22 @@ + + + + + + +Test passes if there is a filled green square and no red.
+Test passes if there is a filled green square.
+ +Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+Test passes if there is a filled green square.
+You should see a cyan colored rectangle.
+ + + + + + diff --git a/tests/wpt/tests/css/filter-effects/fecolormatrix-negative.html b/tests/wpt/tests/css/filter-effects/fecolormatrix-negative.html new file mode 100644 index 00000000000..eddec862154 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/fecolormatrix-negative.html @@ -0,0 +1,35 @@ + + + +You should see a cyan colored rectangle.
+ + + + + + diff --git a/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-importNode.tentative.html b/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-importNode.tentative.html new file mode 100644 index 00000000000..dc5ef24bd80 --- /dev/null +++ b/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-importNode.tentative.html @@ -0,0 +1,82 @@ + + + +Was successfully moved"); -}, "Moving a node from a disconnected container to a disconnected new parent succeeds"); +}, "Moving a node from a disconnected container to a disconnected new parent in the same tree succeeds"); + +test(() => { + const disconnectedOrigin = document.createElement('div'); + const disconnectedHost = disconnectedOrigin.appendChild(document.createElement('div')); + const p = disconnectedOrigin.appendChild(document.createElement('p')); + const shadow = disconnectedHost.attachShadow({mode: "closed"}); + const disconnectedDestination = shadow.appendChild(document.createElement('div')); + + disconnectedDestination.moveBefore(p, null); + + assert_equals(disconnectedDestination.firstChild, p, "
Was successfully moved"); +}, "Moving a node from a disconnected container to a disconnected new parent in the same tree succeeds," + + "also across shadow-roots"); test(() => { const disconnectedOrigin = document.createElement('div'); @@ -275,7 +309,7 @@ promise_test(async t => { }); const oldParent = document.createElement('div'); - const newParent = document.createElement('div'); + const newParent = oldParent.appendChild(document.createElement('div')); const element = oldParent.appendChild(document.createElement(element_name)); t.add_cleanup(() => { element.remove(); diff --git a/tests/wpt/tests/dom/observable/tentative/observable-inspect.any.js b/tests/wpt/tests/dom/observable/tentative/observable-inspect.any.js index 2b67dd9f3d3..24a7a5c8d48 100644 --- a/tests/wpt/tests/dom/observable/tentative/observable-inspect.any.js +++ b/tests/wpt/tests/dom/observable/tentative/observable-inspect.any.js @@ -20,20 +20,20 @@ test(() => { results.push(`inspect() subscribe ${inspectSubscribeCall}`); }, next: (value) => results.push(`inspect() next ${value}`), - error: (e) => results.push(`inspect() error ${e.message}`), - complete: () => results.push(`inspect() complete`), + error: () => results.push('inspect() error'), + complete: () => results.push('inspect() complete'), }); result.subscribe({ next: (value) => results.push(`result next ${value}`), - error: (e) => results.push(`result error ${e.message}`), - complete: () => results.push(`result complete`), + error: () => results.push('result error'), + complete: () => results.push('result complete'), }); result.subscribe({ next: (value) => results.push(`result next ${value}`), - error: (e) => results.push(`result error ${e.message}`), - complete: () => results.push(`result complete`), + error: () => results.push('result error'), + complete: () => results.push('result complete'), }); assert_array_equals(results, @@ -267,21 +267,22 @@ test(() => { test(() => { const source = new Observable(subscriber => {}); + const error = new Error("error from do subscribe handler"); const result = source.inspect({ subscribe: () => { - throw new Error("error from do subscribe handler"); + throw error; }, }); const results = []; result.subscribe({ next: () => results.push("next"), - error: (e) => results.push(e.message), + error: (e) => results.push(e), complete: () => results.push("complete"), }); - assert_array_equals(results, ["error from do subscribe handler"]); + assert_array_equals(results, [error]); }, "inspect(): Errors thrown in subscribe() Inspector handler subscribe " + "handler are caught and sent to error callback"); @@ -306,7 +307,7 @@ test(() => { results.push(`inspect() abort ${doUnsubscribeCall} ${reason}`); }, next: (value) => results.push(`inspect() next ${value}`), - error: (e) => results.push(`inspect() error ${e.message}`), + error: () => results.push('inspect() error'), complete: () => results.push(`inspect() complete`), }); @@ -318,7 +319,7 @@ test(() => { controller.abort("abort reason"); } }, - error: (e) => results.push(`result error ${e.message}`), + error: () => results.push('result error'), complete: () => results.push(`result complete`), }, { signal: controller.signal }); @@ -381,32 +382,39 @@ test(() => { }); const results = []; + const error = new Error("error from inspect() subscribe handler"); const result = source.inspect({ abort: () => { - results.push('abort() handler run'); - throw new Error("error from inspect() subscribe handler"); + results.push("abort() handler run"); + throw error; }, }); const controller = new AbortController(); - self.when('error').take(1).subscribe(e => - results.push(e.message + ', from report exception')); + self.when("error").take(1).subscribe((e) => { + results.push("from report exception"); + results.push(e.error); + }); result.subscribe({ next: (value) => { results.push(value); controller.abort(); }, - // This should not be invoked at all!! - error: (e) => results.push(e.message + ', from Observer#error()'), + error: () => { + assert_unreached("This should not be invoked at all!!"); + }, complete: () => results.push("complete"), - }, {signal: controller.signal}); + }, { signal: controller.signal }); - assert_array_equals(results, [1, "abort() handler run", - "Uncaught Error: error from inspect() subscribe handler, from report " + - "exception"]); + assert_array_equals(results, [ + 1, + "abort() handler run", + "from report exception", + error, + ]); }, "inspect(): Errors thrown from inspect()'s abort() handler are caught " + "and reported to the global, because the subscription is already closed " + "by the time the handler runs"); diff --git a/tests/wpt/tests/dom/observable/tentative/observable-reduce.any.js b/tests/wpt/tests/dom/observable/tentative/observable-reduce.any.js index 7c54aa1e8ff..18f91e34fca 100644 --- a/tests/wpt/tests/dom/observable/tentative/observable-reduce.any.js +++ b/tests/wpt/tests/dom/observable/tentative/observable-reduce.any.js @@ -1,4 +1,4 @@ -promise_test(async t => { +promise_test(async (t) => { const source = new Observable(subscriber => { subscriber.next(1); subscriber.next(2); @@ -24,24 +24,17 @@ promise_test(async t => { }, "reduce(): Reduces the values of the Observable, starting with the " + "initial seed value"); -promise_test(async () => { +promise_test(async (t) => { let error = new Error('from the source'); const source = new Observable(subscriber => { subscriber.next(1); subscriber.error(error); }); - let thrownError = null; - try { - await source.reduce((acc, value) => acc + value, 0); - } catch (error) { - thrownError = error; - } - - assert_equals(thrownError, error); + return promise_rejects_exactly(t, error, source.reduce((acc, value) => acc + value, 0)); }, "reduce(): Rejects if the source observable emits an error"); -promise_test(async t => { +promise_test(async (t) => { const source = new Observable(subscriber => { subscriber.next(1); subscriber.next(2); @@ -66,7 +59,7 @@ promise_test(async t => { }, "reduce(): Seeds with the first value of the source, if no initial value " + "is provided"); -promise_test(async () => { +promise_test(async (t) => { const logs = []; const source = new Observable(subscriber => { @@ -82,21 +75,16 @@ promise_test(async () => { }); const error = new Error('from the reducer'); - let thrownError = null; - try { - await source.reduce((acc, value) => { - if (value === 2) { - logs.push('throw error'); - throw error; - } - return acc + value; - }, 0); - } catch (error) { - thrownError = error; - } + const promiseToResult = source.reduce((acc, value) => { + if (value === 2) { + logs.push('throw error'); + throw error; + } + return acc + value; + }, 0); - assert_equals(thrownError, error); + await promise_rejects_exactly(t, error, promiseToResult); assert_array_equals(logs, [ 'next 1', @@ -118,7 +106,7 @@ promise_test(async () => { assert_equals(result, 'seed'); }, "reduce(): When source is empty, promise resolves with initial value"); -promise_test(async () => { +promise_test(async (t) => { // This tests behavior that is analogous to `[].reduce(() => 'reduced')`, // which throws a TypeError. @@ -126,18 +114,11 @@ promise_test(async () => { subscriber.complete(); }); - let thrownError = null; - try { - await source.reduce(() => 'reduced'); - } catch (error) { - thrownError = error; - } - - assert_true(thrownError instanceof TypeError); + return promise_rejects_js(t, TypeError, source.reduce(() => 'reduced')); }, "reduce(): When source is empty, AND no seed value is provided, the " + "promise rejects with a TypeError"); -promise_test(async t => { +promise_test(async (t) => { let tornDown = false; const source = new Observable((subscriber) => { subscriber.addTeardown(() => { @@ -153,14 +134,19 @@ promise_test(async t => { assert_true(tornDown); }, 0); - let thrownError = null; - try { - await source.reduce(() => 'reduced', 'seed', { signal: abortController.signal }); - } catch (error) { - thrownError = error; - } - - assert_true(thrownError instanceof DOMException); - assert_equals(thrownError.name, 'AbortError'); + return promise_rejects_dom(t, 'AbortError', source.reduce(() => 'reduced', 'seed', { signal: abortController.signal })); }, "reduce(): Reject with an AbortError if the subscription is aborted " + "before the source completes"); + +promise_test(async () => { + const source = new Observable(subscriber => { + subscriber.complete(); + }); + + const values = [{}, [], new Error("some error")]; + + for (let value of values) { + const result = await source.reduce(() => {}, value); + assert_equals(result, value); + } +}, "reduce(): Reduces the values for different objects"); diff --git a/tests/wpt/tests/editing/data/delete.js b/tests/wpt/tests/editing/data/delete.js index c4d1225ef35..dcb3a6a28df 100644 --- a/tests/wpt/tests/editing/data/delete.js +++ b/tests/wpt/tests/editing/data/delete.js @@ -3101,4 +3101,26 @@ var browserTests = [ "
ab
", [true], {}], +// Delete only firsta |
b |
a |
b |
a | [b | c | d] | e |
a | e |
a | [b | c | d] | e |
---|
a | e |
---|
ab
", [true], {}], +// Delete only firsta |
b |
a |
b |
a | [b | c | d] | e |
a | e |
a | [b | c | d] | e |
---|
a | e |
---|
a | [b | c | d] | e |
a | B | e |
a | [b | c | d] | e |
---|
a | B | e |
---|
a | [b | c | d] | e |
a | B | e |
a | [b | c | d] | e |
---|
a | B | e |
---|
a | [b | c | d] | e |
a | B | e |
a | B | e |
a | [b | c | d] | e |
---|
a | B | e |
---|
a | B | e |
---|