diff options
53 files changed, 323 insertions, 354 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini deleted file mode 100644 index 4bfb0c2053a..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-004.html] - [Miss float below something else] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini index e35a452a186..70a00a101f6 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini @@ -1,2 +1,2 @@ [no-transition-from-ua-to-blocking-stylesheet.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini index 338baf702a2..fc4e1b87fbd 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini @@ -44,12 +44,6 @@ [vertical-align length(in) / values] expected: FAIL - [right length(pc) / values] - expected: FAIL - - [top length(pt) / values] - expected: FAIL - [max-height percentage(%) / values] expected: FAIL @@ -68,9 +62,6 @@ [border-right-color color(rgba) / values] expected: FAIL - [top length(pc) / values] - expected: FAIL - [font-size length(ex) / values] expected: FAIL @@ -131,9 +122,6 @@ [border-top-width length(cm) / values] expected: FAIL - [right length(px) / values] - expected: FAIL - [max-width length(em) / values] expected: FAIL @@ -146,9 +134,6 @@ [border-right-width length(cm) / values] expected: FAIL - [top length(px) / values] - expected: FAIL - [outline-offset length(ex) / values] expected: FAIL @@ -179,9 +164,6 @@ [min-height percentage(%) / values] expected: FAIL - [top percentage(%) / values] - expected: FAIL - [max-height length(pt) / values] expected: FAIL @@ -245,9 +227,6 @@ [line-height length(pt) / values] expected: FAIL - [top length(em) / values] - expected: FAIL - [border-top-width length(px) / values] expected: FAIL @@ -293,9 +272,6 @@ [background-position length(cm) / values] expected: FAIL - [top length(in) / values] - expected: FAIL - [line-height length(em) / values] expected: FAIL @@ -386,9 +362,6 @@ [min-width length(in) / values] expected: FAIL - [top length(cm) / values] - expected: FAIL - [outline-width length(cm) / values] expected: FAIL @@ -398,9 +371,6 @@ [max-width length(ex) / values] expected: FAIL - [top length(mm) / values] - expected: FAIL - [letter-spacing length(ex) / values] expected: FAIL @@ -455,9 +425,6 @@ [max-height length(cm) / values] expected: FAIL - [top length(ex) / values] - expected: FAIL - [outline-width length(em) / values] expected: FAIL @@ -503,9 +470,6 @@ [line-height length(pc) / values] expected: FAIL - [right length(pt) / values] - expected: FAIL - [background-position length(em) / values] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini index c884dc82eab..628b1fab770 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini @@ -2,6 +2,3 @@ [listeners are called when <iframe> is resized] expected: FAIL - [listeners are called correct number of times] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini index 23c61ede1a1..c131078eace 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini @@ -17,6 +17,3 @@ [test the top of layer] expected: FAIL - [test some point of the element: top left corner] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html.ini index 11b0ecce267..53d30b9ab6a 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html.ini @@ -2,3 +2,12 @@ [replace / replaceSync on non-constructed stylesheet] expected: FAIL + [CSSStyleSheet.replace returns a rejected promise for non-constructed sheets] + expected: FAIL + + [CSSStyleSheet.replace returns a rejected promise for non-constructed sheets that have no associated document] + expected: FAIL + + [CSSStyleSheet.replaceSync throws NotAllowedError for non-constructed sheets] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini index 75d0a21d9dd..08438e7bc14 100644 --- a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini @@ -312,24 +312,24 @@ [Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] expected: NOTRUN - [<iframe>: combined response Content-Type: text/html;" text/plain] + [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html;" text/plain] + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + [<iframe>: combined response Content-Type: */* text/html] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html */*] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + [<iframe>: separate response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html;x=" text/plain] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini index a63e414f43a..ce73518c20a 100644 --- a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,6 +11,9 @@ [X-Content-Type-Options%3A%20nosniff%0C] expected: FAIL - [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] + [X-Content-Type-Options%3A%20'NosniFF'] + expected: FAIL + + [X-Content-Type-Options%3A%20%2Cnosniff] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index 295031c1812..ab43ed7acf4 100644 --- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,5 +1,5 @@ [iframe_sandbox_popups_escaping-3.html] - expected: TIMEOUT + expected: CRASH [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini index 450c88bd32b..dbec6f2c2ff 100644 --- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini +++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini @@ -3,6 +3,3 @@ [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] expected: TIMEOUT - [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini index 5ddb9bfeff6..a1effd5f801 100644 --- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini +++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini @@ -1,10 +1,9 @@ [promise-job-entry.html] - expected: TIMEOUT [Fulfillment handler on fulfilled promise] expected: FAIL [Rejection handler on pending-then-rejected promise] - expected: TIMEOUT + expected: FAIL [Sanity check: this all works as expected with no promises involved] expected: FAIL @@ -16,5 +15,5 @@ expected: FAIL [Fulfillment handler on pending-then-fulfilled promise] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini index 939fce46e68..6ea489cbc23 100644 --- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini +++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini @@ -101,3 +101,6 @@ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 40530 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 29020.\n\t[29020\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n] expected: FAIL + [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 37006 more errors.\n\tMax AbsError of 1.9999977350234985e+0 at index of 34616.\n\t[34616\]\t9.9999773502349854e-1\t-1.0000000000000000e+0\t1.9999977350234985e+0\t1.9999977350234985e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/webdriver/tests/interface/interface.py.ini b/tests/wpt/metadata-layout-2020/webdriver/tests/interface/interface.py.ini new file mode 100644 index 00000000000..568334a6fb6 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/webdriver/tests/interface/interface.py.ini @@ -0,0 +1,4 @@ +[interface.py] + [test_navigator_webdriver_active] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/workers/WorkerGlobalScope-close.html.ini b/tests/wpt/metadata-layout-2020/workers/WorkerGlobalScope-close.html.ini new file mode 100644 index 00000000000..fe8654e447c --- /dev/null +++ b/tests/wpt/metadata-layout-2020/workers/WorkerGlobalScope-close.html.ini @@ -0,0 +1,4 @@ +[WorkerGlobalScope-close.html] + [Test sending a message after closing.] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini deleted file mode 100644 index 80f9a4f15b8..00000000000 --- a/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[Worker-constructor.html] - expected: ERROR diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 9056496675b..917c2c4076b 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -19989,7 +19989,7 @@ ] ], "pservers-grad-08-b-manual.svg": [ - "654ec8d409b5a11b86036b428b65def3adbfba26", + "ba7413e2c5f9f0c6a587816beddac7985566a9a9", [ null, {} @@ -21109,7 +21109,7 @@ ] ], "text-altglyph-01-b-manual.svg": [ - "db208cea587322b977eb0c81edc5d38451c3da56", + "85a31a18a2957d8c6c5904cb375b53ec490899f5", [ null, {} @@ -315174,7 +315174,7 @@ [] ], "custom.css": [ - "a5f59ce7721cce73cc79dd69bff68ef8afe14e9a", + "58a982579f06c2c7093e4847a64d91c9722dd946", [] ], "files-changed.png": [ @@ -315368,7 +315368,7 @@ [] ], "making-a-testing-plan.md": [ - "0f5673016c0502edc11c915ee64b4901ed384c23", + "520c5a32e0705e9a692a96f2e6ac998a191acf4b", [] ], "manual.md": [ @@ -333464,7 +333464,7 @@ ], "resources": { "orientation-event-helpers.js": [ - "528dfa9a7a057324b07cfda37dd454b48c43ff0e", + "3168b71c5ec6476f4120ea2e59d00cb371e40596", [] ] } @@ -341083,7 +341083,7 @@ [] ], "safari-technology-preview.rb": [ - "d58664c5b6c67e32c63f1d122625a56211371511", + "6afe1c188f9f290699605b66762eaaadd0020011", [] ], "system_info.yml": [ @@ -394003,7 +394003,14 @@ {} ] ] - } + }, + "ruby-position.html": [ + "981a40531a983dd8c1dd27b875874f15232df6ba", + [ + null, + {} + ] + ] }, "css-scoping": { "css-scoping-shadow-dynamic-remove-style-detached.html": [ @@ -404604,7 +404611,7 @@ ] ], "CSSStyleSheet-constructable-replace-on-regular-sheet.html": [ - "d059258d90a64ac7dee02a14d92c677afe3fdb47", + "5ce0cbee97a2a1593018089f9252870bdb47587b", [ null, {} @@ -469207,7 +469214,7 @@ ] ], "device-orientation-events-unavailable-on-insecure-origins.html": [ - "3af5e9241778694dc36e5bbf70fce1326e6e7adf", + "571a388f64495e61b8f0eb846e03b226ce007d9f", [ null, { @@ -469240,7 +469247,7 @@ ], "motion": { "add-during-dispatch.https.html": [ - "d40b557a2d6f09f2fa04291ddbca859dc4a3d1d1", + "3a895b9d0969ab1c8a77509ab29d2bd8071d372e", [ null, { @@ -469249,7 +469256,7 @@ ] ], "add-listener-from-callback.https.html": [ - "11f2695794c8e1d75f8a30031f2a38c9155252ed", + "0803d7cc9bfa8951cbce39dad8c2b63ed713956b", [ null, { @@ -469265,7 +469272,7 @@ ] ], "multiple-event-listeners.https.html": [ - "ad851eec2919ed04b23c93a43221bcb5acefc023", + "207fdd2d9c00b5998601508e33911002697026c0", [ null, { @@ -469274,7 +469281,7 @@ ] ], "null-values.https.html": [ - "4da64c0c9e85b87505c78b136435b42f546bc995", + "a6035543ba457fd701f40f89ccacf32f8a0b503e", [ null, { @@ -469292,7 +469299,7 @@ }, "orientation": { "absolute-fallback.https.html": [ - "de0770a9f75c0ad92c503f636f4cf9c8105fc465", + "835d2441b358a1ba3aa3013838b19c3aac531d1f", [ null, { @@ -469301,7 +469308,7 @@ ] ], "add-listener-from-callback.https.html": [ - "040e2a2f5d117eec2f9da811b2327ea5fd368b49", + "8f8cfa29c4f948cc926829a48d0d89516dbb26e5", [ null, { @@ -469310,7 +469317,7 @@ ] ], "basic-operation-absolute.https.html": [ - "bc35e1498f45e0fadc41ccb0948abf012414cd27", + "05ac82cd35f3e373c3590a71bc2541d4dba4897f", [ null, { @@ -469319,7 +469326,7 @@ ] ], "basic-operation.https.html": [ - "eb57d141b35bb4b9e64b7b3dc2efc6ec32973da4", + "3806ee0792aeba94e639dddb06b40a9db76bd2f7", [ null, { @@ -469334,15 +469341,8 @@ {} ] ], - "deviceorientationabsoluteevent.https.html": [ - "e63783f6cf479f38504bb04bcc947a08ee34c8b3", - [ - null, - {} - ] - ], "multiple-event-listeners.https.html": [ - "3a8add23c947cba88fc66a1fabf3e955f5578fd5", + "13d05f0c745fa0930b74c707ac9381005d4910ba", [ null, { @@ -469360,7 +469360,7 @@ ] ], "null-values.https.html": [ - "df18f35c6cacf9fc1e090c8ff071a0fb1175ef07", + "55039ea2763bbb182b8aaf3ad68904dfa7a90619", [ null, { @@ -469376,7 +469376,7 @@ ] ], "updates.https.html": [ - "09472e6b419e8a2f772ae9d399b15b3352c2d868", + "de203da0a3af07d6b1d82c5550f8224562c623f2", [ null, { @@ -545085,6 +545085,15 @@ ] ] }, + "interface": { + "interface.py": [ + "6a7afcd26358aaad3779a912fd4bc00a66ca9571", + [ + null, + {} + ] + ] + }, "is_element_enabled": { "enabled.py": [ "dd56084d8d0eca15b7b6d46491bbd9f0a64cef40", diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini deleted file mode 100644 index 4bfb0c2053a..00000000000 --- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-004.html] - [Miss float below something else] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini index e35a452a186..70a00a101f6 100644 --- a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini +++ b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini @@ -1,2 +1,2 @@ [no-transition-from-ua-to-blocking-stylesheet.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini index 2dffa903119..42f61e8ed49 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini @@ -509,39 +509,3 @@ [border-left-width length(pt) / values] expected: FAIL - [right length(pc) / values] - expected: FAIL - - [top length(pt) / values] - expected: FAIL - - [top length(pc) / values] - expected: FAIL - - [right length(px) / values] - expected: FAIL - - [top length(px) / values] - expected: FAIL - - [top percentage(%) / values] - expected: FAIL - - [top length(em) / values] - expected: FAIL - - [top length(in) / values] - expected: FAIL - - [top length(cm) / values] - expected: FAIL - - [top length(mm) / values] - expected: FAIL - - [top length(ex) / values] - expected: FAIL - - [right length(pt) / values] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini index c884dc82eab..628b1fab770 100644 --- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini +++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini @@ -2,6 +2,3 @@ [listeners are called when <iframe> is resized] expected: FAIL - [listeners are called correct number of times] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini index 5733d536fd3..85e94926cb3 100644 --- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini @@ -21,6 +21,3 @@ [test the top of layer] expected: FAIL - [test some point of the element: top left corner] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html.ini b/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html.ini index 11b0ecce267..53d30b9ab6a 100644 --- a/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html.ini +++ b/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html.ini @@ -2,3 +2,12 @@ [replace / replaceSync on non-constructed stylesheet] expected: FAIL + [CSSStyleSheet.replace returns a rejected promise for non-constructed sheets] + expected: FAIL + + [CSSStyleSheet.replace returns a rejected promise for non-constructed sheets that have no associated document] + expected: FAIL + + [CSSStyleSheet.replaceSync throws NotAllowedError for non-constructed sheets] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 221f0bc51f8..b588c5c2232 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,24 +312,24 @@ [fetch(): separate response Content-Type: text/plain ] expected: NOTRUN - [<iframe>: combined response Content-Type: text/html;" text/plain] + [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html;" text/plain] + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + [<iframe>: combined response Content-Type: */* text/html] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html */*] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + [<iframe>: separate response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html;x=" text/plain] expected: FAIL diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini index 61682d248e2..fb2658740e2 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,6 +11,9 @@ [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] expected: FAIL - [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] + [X-Content-Type-Options%3A%20'NosniFF'] + expected: FAIL + + [X-Content-Type-Options%3A%20%2Cnosniff] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index 5f60c78e73c..b3bd9f4c289 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,6 +1,6 @@ [iframe_sandbox_popups_escaping-3.html] type: testharness - expected: TIMEOUT + expected: CRASH [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: TIMEOUT diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini index 01f7b72cbe7..0cef5158fae 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini @@ -4,6 +4,3 @@ [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] expected: TIMEOUT - [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] - expected: FAIL - diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini index 5ddb9bfeff6..a1effd5f801 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini @@ -1,10 +1,9 @@ [promise-job-entry.html] - expected: TIMEOUT [Fulfillment handler on fulfilled promise] expected: FAIL [Rejection handler on pending-then-rejected promise] - expected: TIMEOUT + expected: FAIL [Sanity check: this all works as expected with no promises involved] expected: FAIL @@ -16,5 +15,5 @@ expected: FAIL [Fulfillment handler on pending-then-fulfilled promise] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini index fb97f37983e..6a74a3102ba 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini @@ -170,3 +170,6 @@ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 40530 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 29020.\n\t[29020\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n] expected: FAIL + [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 37006 more errors.\n\tMax AbsError of 1.9999977350234985e+0 at index of 34616.\n\t[34616\]\t9.9999773502349854e-1\t-1.0000000000000000e+0\t1.9999977350234985e+0\t1.9999977350234985e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n] + expected: FAIL + diff --git a/tests/wpt/metadata/webdriver/tests/interface/interface.py.ini b/tests/wpt/metadata/webdriver/tests/interface/interface.py.ini new file mode 100644 index 00000000000..568334a6fb6 --- /dev/null +++ b/tests/wpt/metadata/webdriver/tests/interface/interface.py.ini @@ -0,0 +1,4 @@ +[interface.py] + [test_navigator_webdriver_active] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini b/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini new file mode 100644 index 00000000000..fe8654e447c --- /dev/null +++ b/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini @@ -0,0 +1,4 @@ +[WorkerGlobalScope-close.html] + [Test sending a message after closing.] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini deleted file mode 100644 index 80f9a4f15b8..00000000000 --- a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[Worker-constructor.html] - expected: ERROR diff --git a/tests/wpt/web-platform-tests/css/css-ruby/ruby-position.html b/tests/wpt/web-platform-tests/css/css-ruby/ruby-position.html new file mode 100644 index 00000000000..981a40531a9 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-ruby/ruby-position.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-ruby/#rubypos"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> + +<p><ruby id="o1" style="ruby-position: over">base<rt>annotation</rt></ruby></p> +<p><ruby id="o2" style="ruby-position: under">base<rt style="ruby-position: over">annotation</rt></ruby></p> + +<p><ruby id="u1" style="ruby-position: under">base<rt>annotation</rt></ruby></p> +<p><ruby id="u2">base<rt style="ruby-position: under">annotation</rt></ruby></p> + +<script> +test(() => { + const o1 = document.querySelector('#o1'); + assert_true(o1.querySelector('rt').getBoundingClientRect().top <= o1.getBoundingClientRect().top); +}, 'ruby-position:over on <ruby> works'); + +test(() => { + const o2 = document.querySelector('#o2'); + assert_true(o2.querySelector('rt').getBoundingClientRect().top <= o2.getBoundingClientRect().top); +}, 'ruby-position:over on <rt> works'); + +test(() => { + const u1 = document.querySelector('#u1'); + assert_true(u1.querySelector('rt').getBoundingClientRect().bottom >= u1.getBoundingClientRect().bottom); +}, 'ruby-position:under on <ruby> works'); + +test(() => { + const u2 = document.querySelector('#u2'); + assert_true(u2.querySelector('rt').getBoundingClientRect().bottom >= u2.getBoundingClientRect().bottom); +}, 'ruby-position:under on <rt> works'); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html index d059258d90a..5ce0cbee97a 100644 --- a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html +++ b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-replace-on-regular-sheet.html @@ -4,15 +4,29 @@ <link rel="help" href="https://wicg.github.io/construct-stylesheets/"> <script src = '/resources/testharness.js'></script> <script src = '/resources/testharnessreport.js'></script> -<style>:root { background-color: lime }</style> +<style id="style">:root { background-color: lime }</style> <script> -promise_test(async function(t) { + +test(() => { assert_equals(getComputedStyle(document.documentElement).backgroundColor, "rgb(0, 255, 0)", "precondition") let sheet = document.styleSheets[0]; assert_throws_dom("NotAllowedError", () => sheet.replaceSync(":root { background-color: red }"), "replaceSync on non-constructed sheet should throw"); assert_equals(getComputedStyle(document.documentElement).backgroundColor, "rgb(0, 255, 0)", "old sheet should still apply after replace"); +}, "CSSStyleSheet.replaceSync throws NotAllowedError for non-constructed sheets") + +promise_test(async function(t) { + assert_equals(getComputedStyle(document.documentElement).backgroundColor, "rgb(0, 255, 0)", "precondition") + let sheet = document.styleSheets[0]; + await promise_rejects_dom(t, "NotAllowedError", sheet.replace(":root { background-color: red }"), "replace on non-constructed sheet should return a rejected promise"); + assert_equals(getComputedStyle(document.documentElement).backgroundColor, "rgb(0, 255, 0)", "old sheet should still apply after replace"); +}, "CSSStyleSheet.replace returns a rejected promise for non-constructed sheets") +promise_test(async function(t) { + assert_equals(getComputedStyle(document.documentElement).backgroundColor, "rgb(0, 255, 0)", "precondition") + let sheet = document.styleSheets[0]; + style.remove() // sheet's associated document becomes null. await promise_rejects_dom(t, "NotAllowedError", sheet.replace(":root { background-color: red }"), "replace on non-constructed sheet should return a rejected promise"); assert_equals(getComputedStyle(document.documentElement).backgroundColor, "rgb(0, 255, 0)", "old sheet should still apply after replace"); -}); +}, "CSSStyleSheet.replace returns a rejected promise for non-constructed sheets that have no associated document") + </script> diff --git a/tests/wpt/web-platform-tests/docs/assets/custom.css b/tests/wpt/web-platform-tests/docs/assets/custom.css index a5f59ce7721..58a982579f0 100644 --- a/tests/wpt/web-platform-tests/docs/assets/custom.css +++ b/tests/wpt/web-platform-tests/docs/assets/custom.css @@ -4,4 +4,8 @@ div.body { #video-introduction-transcript iframe { max-width: 100%; +} + +.table-container { + overflow: auto; }
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/making-a-testing-plan.md b/tests/wpt/web-platform-tests/docs/writing-tests/making-a-testing-plan.md index 0f5673016c0..520c5a32e07 100644 --- a/tests/wpt/web-platform-tests/docs/writing-tests/making-a-testing-plan.md +++ b/tests/wpt/web-platform-tests/docs/writing-tests/making-a-testing-plan.md @@ -482,6 +482,8 @@ use [git](https://git-scm.com) to perform more powerful searches. The following table lists some common search criteria and examples of how they can be expressed using regular expressions: +<div class="table-container"> + ```eval_rst ================================= ================== ========================== Criteria Example match Example regular expression @@ -494,6 +496,8 @@ CSS property name ``style="foo: 4"`` ``([{;=\"']|\s|^)foo\s+:`` ================================= ================== ========================== ``` +</div> + Bear in mind that searches like this are not necessarily exhaustive. Depending on the feature, it may be difficult (or even impossible) to write a query that correctly identifies all relevant tests. This strategy can give a helpful diff --git a/tests/wpt/web-platform-tests/orientation-event/device-orientation-events-unavailable-on-insecure-origins.html b/tests/wpt/web-platform-tests/orientation-event/device-orientation-events-unavailable-on-insecure-origins.html index 3af5e924177..571a388f644 100644 --- a/tests/wpt/web-platform-tests/orientation-event/device-orientation-events-unavailable-on-insecure-origins.html +++ b/tests/wpt/web-platform-tests/orientation-event/device-orientation-events-unavailable-on-insecure-origins.html @@ -8,15 +8,6 @@ <script src="resources/orientation-event-helpers.js"></script> <script> -function waitForLackOfEvent(t, eventName) { - return new Promise(async (resolve, reject) => { - window.addEventListener(eventName, reject); - await new Promise(r => t.step_timeout(r, 1000)); - window.removeEventListener(eventName, reject); - resolve(); - }); -} - if (window.location.origin != get_host_info().HTTP_ORIGIN) { window.location = get_host_info().HTTP_ORIGIN + window.location.pathname; promise_test(_ => new Promise(_ => {}), "Stall tests on the wrong host."); @@ -36,25 +27,29 @@ if (window.location.origin != get_host_info().HTTP_ORIGIN) { const FAKE_ACCELERATION_DATA = [1, 2, 3]; const FAKE_LINEAR_ACCELERATION_DATA = [4, 5, 6]; const FAKE_GYROSCOPE_DATA = [7, 8, 9]; + + window.ondevicemotion = t.unreached_func("devicemotion event should not be fired."); setMockSensorDataForType(sensorProvider, 'Accelerometer', FAKE_ACCELERATION_DATA); setMockSensorDataForType(sensorProvider, 'LinearAccelerationSensor', FAKE_LINEAR_ACCELERATION_DATA); setMockSensorDataForType(sensorProvider, 'Gyroscope', FAKE_GYROSCOPE_DATA); - return waitForLackOfEvent(t, 'devicemotion'); + await new Promise(r => t.step_timeout(r, 1000)); }, 'addEventListener() for `devicemotion` does not crash but the handler never fires.'); sensor_test(async (t, sensorProvider) => { const FAKE_ORIENTATION_DATA = [1.1, 2.2, 3.3]; + window.ondeviceorientation = t.unreached_func("deviceorientation event should not be fired."); setMockSensorDataForType(sensorProvider, 'RelativeOrientationEulerAngles', FAKE_ORIENTATION_DATA); - return waitForLackOfEvent(t, 'deviceorientation'); + await new Promise(r => t.step_timeout(r, 1000)); }, 'addEventListener() for `deviceorientation` does not crash but the handler never fires.'); sensor_test(async (t, sensorProvider) => { const FAKE_ORIENTATION_DATA = [1.1, 2.2, 3.3]; + window.ondeviceorientationabsolute = t.unreached_func("deviceorientationabsolute event should not be fired."); setMockSensorDataForType(sensorProvider, 'AbsoluteOrientationEulerAngles', FAKE_ORIENTATION_DATA); - return waitForLackOfEvent(t, 'deviceorientationabsolute'); + await new Promise(r => t.step_timeout(r, 1000)); }, 'addEventListener() for `deviceorientationabsolute` does not crash but the handler never fires.'); } </script> diff --git a/tests/wpt/web-platform-tests/orientation-event/motion/add-during-dispatch.https.html b/tests/wpt/web-platform-tests/orientation-event/motion/add-during-dispatch.https.html index d40b557a2d6..3a895b9d096 100644 --- a/tests/wpt/web-platform-tests/orientation-event/motion/add-during-dispatch.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/motion/add-during-dispatch.https.html @@ -12,11 +12,18 @@ sensor_test(async (t, sensorProvider) => { 4, 5, 6, 7, 8, 9); setMockMotionData(sensorProvider, motionData); - waitForMotion(motionData); return new Promise((resolve, reject) => { let result = reject; - window.addEventListener('devicemotion', event => result()); + window.addEventListener('devicemotion', event1 => { + // Now we are in event dispatch. + assertEventEquals(event1, getExpectedMotionEvent(motionData)); + window.addEventListener('devicemotion', event2 => { + // Not call until the outer function returns. + assertEventEquals(event2, getExpectedMotionEvent(motionData)); + result(); + }); + }); result = resolve; }); }, 'Test no fire listeners added during event dispatch.'); diff --git a/tests/wpt/web-platform-tests/orientation-event/motion/add-listener-from-callback.https.html b/tests/wpt/web-platform-tests/orientation-event/motion/add-listener-from-callback.https.html index 11f2695794c..0803d7cc9bf 100644 --- a/tests/wpt/web-platform-tests/orientation-event/motion/add-listener-from-callback.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/motion/add-listener-from-callback.https.html @@ -20,7 +20,7 @@ sensor_test(async (t, sensorProvider) => { assert_true(event instanceof DeviceMotionEvent, 'event is DeviceMotionEvent'); assert_equals(event.type, 'devicemotion', 'event.type is devicemotion'); assert_true(event.target instanceof Window, 'event is fired on the window object'); - checkMotion(event, motionData); + assertEventEquals(event, getExpectedMotionEvent(motionData)); window.removeEventListener('devicemotion', firstListener); if (++firstEventCount == 1) { window.addEventListener('devicemotion', secondListener); @@ -32,7 +32,7 @@ sensor_test(async (t, sensorProvider) => { let secondEventCount = 0; let secondPromise = new Promise(resolve => { secondListener = (event) => { - checkMotion(event, motionData); + assertEventEquals(event, getExpectedMotionEvent(motionData)); window.removeEventListener('devicemotion', secondListener); ++secondEventCount; resolve(event); diff --git a/tests/wpt/web-platform-tests/orientation-event/motion/multiple-event-listeners.https.html b/tests/wpt/web-platform-tests/orientation-event/motion/multiple-event-listeners.https.html index ad851eec291..207fdd2d9c0 100644 --- a/tests/wpt/web-platform-tests/orientation-event/motion/multiple-event-listeners.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/motion/multiple-event-listeners.https.html @@ -19,19 +19,24 @@ sensor_test(async (t, sensorProvider) => { let firstEventPromise = new Promise(resolve => { firstListener = resolve; }); - // We directly add the listener instead of using waitForMotion - // because we want the listener to stay active after the first event fires. + // We directly add the listener instead of using EventWatcher + // because we want to remove listener after the first event fires + // but EventWatcher could only stop watching after test done. window.addEventListener('devicemotion', firstListener); - let secondEventPromise = waitForMotion(motionData1); + + const watcher = new EventWatcher(t, window, ['devicemotion']); setMockMotionData(sensorProvider, motionData1); + let firstEvent = await firstEventPromise; - checkMotion(firstEvent, motionData1); - await secondEventPromise; + assertEventEquals(firstEvent, getExpectedMotionEvent(motionData1)); + let secondEvent = await watcher.wait_for('devicemotion'); + assertEventEquals(secondEvent, getExpectedMotionEvent(motionData1)); - // At this point only the first event listener is active. - setMockMotionData(sensorProvider, motionData2); window.removeEventListener('devicemotion', firstListener); - return waitForMotion(motionData2); + // At this point only the second event listener is active. + setMockMotionData(sensorProvider, motionData2); + let thirdEvent = await watcher.wait_for('devicemotion'); + assertEventEquals(thirdEvent, getExpectedMotionEvent(motionData2)); }, 'Tests using multiple event handlers for the Device Motion API.'); </script> diff --git a/tests/wpt/web-platform-tests/orientation-event/motion/null-values.https.html b/tests/wpt/web-platform-tests/orientation-event/motion/null-values.https.html index 4da64c0c9e8..a6035543ba4 100644 --- a/tests/wpt/web-platform-tests/orientation-event/motion/null-values.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/motion/null-values.https.html @@ -24,16 +24,21 @@ sensor_test(async (t, sensorProvider) => { null, null, null, null, null, null); + const watcher = new EventWatcher(t, window, ['devicemotion']); setMockMotionData(sensorProvider, motionData1); - await waitForMotion(motionData1); + const firstEvent = await watcher.wait_for('devicemotion'); + assertEventEquals(firstEvent, getExpectedMotionEvent(motionData1)); setMockMotionData(sensorProvider, motionData2); - await waitForMotion(motionData2); + const secondEvent = await watcher.wait_for('devicemotion'); + assertEventEquals(secondEvent, getExpectedMotionEvent(motionData2)); setMockMotionData(sensorProvider, motionData3); - await waitForMotion(motionData3); + const thirdEvent = await watcher.wait_for('devicemotion'); + assertEventEquals(thirdEvent, getExpectedMotionEvent(motionData3)); setMockMotionData(sensorProvider, motionData4); - return waitForMotion(motionData4); + const fourthEvent = await watcher.wait_for('devicemotion'); + assertEventEquals(fourthEvent, getExpectedMotionEvent(motionData4)); }, 'Tests using null values for some or all of the event properties.'); -</script> +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/orientation-event/orientation/absolute-fallback.https.html b/tests/wpt/web-platform-tests/orientation-event/orientation/absolute-fallback.https.html index de0770a9f75..835d2441b35 100644 --- a/tests/wpt/web-platform-tests/orientation-event/orientation/absolute-fallback.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/orientation/absolute-fallback.https.html @@ -9,11 +9,13 @@ sensor_test(async (t, sensorProvider) => { const orientationData = generateOrientationData(1.1, 2.2, 3.3, true); + const watcher = new EventWatcher(t, window, ['deviceorientation']); // Make the relative orientation sensor unavailable and set mock data for // the absolute one. sensorProvider.setGetSensorShouldFail('RelativeOrientationEulerAngles', true); setMockOrientationData(sensorProvider, orientationData); - return waitForOrientation(orientationData); + const event = await watcher.wait_for('deviceorientation'); + assertEventEquals(event, getExpectedOrientationEvent(orientationData)); }, 'Tests that deviceorientation falls back to using absolute orientation data if relative is unavailable.'); </script> diff --git a/tests/wpt/web-platform-tests/orientation-event/orientation/add-listener-from-callback.https.html b/tests/wpt/web-platform-tests/orientation-event/orientation/add-listener-from-callback.https.html index 040e2a2f5d1..8f8cfa29c4f 100644 --- a/tests/wpt/web-platform-tests/orientation-event/orientation/add-listener-from-callback.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/orientation/add-listener-from-callback.https.html @@ -18,7 +18,7 @@ sensor_test(async (t, sensorProvider) => { assert_true(event instanceof DeviceOrientationEvent, 'event is DeviceOrientationEvent'); assert_equals(event.type, 'deviceorientation', 'event.type is devicemotion'); assert_true(event.target instanceof Window, 'event is fired on the window object'); - checkOrientation(event, orientationData); + assertEventEquals(event, getExpectedOrientationEvent(orientationData)); window.removeEventListener('deviceorientation', firstListener); if (++firstEventCount == 1) { window.addEventListener('deviceorientation', secondListener); @@ -30,7 +30,7 @@ sensor_test(async (t, sensorProvider) => { let secondEventCount = 0; let secondPromise = new Promise(resolve => { secondListener = (event) => { - checkOrientation(event, orientationData); + assertEventEquals(event, getExpectedOrientationEvent(orientationData)); window.removeEventListener('deviceorientation', secondListener); ++secondEventCount; resolve(event); diff --git a/tests/wpt/web-platform-tests/orientation-event/orientation/basic-operation-absolute.https.html b/tests/wpt/web-platform-tests/orientation-event/orientation/basic-operation-absolute.https.html index bc35e1498f4..05ac82cd35f 100644 --- a/tests/wpt/web-platform-tests/orientation-event/orientation/basic-operation-absolute.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/orientation/basic-operation-absolute.https.html @@ -9,8 +9,23 @@ sensor_test(async (t, sensorProvider) => { const orientationData = generateOrientationData(1.1, 2.2, 3.3, true); + const watcher = new EventWatcher(t, window, ['deviceorientationabsolute']); setMockOrientationData(sensorProvider, orientationData); - return waitForAbsoluteOrientation(orientationData); + const event = await watcher.wait_for('deviceorientationabsolute'); + assertEventEquals(event, getExpectedAbsoluteOrientationEvent(orientationData)); }, 'Tests basic operation of deviceorientationabsolute event using mock data.'); + +sensor_test(async (t, sensorProvider) => { + const orientationData = generateOrientationData(null, null, null, true); + const watcher = new EventWatcher(t, window, ['deviceorientationabsolute']); + + // Make the absolute orientation sensor unavailable + sensorProvider.setGetSensorShouldFail('AbsoluteOrientationEulerAngles', true); + const event = await watcher.wait_for('deviceorientationabsolute'); + assert_equals(event.type, 'deviceorientationabsolute', 'type is set to \"deviceorientationabsolute\"'); + assert_true(event instanceof DeviceOrientationEvent, 'event is DeviceOrientationEvent'); + + assertEventEquals(event, getExpectedAbsoluteOrientationEvent(orientationData)); +}, 'If UA can never provide absolute information, the event should be fired as a null event.'); </script> diff --git a/tests/wpt/web-platform-tests/orientation-event/orientation/basic-operation.https.html b/tests/wpt/web-platform-tests/orientation-event/orientation/basic-operation.https.html index eb57d141b35..3806ee0792a 100644 --- a/tests/wpt/web-platform-tests/orientation-event/orientation/basic-operation.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/orientation/basic-operation.https.html @@ -9,8 +9,24 @@ sensor_test(async (t, sensorProvider) => { const orientationData = generateOrientationData(1.1, 2.2, 3.3, false); + const watcher = new EventWatcher(t, window, ['deviceorientation']); setMockOrientationData(sensorProvider, orientationData); - return waitForOrientation(orientationData); + const event = await watcher.wait_for('deviceorientation'); + assertEventEquals(event, getExpectedOrientationEvent(orientationData)); }, 'Tests basic operation of deviceorientation event using mock data.'); + +sensor_test(async (t, sensorProvider) => { + const orientationData = generateOrientationData(null, null, null, false); + const watcher = new EventWatcher(t, window, ['deviceorientation']); + + // Make the orientation sensor unavailable + sensorProvider.setGetSensorShouldFail('AbsoluteOrientationEulerAngles', true); + sensorProvider.setGetSensorShouldFail('RelativeOrientationEulerAngles', true); + const event = await watcher.wait_for('deviceorientation'); + assert_equals(event.type, 'deviceorientation', 'type is set to \"deviceorientation\"'); + assert_true(event instanceof DeviceOrientationEvent, 'event is DeviceOrientationEvent'); + + assertEventEquals(event, getExpectedOrientationEvent(orientationData)); +}, 'If UA can never provide orientation information, the event should be fired as a null event.'); </script> diff --git a/tests/wpt/web-platform-tests/orientation-event/orientation/deviceorientationabsoluteevent.https.html b/tests/wpt/web-platform-tests/orientation-event/orientation/deviceorientationabsoluteevent.https.html deleted file mode 100644 index e63783f6cf4..00000000000 --- a/tests/wpt/web-platform-tests/orientation-event/orientation/deviceorientationabsoluteevent.https.html +++ /dev/null @@ -1,31 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <title>DeviceOrientationEvent attributes should be fired properly</title> - <meta charset='utf-8'> - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> - </head> - <body> - <p>If an implementation can never provide absolute orientation information, the event should be fired with the alpha, beta and gamma attributes set to null.</p> - <div id="log"></div> - <script> - var t = async_test("deviceorientationabsolute event fires"); - var run = false; - window.addEventListener("deviceorientationabsolute", function(e) { - if (!run) { - run = true; - t.step(function () { - assert_true(e instanceof DeviceOrientationEvent); - assert_equals(e.type, "deviceorientationabsolute", "type is set to \"deviceorientationabsolute\""); - assert_equals(e.alpha, null, "alpha is set to null"); - assert_equals(e.beta, null, "beta is set to null"); - assert_equals(e.gamma, null, "gamma is set to null"); - assert_true(e.absolute, "absolute is set to true"); - }); - t.done(); - } - }, false); - </script> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/orientation-event/orientation/multiple-event-listeners.https.html b/tests/wpt/web-platform-tests/orientation-event/orientation/multiple-event-listeners.https.html index 3a8add23c94..13d05f0c745 100644 --- a/tests/wpt/web-platform-tests/orientation-event/orientation/multiple-event-listeners.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/orientation/multiple-event-listeners.https.html @@ -15,18 +15,24 @@ sensor_test(async (t, sensorProvider) => { let firstEventPromise = new Promise(resolve => { firstListener = resolve; }); - // We directly add the listener instead of using waitForOrientation - // because we want the listener to stay active after the first event fires. + // We directly add the listener instead of using EventWatcher + // because we want to remove listener after the first event fires + // but EventWatcher could only stop watching after test done. window.addEventListener('deviceorientation', firstListener); - let secondEventPromise = waitForOrientation(orientationData1); + + const watcher = new EventWatcher(t, window, ['deviceorientation']); setMockOrientationData(sensorProvider, orientationData1); + let firstEvent = await firstEventPromise; - checkOrientation(firstEvent, orientationData1); - await secondEventPromise; + assertEventEquals(firstEvent, getExpectedOrientationEvent(orientationData1)); + let secondEvent = await watcher.wait_for('deviceorientation'); + assertEventEquals(secondEvent, getExpectedOrientationEvent(orientationData1)); - // At this point only the first listener is still active. - setMockOrientationData(sensorProvider, orientationData2); window.removeEventListener('deviceorientation', firstListener); - return waitForOrientation(orientationData2); + // At this point only the second event listener is still active. + setMockOrientationData(sensorProvider, orientationData2); + + let thirdEvent = await watcher.wait_for('deviceorientation'); + assertEventEquals(thirdEvent, getExpectedOrientationEvent(orientationData2)); }, 'Tests using multiple event handlers for the Device Orientation API.'); </script> diff --git a/tests/wpt/web-platform-tests/orientation-event/orientation/null-values.https.html b/tests/wpt/web-platform-tests/orientation-event/orientation/null-values.https.html index df18f35c6ca..55039ea2763 100644 --- a/tests/wpt/web-platform-tests/orientation-event/orientation/null-values.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/orientation/null-values.https.html @@ -1,5 +1,4 @@ <!DOCTYPE html> -<html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/resources/testdriver.js"></script> @@ -16,17 +15,21 @@ sensor_test(async (t, sensorProvider) => { // will stop updating the sensor when it sees a null event. const orientationData4 = generateOrientationData(null, null, null, false); + const watcher = new EventWatcher(t, window, ['deviceorientation']); setMockOrientationData(sensorProvider, orientationData1); - await waitForOrientation(orientationData1); + const firstEvent = await watcher.wait_for('deviceorientation'); + assertEventEquals(firstEvent, getExpectedOrientationEvent(orientationData1)); setMockOrientationData(sensorProvider, orientationData2); - await waitForOrientation(orientationData2); + const secondEvent = await watcher.wait_for('deviceorientation'); + assertEventEquals(secondEvent, getExpectedOrientationEvent(orientationData2)); setMockOrientationData(sensorProvider, orientationData3); - await waitForOrientation(orientationData3); + const thirdEvent = await watcher.wait_for('deviceorientation'); + assertEventEquals(thirdEvent, getExpectedOrientationEvent(orientationData3)); setMockOrientationData(sensorProvider, orientationData4); - return waitForOrientation(orientationData4); + const fourthEvent = await watcher.wait_for('deviceorientation'); + assertEventEquals(fourthEvent, getExpectedOrientationEvent(orientationData4)); }, 'Tests using null values for some of the event properties.'); </script> -</html> diff --git a/tests/wpt/web-platform-tests/orientation-event/orientation/updates.https.html b/tests/wpt/web-platform-tests/orientation-event/orientation/updates.https.html index 09472e6b419..de203da0a3a 100644 --- a/tests/wpt/web-platform-tests/orientation-event/orientation/updates.https.html +++ b/tests/wpt/web-platform-tests/orientation-event/orientation/updates.https.html @@ -11,10 +11,13 @@ sensor_test(async (t, sensorProvider) => { const orientationData1 = generateOrientationData(1.1, 2.2, 3.3, false); const orientationData2 = generateOrientationData(11.1, 22.2, 33.3, false); + const watcher = new EventWatcher(t, window, ['deviceorientation']); setMockOrientationData(sensorProvider, orientationData1); - await waitForOrientation(orientationData1); + const firstEvent = await watcher.wait_for('deviceorientation'); + assertEventEquals(firstEvent, getExpectedOrientationEvent(orientationData1)); setMockOrientationData(sensorProvider, orientationData2); - return waitForOrientation(orientationData2); + const secondEvent = await watcher.wait_for('deviceorientation'); + assertEventEquals(secondEvent, getExpectedOrientationEvent(orientationData2)); }, 'Tests that updates to the orientation causes new events to fire.'); </script> diff --git a/tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js b/tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js index 528dfa9a7a0..3168b71c5ec 100644 --- a/tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js +++ b/tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js @@ -128,120 +128,54 @@ function setMockOrientationData(sensorProvider, orientationData) { ]); } -function checkMotion(event, expectedMotionData) { - assert_equals(event.acceleration.x, expectedMotionData.accelerationX, "acceleration.x"); - assert_equals(event.acceleration.y, expectedMotionData.accelerationY, "acceleration.y"); - assert_equals(event.acceleration.z, expectedMotionData.accelerationZ, "acceleration.z"); - - assert_equals(event.accelerationIncludingGravity.x, expectedMotionData.accelerationIncludingGravityX, "accelerationIncludingGravity.x"); - assert_equals(event.accelerationIncludingGravity.y, expectedMotionData.accelerationIncludingGravityY, "accelerationIncludingGravity.y"); - assert_equals(event.accelerationIncludingGravity.z, expectedMotionData.accelerationIncludingGravityZ, "accelerationIncludingGravity.z"); - - assert_approx_equals(event.rotationRate.alpha, expectedMotionData.rotationRateAlpha, MOTION_ROTATION_EPSILON, "rotationRate.alpha"); - assert_approx_equals(event.rotationRate.beta, expectedMotionData.rotationRateBeta, MOTION_ROTATION_EPSILON, "rotationRate.beta"); - assert_approx_equals(event.rotationRate.gamma, expectedMotionData.rotationRateGamma, MOTION_ROTATION_EPSILON, "rotationRate.gamma"); - - assert_equals(event.interval, expectedMotionData.interval, "interval"); -} - -function checkOrientation(event, expectedOrientationData) { - assert_equals(event.alpha, expectedOrientationData.alpha, "alpha"); - assert_equals(event.beta, expectedOrientationData.beta, "beta"); - assert_equals(event.gamma, expectedOrientationData.gamma, "gamma"); - - assert_equals(event.absolute, expectedOrientationData.absolute, "absolute"); -} - -// Returns a promise that will be resolved when an event equal to the given -// event is fired. -function waitForEvent(expectedEvent, targetWindow = window) { - const stringify = (thing, targetWindow) => { - if (thing instanceof targetWindow.Object && thing.constructor !== targetWindow.Object) { - let str = '{'; - for (let key of Object.keys(Object.getPrototypeOf(thing))) { - str += JSON.stringify(key) + ': ' + stringify(thing[key], targetWindow) + ', '; +function assertEventEquals(actualEvent, expectedEvent) { + for (let key1 of Object.keys(Object.getPrototypeOf(expectedEvent))) { + if (typeof expectedEvent[key1] === "object" && expectedEvent[key1] !== null) { + for (let key2 of Object.keys(expectedEvent[key1])) { + assert_equals(actualEvent[key1][key2], expectedEvent[key1][key2], + `$[key1].$[key2]`); } - return str + '}'; - } else if (thing instanceof Number) { - return thing.toFixed(6); + } else { + assert_equals(actualEvent[key1], expectedEvent[key1], key1); } - return JSON.stringify(thing); - }; - - return new Promise((resolve, reject) => { - let events = []; - let timeoutId = null; - - const expectedEventString = stringify(expectedEvent, window); - function listener(event) { - const eventString = stringify(event, targetWindow); - if (eventString === expectedEventString) { - targetWindow.clearTimeout(timeoutId); - targetWindow.removeEventListener(expectedEvent.type, listener); - resolve(); - } else { - events.push(eventString); - } - } - targetWindow.addEventListener(expectedEvent.type, listener); - - timeoutId = targetWindow.setTimeout(() => { - targetWindow.removeEventListener(expectedEvent.type, listener); - let errorMessage = 'Timeout waiting for expected event: ' + expectedEventString; - if (events.length == 0) { - errorMessage += ', no events were fired'; - } else { - errorMessage += ', received events: ' - for (let event of events) { - errorMessage += event + ', '; - } - } - reject(errorMessage); - }, 500); - }); + } } -function waitForOrientation(expectedOrientationData, targetWindow = window) { - return waitForEvent( - new DeviceOrientationEvent('deviceorientation', { - alpha: expectedOrientationData.alpha, - beta: expectedOrientationData.beta, - gamma: expectedOrientationData.gamma, - absolute: expectedOrientationData.absolute, - }), - targetWindow); +function getExpectedOrientationEvent(expectedOrientationData) { + return new DeviceOrientationEvent('deviceorientation', { + alpha: expectedOrientationData.alpha, + beta: expectedOrientationData.beta, + gamma: expectedOrientationData.gamma, + absolute: expectedOrientationData.absolute, + }); } -function waitForAbsoluteOrientation(expectedOrientationData, targetWindow = window) { - return waitForEvent( - new DeviceOrientationEvent('deviceorientationabsolute', { - alpha: expectedOrientationData.alpha, - beta: expectedOrientationData.beta, - gamma: expectedOrientationData.gamma, - absolute: expectedOrientationData.absolute, - }), - targetWindow); +function getExpectedAbsoluteOrientationEvent(expectedOrientationData) { + return new DeviceOrientationEvent('deviceorientationabsolute', { + alpha: expectedOrientationData.alpha, + beta: expectedOrientationData.beta, + gamma: expectedOrientationData.gamma, + absolute: expectedOrientationData.absolute, + }); } -function waitForMotion(expectedMotionData, targetWindow = window) { - return waitForEvent( - new DeviceMotionEvent('devicemotion', { - acceleration: { - x: expectedMotionData.accelerationX, - y: expectedMotionData.accelerationY, - z: expectedMotionData.accelerationZ, - }, - accelerationIncludingGravity: { - x: expectedMotionData.accelerationIncludingGravityX, - y: expectedMotionData.accelerationIncludingGravityY, - z: expectedMotionData.accelerationIncludingGravityZ, - }, - rotationRate: { - alpha: expectedMotionData.rotationRateAlpha, - beta: expectedMotionData.rotationRateBeta, - gamma: expectedMotionData.rotationRateGamma, - }, - interval: expectedMotionData.interval, - }), - targetWindow); +function getExpectedMotionEvent(expectedMotionData) { + return new DeviceMotionEvent('devicemotion', { + acceleration: { + x: expectedMotionData.accelerationX, + y: expectedMotionData.accelerationY, + z: expectedMotionData.accelerationZ, + }, + accelerationIncludingGravity: { + x: expectedMotionData.accelerationIncludingGravityX, + y: expectedMotionData.accelerationIncludingGravityY, + z: expectedMotionData.accelerationIncludingGravityZ, + }, + rotationRate: { + alpha: expectedMotionData.rotationRateAlpha, + beta: expectedMotionData.rotationRateBeta, + gamma: expectedMotionData.rotationRateGamma, + }, + interval: expectedMotionData.interval, + }); } diff --git a/tests/wpt/web-platform-tests/svg/import/pservers-grad-08-b-manual.svg b/tests/wpt/web-platform-tests/svg/import/pservers-grad-08-b-manual.svg index 654ec8d409b..ba7413e2c5f 100644 --- a/tests/wpt/web-platform-tests/svg/import/pservers-grad-08-b-manual.svg +++ b/tests/wpt/web-platform-tests/svg/import/pservers-grad-08-b-manual.svg @@ -75,11 +75,11 @@ <!-- ====================================================================== --> <!-- Gradient on fill of text ======== --> <!-- ====================================================================== --> - <text font-family="Blocky" font-size="68" fill="url(#Gradient)" x="20" y="70">Gradient on fill</text> + <text font-family="Blocky, sans-serif" font-size="68" fill="url(#Gradient)" x="20" y="70">Gradient on fill</text> <!-- ====================================================================== --> <!-- Gradient on stroke of text ======== --> <!-- ====================================================================== --> - <text font-family="Blocky" x="20" y="160" font-size="55" fill="none" stroke="url(#Gradient)" stroke-width="3">Gradient on stroke</text> + <text font-family="Blocky, sans-serif" x="20" y="160" font-size="55" fill="none" stroke="url(#Gradient)" stroke-width="3">Gradient on stroke</text> </g> <g font-family="SVGFreeSansASCII,sans-serif" font-size="28"> diff --git a/tests/wpt/web-platform-tests/svg/import/text-altglyph-01-b-manual.svg b/tests/wpt/web-platform-tests/svg/import/text-altglyph-01-b-manual.svg index db208cea587..85a31a18a29 100644 --- a/tests/wpt/web-platform-tests/svg/import/text-altglyph-01-b-manual.svg +++ b/tests/wpt/web-platform-tests/svg/import/text-altglyph-01-b-manual.svg @@ -100,7 +100,7 @@ <glyphRef xlink:href="#Y1"/> </altGlyphDef> </defs> - <g font-family="HappySad" font-size="60" fill="none" stroke-width="5"> + <g font-family="HappySad, sans-serif" font-size="60" fill="none" stroke-width="5"> <text x="140" y="190" stroke="fuchsia"> <altGlyph xlink:href="#Hsmile">H</altGlyph> <altGlyph xlink:href="#Asmile">A</altGlyph> diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb b/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb index d58664c5b6c..6afe1c188f9 100644 --- a/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb +++ b/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb @@ -1,10 +1,10 @@ cask 'safari-technology-preview' do if MacOS.version <= :mojave - version '104,061-96689-20200407-7f675598-e07d-46db-8b24-b10c33a006ba' - sha256 'bc1b0a79f99022aae802bbb1e83a6a13613a339115063489fc240567b1b5d81d' + version '105,001-02874-20200422-3f38295f-da03-425d-9100-ae835120f1c7' + sha256 'ce15f783b3e46c0e1267196956d79ea416a14005b6f733c68be5104ea57da20e' else - version '104,061-96685-20200407-907fca12-9ba9-4bfa-8b8c-d5bf101d534b' - sha256 '3dcfde56386f38984c9ede1d67714c43699c5cafece9608ee2730484bffdcf9c' + version '105,001-00430-20200422-c04186cc-77e2-42a7-a3c8-6881c4447f31' + sha256 '443675a62bbe054216129bdd5c91da57c18b3be6b61455ea16f27d35a9be7996' end url "https://secure-appldnld.apple.com/STP/#{version.after_comma}/SafariTechnologyPreview.dmg" diff --git a/tests/wpt/web-platform-tests/webdriver/tests/interface/interface.py b/tests/wpt/web-platform-tests/webdriver/tests/interface/interface.py new file mode 100644 index 00000000000..6a7afcd2635 --- /dev/null +++ b/tests/wpt/web-platform-tests/webdriver/tests/interface/interface.py @@ -0,0 +1,2 @@ +def test_navigator_webdriver_active(session): + assert session.execute_script("return navigator.webdriver") is True |