diff options
86 files changed, 1019 insertions, 167 deletions
diff --git a/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini index 76b44d9e9cf..3605e8f3fc9 100644 --- a/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -4,7 +4,7 @@ expected: TIMEOUT [Opening a blob URL in a new window immediately before revoking it works.] - expected: FAIL + expected: TIMEOUT [Fetching a blob URL immediately before revoking it works in an iframe.] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini new file mode 100644 index 00000000000..f64b45fea6b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-002.html] + [Hit test float] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini index 4a1e8110f6f..f8e7e539aae 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini @@ -2,3 +2,6 @@ [Hit test intersecting scaled box] expected: FAIL + [Hit test within unscaled box] + 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/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini deleted file mode 100644 index e38782d8c85..00000000000 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[elementFromPoint-001.html] - [CSSOM View - 5 - extensions to the Document interface] - 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 c131078eace..23c61ede1a1 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,3 +17,6 @@ [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-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini new file mode 100644 index 00000000000..e181af5397f --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini @@ -0,0 +1,4 @@ +[elementsFromPoint-invalid-cases.html] + [The root element is the last element returned for otherwise empty queries within the viewport] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/cssom/cssstyledeclaration-csstext.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/cssstyledeclaration-csstext.html.ini new file mode 100644 index 00000000000..c6715d49f44 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom/cssstyledeclaration-csstext.html.ini @@ -0,0 +1,4 @@ +[cssstyledeclaration-csstext.html] + [cssText on computed style declaration returns the empty string] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/cssom/cssstyledeclaration-custom-properties.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/cssstyledeclaration-custom-properties.html.ini new file mode 100644 index 00000000000..595199d7d35 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom/cssstyledeclaration-custom-properties.html.ini @@ -0,0 +1,4 @@ +[cssstyledeclaration-custom-properties.html] + [Custom properties are included in computed style] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/filter-effects/fecomposite-non-zero-inoffset-001.html.ini b/tests/wpt/metadata-layout-2020/css/filter-effects/fecomposite-non-zero-inoffset-001.html.ini new file mode 100644 index 00000000000..055c56143e6 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/filter-effects/fecomposite-non-zero-inoffset-001.html.ini @@ -0,0 +1,2 @@ +[fecomposite-non-zero-inoffset-001.html] + 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 18aea709ba7..6adf3645101 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,21 +312,21 @@ [Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] expected: NOTRUN - [<iframe>: separate response Content-Type: text/html;" text/plain] - expected: FAIL - [<iframe>: separate response Content-Type: text/html */*;charset=gbk] expected: FAIL [<iframe>: combined response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + [<iframe>: combined response Content-Type: text/html;x=" text/plain] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: */* text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html;x=" text/plain] + [<iframe>: separate response Content-Type: text/plain */*] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini index d2df9b78483..b2ffc8abf78 100644 --- a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini @@ -56,3 +56,6 @@ [separate text/javascript x/x] expected: FAIL + [separate text/javascript error] + 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 d4ba399b762..87c807a49ff 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,3 @@ [X-Content-Type-Options%3A%20nosniff%0C] expected: FAIL - [X-Content-Type-Options%3A%20'NosniFF'] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini index dc2e45516de..51f8272a6de 100644 --- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_5.html] +[traverse_the_history_3.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index af14e19a466..c9d963b55d2 100644 --- a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -7,7 +7,7 @@ expected: NOTRUN [Element with tabindex should support autofocus] - expected: TIMEOUT + expected: FAIL [Area element should support autofocus] expected: NOTRUN @@ -16,5 +16,5 @@ expected: NOTRUN [Non-HTMLElement should not support autofocus] - expected: NOTRUN + expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index f4f994c5d6f..7a36937927c 100644 --- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,5 +1,4 @@ [iframe_sandbox_popups_nonescaping-3.html] - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + 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 d16e3ccb769..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,5 +1,4 @@ [promise-job-entry.html] - expected: TIMEOUT [Fulfillment handler on fulfilled promise] 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 84787faa62f..77032256502 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 @@ -74,3 +74,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 44065 more errors.\n\tMax AbsError of 1.9986611604690552e+0 at index of 15080.\n\t[15080\]\t-9.9994289875030518e-1\t9.9871826171875000e-1\t1.9986611604690552e+0\t2.0012262087101997e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-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 44059 more errors.\n\tMax AbsError of 1.9986611604690552e+0 at index of 17285.\n\t[17285\]\t-9.9994289875030518e-1\t9.9871826171875000e-1\t1.9986611604690552e+0\t2.0012262087101997e+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 + diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index 442dc0ed53f..b105dc0821e 100644 --- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -122,3 +122,9 @@ [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t-6.7816996732928000e+14\t5.6332010030746460e-1\t6.7816996732928063e+14\t1.2038802928550393e+15\t9.0957000000000003e-5\n\t[31081\]\t4.5854689648100989e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.7816996732928063e+14 at index of 31080.\n\tMax RelError of 1.2038802928550393e+15 at index of 31080.\n] expected: FAIL + [X SNR (45.01863889941501 dB) is not greater than or equal to 85.58. Got 45.01863889941501.] + expected: FAIL + + [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t5.6092996914003379e-10\t5.6332010030746460e-1\t5.6332009974653463e-1\t9.9999999900424297e-1\t9.0957000000000003e-5\n\t[31081\]\t4.5875709125065861e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31081.\n] + expected: FAIL + diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini index d4f62ed7113..faa00f45ecf 100644 --- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -7,7 +7,7 @@ expected: FAIL [Opening a blob URL in a new window immediately before revoking it works.] - expected: FAIL + expected: TIMEOUT [Opening a blob URL in a noopener about:blank window immediately before revoking it works.] expected: TIMEOUT diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index af4e0236a06..799e611fae3 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -61,6 +61,20 @@ ] }, "css-flexbox": { + "negative-flex-margins-crash.html": [ + "8bcc566c0f702ef6a8e581bb6790476c71f19bcb", + [ + null, + {} + ] + ], + "negative-flex-rounding-crash.html": [ + "ad69cc059ec705a9856f2c170827b9df18f1662c", + [ + null, + {} + ] + ], "padding-overflow-crash.html": [ "fd0c333fabadb073b9977a63de6a8c5c3ed79042", [ @@ -143793,6 +143807,32 @@ {} ] ], + "grid-layout-stale-001.html": [ + "bb81546678cea67020c2f46a470098d6454981d9", + [ + null, + [ + [ + "/css/css-grid/grid-model/reference/grid-layout-stale-001-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-layout-stale-002.html": [ + "ea11cd5c5cb5e869493adb908892c3b8f8d7c35d", + [ + null, + [ + [ + "/css/css-grid/grid-model/reference/grid-layout-stale-002-ref.html", + "==" + ] + ], + {} + ] + ], "grid-margins-no-collapse-001.html": [ "764cca9ced0077a7376b506f3ef8ca39d8072202", [ @@ -203865,6 +203905,19 @@ {} ] ], + "fecomposite-non-zero-inoffset-001.html": [ + "b2d71cfa981a4a93b0fa9ad0c41d9351c2889956", + [ + null, + [ + [ + "/css/filter-effects/reference/fecomposite-non-zero-inoffset-001-ref.html", + "==" + ] + ], + {} + ] + ], "filter-cb-abspos-inline-001.html": [ "6f99c48d5f34761ba1bc1ce7dbdfd927469ac65a", [ @@ -204372,6 +204425,19 @@ {} ] ], + "remove-filter-repaint.html": [ + "a9af9db34eeaf10235521514f8c17ceca858924e", + [ + null, + [ + [ + "/css/filter-effects/reference/remove-filter-repaint-ref.html", + "==" + ] + ], + {} + ] + ], "root-element-with-opacity-filter-001.html": [ "577e2bd4c032799a159c1c7542812e66081bfcea", [ @@ -263055,6 +263121,12 @@ } } }, + "contenteditable": { + "META.yml": [ + "3618b8d29d08c2315f6480c0e02578bb4784b344", + [] + ] + }, "cookie-store": { "META.yml": [ "46da8a9fb654cc685e1ba928d2b7adef9c20d4c8", @@ -294272,6 +294344,14 @@ "100x100-grey-box.html": [ "0592f6d2ce582c3c89b9d7f5278eed9458531c3c", [] + ], + "grid-layout-stale-001-ref.html": [ + "3ade075c99cc2009aabc018aa4181b0ff930bea3", + [] + ], + "grid-layout-stale-002-ref.html": [ + "5d4d996106d13a060cf192efb134e1c74aae024d", + [] ] } }, @@ -308288,6 +308368,10 @@ "cf2c997f6c0d60cac9896c0b0014189cea7790bc", [] ], + "fecomposite-non-zero-inoffset-001-ref.html": [ + "e4900ad0476a208ec82950a80fb36d1481bd8c09", + [] + ], "filter-effect-remove-unattached-ref.html": [ "5f9f7a76ec71bfa5abe4a0a82bc126af8fa0ad5a", [] @@ -308332,6 +308416,10 @@ "91326ef585e6910cd499ad2d6650f18fca486921", [] ], + "remove-filter-repaint-ref.html": [ + "bde2a93360b62fcf877c270815f252b5ea0c3191", + [] + ], "root-element-with-opacity-filter-001-ref.html": [ "cd16e54c8e5b73b02585c606d0133bb36c821b31", [] @@ -346994,7 +347082,7 @@ [] ], "keys.py": [ - "d4072f5a3f33d8422825e1fdc4f017ed7d79993b", + "26825f04148befabc9a7b6ae71f1d8313a437e38", [] ], "mouse.py": [ @@ -347075,11 +347163,11 @@ [] ], "asserts.py": [ - "f65137463b48f94fd0c5f2383b1a7c35bcd1de54", + "5bd7f5b38e7a344fb2a1f7c40090fb5edd28c4d4", [] ], "authentication.py": [ - "6f880f3c85165295bf9e98aa4e4adba2eca88cbd", + "1e88a9e730d0805f8e6562a2dae7829b4baa349c", [] ], "defaults.py": [ @@ -347087,7 +347175,7 @@ [] ], "fixtures.py": [ - "ab2aaf4e75d96492d9c6419ab11d567205652b8f", + "80ccfddf3d15ad739f7eca6a77fac79e2dcdcaef", [] ], "helpers.py": [ @@ -347095,15 +347183,15 @@ [] ], "http_request.py": [ - "5e46d97017e14ba009d4d1ed6d62bb5012f48d15", + "895d1319ac0ac8b9a63defcb73f303c4a31e80bd", [] ], "image.py": [ - "81dd933943f78b4bad69967c26729b70b992acb6", + "6149ccccbe3252e5c1c2bc37ba3dd3103ffbf9b6", [] ], "inline.py": [ - "b65b9cb8b11d27ee4c947a5c2ba5b59cd3853c78", + "15bc26e54c68d4ce7c76133f597f4da50eb2e298", [] ], "merge_dictionaries.py": [ @@ -350038,7 +350126,7 @@ [] ], "webxr_test_constants_fake_world.js": [ - "4e2adc633fd88bc13a4ab62bee86b4f3fbd19479", + "7e428e21550f6a52461cb8470dee0aa44e3f4578", [] ], "webxr_util.js": [ @@ -377712,6 +377800,15 @@ ] } }, + "contenteditable": { + "plaintext-only.html": [ + "cb8308edcc49a98be5c34c9614bc61b69e44f784", + [ + null, + {} + ] + ] + }, "cookie-store": { "change_eventhandler_for_document_cookie.tentative.https.window.js": [ "0a8b1bd21efc9b0ac69468ad81c306757e5b18ff", @@ -382417,6 +382514,41 @@ null, {} ] + ], + "revert-val-006.html": [ + "2b238f6d7e53b35cbdfe98c1fcac3625b9cfd72e", + [ + null, + {} + ] + ], + "revert-val-007.html": [ + "38078fcfa9ad2a064ead3a2e30db3d6790d265be", + [ + null, + {} + ] + ], + "revert-val-008.html": [ + "77cceae7a3f044c8d11b1616f9f54469f18d1aca", + [ + null, + {} + ] + ], + "revert-val-009.html": [ + "e9683e90f44a378f16fda177cf2b8cb64d530921", + [ + null, + {} + ] + ], + "revert-val-010.html": [ + "58449e9132b786a2f489a1517b1be3becadaddbf", + [ + null, + {} + ] ] }, "css-color": { @@ -383279,7 +383411,7 @@ ] ], "flexitem-stretch-image.html": [ - "dd0f8d4f76f1f3dbaf67629315c8e39d73f01df3", + "ff3163f6f3d31684db6b22c603f081b6d7c94cfb", [ null, {} @@ -387406,6 +387538,13 @@ ] ] }, + "grid-tracks-stretched-with-different-flex-factors-sum.html": [ + "f2c1d5e95a2df428432f30fc651b4bf06ae15322", + [ + null, + {} + ] + ], "inheritance.html": [ "eee86f70300d4280531235c813589dc3c399c58c", [ @@ -390334,7 +390473,7 @@ ] ], "registered-property-revert.html": [ - "3d0473ea4397fab0440355a11eb0bff941a50323", + "33c395d2c2f6f5f9ca868963b8fb3c4d7f593d28", [ null, {} @@ -401358,7 +401497,14 @@ ] ], "cssstyledeclaration-csstext.html": [ - "30d9bd87bde562a827a367241497fdbc34360a9f", + "afd54263bfe0ddd6325a82e0c47f663015dbf67c", + [ + null, + {} + ] + ], + "cssstyledeclaration-custom-properties.html": [ + "92cf2c847dceda660ebedd2d8ae798e33b3b1d3b", [ null, {} @@ -438665,7 +438811,7 @@ }, "the-label-element": { "clicking-interactive-content.html": [ - "60a80fad9d2aebf284e252949fba7b2bb15af134", + "c448df0a38073019112f7f805904a6ec3bd6ef20", [ null, {} @@ -438679,7 +438825,7 @@ ] ], "clicking-noninteractive-unlabelable-content.html": [ - "233168f5664cf972ad579ae4ccba7f674c965d25", + "be74ed68330c1f97069e05ed70a2e4908ef6f3c2", [ null, {} @@ -468536,6 +468682,13 @@ {} ] ], + "subresource-integrity-partial-image.html": [ + "3abc8399219688f075deec3bf1551188d29f07b9", + [ + null, + {} + ] + ], "subresource-integrity.html": [ "7a35e3bc85eb454f847d1087eaf00cb73b891fb4", [ @@ -510489,7 +510642,7 @@ ] ], "xrRay_constructor.https.html": [ - "08f20142e38e9366bd016fb92666b5136128fef6", + "d4d727785f1eb5487765249cf6c58dbe1111f3c5", [ null, {} @@ -539889,7 +540042,7 @@ }, "add_cookie": { "add.py": [ - "c1a886aafa71757d5efccb3953d2c30a96a14a34", + "30804c1dd8ec89f573d3af657de27fe1fe5d9597", [ null, {} @@ -540151,7 +540304,7 @@ }, "execute_async_script": { "collections.py": [ - "14848da7e2966939c1efb75eb2b66d389f0b3d38", + "484a247cffd9a12acd8024f48fa3db7de59db8d3", [ null, {} @@ -540190,7 +540343,7 @@ }, "execute_script": { "collections.py": [ - "f939713c8064d5826e4439acc6b1803ac0a25950", + "be0b3a018c505dc26bb2b44969617a9b9daa0793", [ null, {} @@ -540378,7 +540531,7 @@ }, "get_alert_text": { "get.py": [ - "d6fdda2d1ed08ecceb5863d78ce915c19d4846fb", + "ad0058e0326454147c3b7202daea39864159fd46", [ null, {} @@ -540387,7 +540540,7 @@ }, "get_current_url": { "get.py": [ - "39c28c612161e30b114298c7d5eed5ccd60d78d4", + "c22e3d410c350248f5eb109e2ab332747e64a453", [ null, {} @@ -540513,7 +540666,7 @@ }, "get_named_cookie": { "get.py": [ - "9ea29c8994eb471882ae0ce68aa48b854ba35b99", + "1fd5f9f144969419571ab1193e314670925d1fa8", [ null, {} @@ -540742,7 +540895,7 @@ }, "new_session": { "create_alwaysMatch.py": [ - "097764e4a999f1def552c5f21fefda3508623385", + "a4cc9efc02e2a9c61fb8a79eecd5dcff49ca21a6", [ null, { @@ -540751,7 +540904,7 @@ ] ], "create_firstMatch.py": [ - "f00f6042b085dc09876f67ae650ff62ceb3eb76a", + "ec671530f79692c04135ec441426f0044a72e8bc", [ null, { @@ -540769,7 +540922,7 @@ ] ], "invalid_capabilities.py": [ - "f31ce3b8b6fd5f8e4a9ff4d0137debdb7dacdea4", + "afdcea0daf706ca32a875db1eb367db0bd2046a7", [ null, {} @@ -540799,7 +540952,7 @@ ] ], "response.py": [ - "16c526ae10bea0540c91a9f7c2291488e4a26119", + "dc1328998810faacf74f1b94b54ed59f48e84e4d", [ null, {} @@ -541054,7 +541207,7 @@ }, "status": { "status.py": [ - "f0df16a1ee17d22e6293af049876810bb4073929", + "1f0f1bc4fe7746f34080cc537701020e4c5b2292", [ null, {} @@ -541063,14 +541216,14 @@ }, "switch_to_frame": { "cross_origin.py": [ - "4425a3ab901fef0effb2fc94ca3611e57f2ba51c", + "905f1eb56dce07ea82e0de7c5755e2e1b50ed152", [ null, {} ] ], "switch.py": [ - "67b855a96d963ab03efa9495052767ec033b346f", + "f9b0e6fc1fcd16c9f9e66b05149930f6ee0ae346", [ null, {} diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini new file mode 100644 index 00000000000..f64b45fea6b --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-002.html] + [Hit test float] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini index 4a1e8110f6f..f8e7e539aae 100644 --- a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini +++ b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini @@ -2,3 +2,6 @@ [Hit test intersecting scaled box] expected: FAIL + [Hit test within unscaled box] + 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/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini deleted file mode 100644 index e38782d8c85..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[elementFromPoint-001.html] - [CSSOM View - 5 - extensions to the Document interface] - 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 85e94926cb3..5733d536fd3 100644 --- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini @@ -21,3 +21,6 @@ [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-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini new file mode 100644 index 00000000000..e181af5397f --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini @@ -0,0 +1,4 @@ +[elementsFromPoint-invalid-cases.html] + [The root element is the last element returned for otherwise empty queries within the viewport] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom/cssstyledeclaration-csstext.html.ini b/tests/wpt/metadata/css/cssom/cssstyledeclaration-csstext.html.ini new file mode 100644 index 00000000000..c6715d49f44 --- /dev/null +++ b/tests/wpt/metadata/css/cssom/cssstyledeclaration-csstext.html.ini @@ -0,0 +1,4 @@ +[cssstyledeclaration-csstext.html] + [cssText on computed style declaration returns the empty string] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom/cssstyledeclaration-custom-properties.html.ini b/tests/wpt/metadata/css/cssom/cssstyledeclaration-custom-properties.html.ini new file mode 100644 index 00000000000..595199d7d35 --- /dev/null +++ b/tests/wpt/metadata/css/cssom/cssstyledeclaration-custom-properties.html.ini @@ -0,0 +1,4 @@ +[cssstyledeclaration-custom-properties.html] + [Custom properties are included in computed style] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/fecomposite-non-zero-inoffset-001.html.ini b/tests/wpt/metadata/css/filter-effects/fecomposite-non-zero-inoffset-001.html.ini new file mode 100644 index 00000000000..055c56143e6 --- /dev/null +++ b/tests/wpt/metadata/css/filter-effects/fecomposite-non-zero-inoffset-001.html.ini @@ -0,0 +1,2 @@ +[fecomposite-non-zero-inoffset-001.html] + 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 1a8724198c2..2b1fa7f8d7f 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,21 +312,21 @@ [fetch(): separate response Content-Type: text/plain ] expected: NOTRUN - [<iframe>: separate response Content-Type: text/html;" text/plain] - expected: FAIL - [<iframe>: separate response Content-Type: text/html */*;charset=gbk] expected: FAIL [<iframe>: combined response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + [<iframe>: combined response Content-Type: text/html;x=" text/plain] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: */* text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html;x=" text/plain] + [<iframe>: separate response Content-Type: text/plain */*] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini index d2df9b78483..b2ffc8abf78 100644 --- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini @@ -56,3 +56,6 @@ [separate text/javascript x/x] expected: FAIL + [separate text/javascript error] + 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 aa6eb8f6085..30e1b851fd4 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,3 @@ [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'NosniFF'] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini index dc2e45516de..51f8272a6de 100644 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_5.html] +[traverse_the_history_3.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index 8b743f36e1d..f1aa94c7ced 100644 --- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -4,7 +4,7 @@ expected: FAIL [Element with tabindex should support autofocus] - expected: TIMEOUT + expected: FAIL [Host element with delegatesFocus including no focusable descendants should be skipped] expected: NOTRUN @@ -16,5 +16,5 @@ expected: NOTRUN [Non-HTMLElement should not support autofocus] - expected: NOTRUN + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index e440b1e38c6..dc856a3d5a3 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,6 +1,5 @@ [iframe_sandbox_popups_nonescaping-3.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + 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 d16e3ccb769..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,5 +1,4 @@ [promise-job-entry.html] - expected: TIMEOUT [Fulfillment handler on fulfilled promise] 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 8b1c7d6c5f5..64ff19b7967 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 @@ -143,3 +143,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 44065 more errors.\n\tMax AbsError of 1.9986611604690552e+0 at index of 15080.\n\t[15080\]\t-9.9994289875030518e-1\t9.9871826171875000e-1\t1.9986611604690552e+0\t2.0012262087101997e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-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 44059 more errors.\n\tMax AbsError of 1.9986611604690552e+0 at index of 17285.\n\t[17285\]\t-9.9994289875030518e-1\t9.9871826171875000e-1\t1.9986611604690552e+0\t2.0012262087101997e+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 + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index ecdef72749c..65919c2c6d2 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -353,3 +353,9 @@ [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t-6.7816996732928000e+14\t5.6332010030746460e-1\t6.7816996732928063e+14\t1.2038802928550393e+15\t9.0957000000000003e-5\n\t[31081\]\t4.5854689648100989e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.7816996732928063e+14 at index of 31080.\n\tMax RelError of 1.2038802928550393e+15 at index of 31080.\n] expected: FAIL + [X SNR (45.01863889941501 dB) is not greater than or equal to 85.58. Got 45.01863889941501.] + expected: FAIL + + [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t5.6092996914003379e-10\t5.6332010030746460e-1\t5.6332009974653463e-1\t9.9999999900424297e-1\t9.0957000000000003e-5\n\t[31081\]\t4.5875709125065861e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31081.\n] + expected: FAIL + diff --git a/tests/wpt/web-platform-tests/contenteditable/META.yml b/tests/wpt/web-platform-tests/contenteditable/META.yml new file mode 100644 index 00000000000..3618b8d29d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/contenteditable/META.yml @@ -0,0 +1,3 @@ +spec: https://w3c.github.io/contentEditable/ +suggested_reviewers: + - marcoscaceres diff --git a/tests/wpt/web-platform-tests/contenteditable/plaintext-only.html b/tests/wpt/web-platform-tests/contenteditable/plaintext-only.html new file mode 100644 index 00000000000..cb8308edcc4 --- /dev/null +++ b/tests/wpt/web-platform-tests/contenteditable/plaintext-only.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>contenteditable="plaintext-only" should exist</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="txt" contenteditable="plaintext-only"></div> +<script> +test(function() { + const txt = document.getElementById('txt'); + assert_true(txt.isContentEditable); + assert_equals(txt.contentEditable, 'plaintext-only'); +}, 'plaintext-only is an accepted attribute value for contenteditable'); +test(function() { + const txt = document.createElement('div'); + assert_false(txt.isContentEditable); + txt.contentEditable = 'plaintext-only'; + assert_true(txt.isContentEditable); + assert_equals(txt.contentEditable, 'plaintext-only'); +}, 'plaintext-only can be assigned to contenteditable dynamically'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-006.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-006.html new file mode 100644 index 00000000000..2b238f6d7e5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-006.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<title>CSS Cascade: 'revert' keyword in keyframe animations</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade/#default"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + @keyframes test { + from { margin-top: 0px; } + 50% { margin-top: revert; } + to { margin-top: 0px; } + } + #h1 { + margin-top: 0px; + animation: test linear 1000s -500s; + } +</style> +<h1 id=h1></h1> +<h1 id=ref></h1> +<script> + test(function() { + let actual = getComputedStyle(h1).marginTop; + let expected = getComputedStyle(ref).marginTop; + // This test assumes that the UA style sheet sets a non-0px value on + // <h1> elements: + assert_not_equals(expected, '0px'); + assert_equals(actual, expected); + }, 'The revert keyword works with @keyframes'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-007.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-007.html new file mode 100644 index 00000000000..38078fcfa9a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-007.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<title>CSS Cascade: 'revert' in keyframe animations on identical elements</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade/#default"> +<link rel="help" href="https://crbug.com/1065387"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + @keyframes test { + from { margin-top: revert; } + to { margin-top: 100px; } + } + .anim { + margin-top: 0px; + animation: test linear 1s paused; + } +</style> +<h1 class="anim"></h1> +<h1 class="anim"></h1> +<h1 class="anim"></h1> +<h1 id=ref></h1> +<script> + test(function() { + // This querySelectorAll includes #ref, but that's OK. + let targets = document.querySelectorAll('h1'); + for (let t of targets) { + let actual = getComputedStyle(t).marginTop; + let expected = getComputedStyle(ref).marginTop; + // This test assumes that the UA style sheet sets a non-0px value on + // <h1> elements: + assert_not_equals(expected, '0px'); + assert_equals(actual, expected); + } + }, 'A @keyframe animation with revert works when applied to multiple identical elements'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-008.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-008.html new file mode 100644 index 00000000000..77cceae7a3f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-008.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<title>CSS Cascade: 'revert' in final keyframe of web animation</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade/#default"> +<link rel="help" href="https://crbug.com/1065387"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<h1 id=h1></h1> +<h1 id=ref></h1> +<script> + test(function() { + let expected_lower = parseInt(getComputedStyle(ref).marginTop); + let expected_upper = expected_lower * 2; + + h1.animate([ + { marginTop: `${expected_lower * 4}px` }, + { marginTop: `${expected_lower * 3}px` }, + { marginTop: `${expected_lower * 2}px` }, + { marginTop: 'revert' }, + ], { + duration: 4000, + delay: -3500, + }).pause(); + + let actual = parseInt(getComputedStyle(h1).marginTop); + + // This test assumes that the UA style sheet sets a non-0px value on + // <h1> elements: + assert_not_equals(expected_lower, 0); + assert_not_equals(expected_upper, 0); + assert_between_exclusive(actual, expected_lower, expected_upper); + }, 'The revert keyword works in the final frame of a web animation'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-009.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-009.html new file mode 100644 index 00000000000..e9683e90f44 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-009.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<title>CSS Cascade: 'revert' in implicit keyframes</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade/#default"> +<link rel="help" href="https://crbug.com/1065387"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<h1 id=h1></h1> +<h1 id=ref></h1> +<script> + test(function() { + let expected_lower = parseInt(getComputedStyle(ref).marginTop); + let expected_upper = expected_lower * 2; + h1.style = `margin-top: ${expected_lower * 1000}px; margin-top: revert;`; + + h1.animate([ + { marginTop: `${expected_upper}px` }, + ], { + duration: 1000, + delay: -500, + }).pause(); + + let actual = parseInt(getComputedStyle(h1).marginTop); + + // This test assumes that the UA style sheet sets a non-0px value on + // <h1> elements: + assert_not_equals(expected_lower, 0); + assert_not_equals(expected_upper, 0); + assert_between_exclusive(actual, expected_lower, expected_upper); + }, 'The revert keyword works in implicit keyframes'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-cascade/revert-val-010.html b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-010.html new file mode 100644 index 00000000000..58449e9132b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-cascade/revert-val-010.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<title>CSS Cascade: 'revert' appearing in setKeyframes</title> +<link rel="help" href="https://drafts.csswg.org/css-cascade/#default"> +<link rel="help" href="https://drafts.csswg.org/web-animations-1/#dom-keyframeeffect-setkeyframes"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<h1 id=h1></h1> +<script> + test(function() { + let original = parseInt(getComputedStyle(h1).marginTop); + + // This test assumes that the UA style sheet sets a non-0px value on + // <h1> elements: + assert_not_equals(original, 0); + + let animation = h1.animate([ + { marginTop: `${original*4}px` }, + { marginTop: `${original*8}px` }, + ], { + duration: 1000000, + delay: -500000, + easing: 'steps(2, end)' + }); + + let animated = parseInt(getComputedStyle(h1).marginTop); + assert_equals(animated, original*6); + + animation.effect.setKeyframes([ + { marginTop: 'revert' }, + { marginTop: `${original*3}px` }, + ]); + + let animated_revert = parseInt(getComputedStyle(h1).marginTop); + assert_equals(animated_revert, original*2); + }, 'The revert works when appearing in setKeyframes'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-image.html b/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-image.html index dd0f8d4f76f..ff3163f6f3d 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-image.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-image.html @@ -28,8 +28,8 @@ to fit the size of flexitem according to flex values."> <div id=log></div> <div class="flexbox"> - <img data-expected-display="block" data-expected-width="345" style="flex: 1 0 auto;" src="support/100x100-blue.png"> - <img data-expected-display="block" data-expected-width="255" data-expected-height="100" style="flex: 1 0 auto;" src="support/10x10-green.png"> + <img data-expected-display="block" data-expected-width="345" data-expected-height="345" style="flex: 1 0 auto;" src="support/100x100-blue.png"> + <img data-expected-display="block" data-expected-width="255" data-expected-height="345" style="flex: 1 0 auto;" src="support/10x10-green.png"> </div> </body> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/negative-flex-margins-crash.html b/tests/wpt/web-platform-tests/css/css-flexbox/negative-flex-margins-crash.html new file mode 100644 index 00000000000..8bcc566c0f7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/negative-flex-margins-crash.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<title>CSS Flexbox: Crash caused by negative width in flex box</title> +<link rel="author" title="Christian Biesinger" href="mailto:cbiesinger@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#box-model"> +<link rel="issue" href="https://crbug.com/490423"> +<meta name="assert" content="Check that crash doesn't happen in flex box with negative margin."> + +<style> +div { + display: flex; +} + +.inner { + margin-left: -4em; +} +</style> +<div> + <div> + <div class="inner">PASS if we don't assert</div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/negative-flex-rounding-crash.html b/tests/wpt/web-platform-tests/css/css-flexbox/negative-flex-rounding-crash.html new file mode 100644 index 00000000000..ad69cc059ec --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/negative-flex-rounding-crash.html @@ -0,0 +1,46 @@ +<!DOCTYPE html> +<title>CSS Flexbox: Crash caused by rounding error in flex-shrink</title> +<link rel="author" title="Tony Chang" href="mailto:tony@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#resolve-flexible-lengths"> +<link rel="issue" href="https://bugs.webkit.org/show_bug.cgi?id=97606"> +<meta name="assert" content="Check that crash doesn't happen in flex-shrink due to floating point precision errors."> + +<style> +.math { + display: inline-flex; +} +.math > * { + padding-bottom: 0.35em; +} +.mfrac { + display: inline-flex; + flex-direction: column; +} +.mfrac > :first-child { + margin-block-end: 0.2em; +} +.mfrac > :last-child { + margin-block-start: 0.2em; +} +.x { + line-height: 9px; +} +.y { + line-height: 12px; +} +</style> +<div class=math> + <div class=mfrac> + <div class=mfrac> + <div class=x>x</div> + <div class=y>y</div> + </div> + <div class=mfrac> + <div class=mfrac> + <div class=x>x</div> + <div class=y>y</div> + </div> + <div class=x>z</div> + </div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-layout-stale-001.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-layout-stale-001.html new file mode 100644 index 00000000000..bb81546678c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-layout-stale-001.html @@ -0,0 +1,42 @@ +<!doctype html> +<title>CSS Grid: Do not add non-children of the grid into the grid container</title> +<link rel="author" title="Sergio Villar" href="mailto:svillar@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid"> +<link rel="help" href="https://crbug.com/313293"> +<link rel="match" href="reference/grid-layout-stale-001-ref.html"> +<meta name="assert" content="Check that we do not add non-children of the grid into the grid representation."/> + +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<style> + embed { position: absolute; } + .c1 { animation-delay: 45762s; } +</style> + +<p>This test passes if it doesn't crash and it matches the reference.</p> +<div style="display: grid;"> + <embed type="something-not-js"> +</div> + +<script> +function keyPress(key) { + let actions = new test_driver.Actions() + .keyDown(key) + .keyUp(key); + + return actions.send(); +} +function crash() { + var highlight = document.createElementNS("http://www.w3.org/1999/xhtml", "highlight"); + highlight.setAttribute("class", "c1"); + document.body.appendChild(highlight); + + for (i=0; i != 8; i++) + keyPress("\t"); + keyPress("X"); +} + +document.addEventListener("DOMContentLoaded", crash, false); +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-layout-stale-002.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-layout-stale-002.html new file mode 100644 index 00000000000..ea11cd5c5cb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-layout-stale-002.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<title>CSS Grid: Do not leave stale pointers into the grid container</title> +<link rel="author" title="Sergio Villar" href="mailto:svillar@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-grid"> +<link rel="help" href="https://crbug.com/313293"> +<link rel="match" href="reference/grid-layout-stale-002-ref.html"> +<meta name="assert" content="Check that we don't leave stale pointers into the internal grid representation."/> + +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<p>This test passes if it doesn't crash and it matches the reference.</p> +<span style="display: grid" contenteditable=plaintext-only></span> +<script> +function keyPress(key) { + let actions = new test_driver.Actions() + .keyDown(key) + .keyUp(key); + + return actions.send(); +} +function crash() { + keyPress("\t"); + keyPress("X"); + document.designMode = 'on'; + document.execCommand("InsertHTML", false, "<div>"); +} +document.addEventListener("DOMContentLoaded", crash, false); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/reference/grid-layout-stale-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/reference/grid-layout-stale-001-ref.html new file mode 100644 index 00000000000..3ade075c99c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/reference/grid-layout-stale-001-ref.html @@ -0,0 +1,13 @@ +<!doctype html> +<title>CSS Grid: Do not add non-children of the grid into the grid container</title> + +<style> + embed { position: absolute; } + .c1 { animation-delay: 45762s; } +</style> + +<p>This test passes if it doesn't crash and it matches the reference.</p> +<div style="display: grid;"> + <embed type="something-not-js"> +</div> +<highlight class="c1"></highlight> diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/reference/grid-layout-stale-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/reference/grid-layout-stale-002-ref.html new file mode 100644 index 00000000000..5d4d996106d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/reference/grid-layout-stale-002-ref.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<title>CSS Grid: Do not leave stale pointers into the grid container</title> +<p>This test passes if it doesn't crash and it matches the reference.</p> +<span style="display: grid" contenteditable=plaintext-only></span> diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-tracks-stretched-with-different-flex-factors-sum.html b/tests/wpt/web-platform-tests/css/css-grid/grid-tracks-stretched-with-different-flex-factors-sum.html new file mode 100644 index 00000000000..f2c1d5e95a2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-tracks-stretched-with-different-flex-factors-sum.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<title>CSS Grid: 'stretch' content alignment on flex tracks.</title> +<link rel="author" title="Javier Fernandez" href="mailto:jfernandez@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#content-distribution"> +<link rel="help" href="https://drafts.csswg.org/css-align-3/#valdef-align-content-stretch"> +<meta name="assert" content="This test ensures that using flex tracks and 'stretch' value for the content alignment css properties work properly."/> +<link href="/css/support/grid.css" rel="stylesheet"/> +<link href="/css/support/alignment.css" rel="stylesheet"/> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<style> +body { + margin: 0; +} + +.grid { + position: relative; + width: 200px; + height: 300px; +} + +.fractionFlexTracks { + grid-template-columns: auto 0.25fr; + grid-template-rows: 0.2fr auto; +} + +.flexTracks { + grid-template-columns: auto 1fr; + grid-template-rows: 1.5fr auto; +} + +</style> +</head> +<body onload="checkLayout('.grid')"> + +<div style="position: relative"> + <p>When the sum of all track's flex factor is < 1, they don't exhaust the available space, which is used to stretch the 'auto' sized tracks.</p> + <div class="grid fractionFlexTracks contentStretch" data-expected-width="200" data-expected-height="300"> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="150" data-expected-height="60"></div> + <div class="firstRowSecondColumn" data-offset-x="150" data-offset-y="0" data-expected-width="50" data-expected-height="60"></div> + <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="60" data-expected-width="150" data-expected-height="240"></div> + <div class="secondRowSecondColumn" data-offset-x="150" data-offset-y="60" data-expected-width="50" data-expected-height="240"></div> + </div> +</div> + +<div style="position: relative"> + <p>When the sum of all track's flex factor is >= 1, they exhaust the available space, hence the 'stretch' alignment is not applied to the 'auto' sized tracks.</p> + <div class="grid flexTracks contentStretch" data-expected-width="200" data-expected-height="300"> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="0" data-expected-height="300"></div> + <div class="firstRowSecondColumn" data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="300"></div> + <div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="300" data-expected-width="0" data-expected-height="0"></div> + <div class="secondRowSecondColumn" data-offset-x="0" data-offset-y="300" data-expected-width="200" data-expected-height="0"></div> + </div> +</div> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html index 3d0473ea439..33c395d2c2f 100644 --- a/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html +++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/registered-property-revert.html @@ -14,11 +14,33 @@ --inherited: revert; --non-inherited: revert; } + + @keyframes revert_animation { + from { + --animated-inherited: revert; + --animated-non-inherited: revert; + } + to { + --animated-inherited: 100px; + --animated-non-inherited: 100px; + } + } + + #animated_parent { + --animated-inherited: 0px; + } + #animated_child { + animation: revert_animation 10s -5s linear paused; + } </style> <div id=parent> <div id=child> </div> </div> +<div id=animated_parent> + <div id=animated_child> + </div> +</div> <script> CSS.registerProperty({ @@ -35,6 +57,20 @@ CSS.registerProperty({ inherits: false }); +CSS.registerProperty({ + name: "--animated-non-inherited", + syntax: "<length>", + initialValue: "0px", + inherits: false +}); + +CSS.registerProperty({ + name: "--animated-inherited", + syntax: "<length>", + initialValue: "10000px", + inherits: true +}); + test(function(){ let cs = getComputedStyle(child); assert_equals(cs.getPropertyValue('--inherited'), '10px'); @@ -45,4 +81,14 @@ test(function(){ assert_equals(cs.getPropertyValue('--non-inherited'), '0px'); }, 'Non-inherited registered custom property can be reverted'); +test(function(){ + let cs = getComputedStyle(animated_child); + assert_equals(cs.getPropertyValue('--animated-non-inherited'), '50px'); +}, 'Non-inherited registered custom property can be reverted in animation'); + +test(function(){ + let cs = getComputedStyle(animated_child); + assert_equals(cs.getPropertyValue('--animated-inherited'), '50px'); +}, 'Inherited registered custom property can be reverted in animation'); + </script> diff --git a/tests/wpt/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html b/tests/wpt/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html index 30d9bd87bde..afd54263bfe 100644 --- a/tests/wpt/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html +++ b/tests/wpt/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html @@ -97,6 +97,18 @@ }, 'invalid property does not appear'); + // https://github.com/w3c/csswg-drafts/issues/1033 + test(function() { + var elm = newElm(); + var style = elm.style; + + style.color = 'red'; + style.unknown = 'unknown'; + style.fontSize = '10pt'; + + assert_not_equals(getComputedStyle(elm).length, 0, "Should have a style"); + assert_equals(getComputedStyle(elm).cssText, "", "cssText is empty"); + }, 'cssText on computed style declaration returns the empty string'); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/cssom/cssstyledeclaration-custom-properties.html b/tests/wpt/web-platform-tests/css/cssom/cssstyledeclaration-custom-properties.html new file mode 100644 index 00000000000..92cf2c847dc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/cssom/cssstyledeclaration-custom-properties.html @@ -0,0 +1,19 @@ +<!doctype html> +<title>CSS Test: computed style declaration includes custom properties.</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="author" href="https://mozilla.org" title="Mozilla"> +<link rel="help" href="https://drafts.csswg.org/cssom/#dom-window-getcomputedstyle"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/1316"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div style="--foo:bar"></div> +<div></div> +<script> + test(function() { + let withCustom = getComputedStyle(document.querySelector("div")); + let withoutCustom = getComputedStyle(document.querySelector("div + div")); + assert_equals(withCustom.getPropertyValue("--foo"), "bar", "Should be returned from getPropertyValue"); + assert_equals(withCustom.length, withoutCustom.length + 1, "Should show up in .length"); + assert_equals(withCustom[withCustom.length - 1], "--foo", "Should be after all the non-custom properties"); + }, "Custom properties are included in computed style"); +</script> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/fecomposite-non-zero-inoffset-001.html b/tests/wpt/web-platform-tests/css/filter-effects/fecomposite-non-zero-inoffset-001.html new file mode 100644 index 00000000000..b2d71cfa981 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/fecomposite-non-zero-inoffset-001.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<title>CSS Filters: Correct destination rectangle in feComposite</title> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#FilterProperty"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feMorphologyElement"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feFloodElement"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects/#feCompositeElement"> +<link rel="issue" href="https://bugs.chromium.org/p/chromium/issues/detail?id=391200"> +<link rel="match" href="reference/fecomposite-non-zero-inoffset-001-ref.html"> +<meta name="assert" content="This test ensures that feComposite with 'operator=in' works properly on the correct destination rectangle."> +<body> + <div style="filter: url('#filter'); width: 100px; height: 100px; padding: 1px;"> + <div style="background-color: red; width: 98px; height: 98px;"></div> + </div> + <svg width="0" height="0"> + <filter id="filter"> + <feFlood result="outlineColor" flood-color="green"/> + <feMorphology in="SourceAlpha" operator="dilate" radius="1"/> + <feComposite operator="in" in="outlineColor"/> + </filter> + </svg> +</body> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/fecomposite-non-zero-inoffset-001-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/fecomposite-non-zero-inoffset-001-ref.html new file mode 100644 index 00000000000..e4900ad0476 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/fecomposite-non-zero-inoffset-001-ref.html @@ -0,0 +1,4 @@ +<!DOCTYPE html> +<body> + <div style="width: 100px; height: 100px; background-color: green;"></div> +</body> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/reference/remove-filter-repaint-ref.html b/tests/wpt/web-platform-tests/css/filter-effects/reference/remove-filter-repaint-ref.html new file mode 100644 index 00000000000..bde2a93360b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/reference/remove-filter-repaint-ref.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Filters: Repaint a compositing layer</title> + <style> + .backdrop { + position: absolute; + top: 0; + left: 0; + height: 100px; + width: 100px; + background-color: silver; + } + + .overlay { + position: absolute; + top: 50px; + left: 50px; + width: 400px; + height: 100px; + background: gray; + box-shadow: 0 0 4px black; + } + + .play { + font-size: 36pt; + background-color: navy; + color: white; + } + .composited { + will-change: transform; + } + </style> +</head> +<body> + <div class="composited backdrop"></div> + <div class="overlay"> + <span id="play" class="play changed">this should be visible</span> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/filter-effects/remove-filter-repaint.html b/tests/wpt/web-platform-tests/css/filter-effects/remove-filter-repaint.html new file mode 100644 index 00000000000..a9af9db34ee --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/remove-filter-repaint.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Filters: Repaint a compositing layer</title> + <link rel="author" title="Simon Fraser" href="mailto:simon.fraser@apple.com>"> + <link rel="help" href="https://drafts.fxtf.org/filter-effects/#dropshadowEquivalent"> + <link rel="issue" href="https://bugs.webkit.org/show_bug.cgi?id=120135"> + <link rel="issue" href="https://chromiumcodereview.appspot.com/23526037"> + <link rel="match" href="reference/remove-filter-repaint-ref.html"> + <meta name="assert" content="This test ensures that we can repaint the compositing layer when removing a filter on an inline child of a compositing layer."> + <script src="/common/reftest-wait.js"></script> + <style> + .backdrop { + position: absolute; + top: 0; + left: 0; + height: 100px; + width: 100px; + background-color: silver; + } + .overlay { + position: absolute; + top: 50px; + left: 50px; + width: 400px; + height: 100px; + background: gray; + box-shadow: 0 0 4px black; + } + .play { + font-size: 36pt; + background-color: navy; + color: white; + } + .play.changed { + filter: drop-shadow(black 0 0 5px); + } + .composited { + will-change: transform; + } + </style> + <script> + function doTest() { + requestAnimationFrame(function() { + requestAnimationFrame(function() { + document.getElementById('play').classList.remove('changed'); + takeScreenshot(); + }); + }); + } + window.addEventListener('load', doTest, false); + </script> +</head> +<body> + <div class="composited backdrop"></div> + <div class="overlay"> + <span id="play" class="play changed">this should be visible</span> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-label-element/clicking-interactive-content.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-label-element/clicking-interactive-content.html index 60a80fad9d2..c448df0a380 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/the-label-element/clicking-interactive-content.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-label-element/clicking-interactive-content.html @@ -19,17 +19,6 @@ <select></select> <textarea></textarea> <video controls></video> - - <div tabindex=""></div> - - <!-- These are interesting in that even without tabindex, they could become - interactive with the addition/removal of an attribute. --> - <a tabindex=""></a> - <audio tabindex=""></audio> - <img tabindex=""> - <input type=hidden tabindex=""> - <object tabindex=""></object> - <video tabindex=""></video> </template> <script> diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-label-element/clicking-noninteractive-unlabelable-content.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-label-element/clicking-noninteractive-unlabelable-content.html index 233168f5664..be74ed68330 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/the-label-element/clicking-noninteractive-unlabelable-content.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-label-element/clicking-noninteractive-unlabelable-content.html @@ -17,6 +17,16 @@ <input type=hidden> <object></object> <video></video> + + <!-- These are considered interactive content for the purpose of <label> in a + previous version of the HTML Standard, but no longer. --> + <a tabindex=""></a> + <audio tabindex=""></audio> + <div tabindex=""></div> + <img tabindex=""> + <input type=hidden tabindex=""> + <object tabindex=""></object> + <video tabindex=""></video> </template> <script> diff --git a/tests/wpt/web-platform-tests/preload/subresource-integrity-partial-image.html b/tests/wpt/web-platform-tests/preload/subresource-integrity-partial-image.html new file mode 100644 index 00000000000..3abc8399219 --- /dev/null +++ b/tests/wpt/web-platform-tests/preload/subresource-integrity-partial-image.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Subresource Integrity Check + preload + partial image rendering</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<script> +// https://crbug.com/1058045: Chromium crashed when: +// 1. <link rel="preload" as="image" integrity="..." href="url"> +// (strictly speaking the preload scannner) starts preloading the image, +// and the image url takes some time for loading, +// 2. <img> loads the same URL and renders the partial image after some image +// data is received but before fully loaded, and then +// 3. the image is loaded and integrity check is done. + +const t = async_test( + "<link rel='image'> with progressive image shouldn't crash"); + +</script> + +<link + rel="preload" + as="image" + integrity="sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=" + href="/element-timing/resources/progressive-image.py?name=square100.png&numInitial=7500&sleep=1000"> +<img src="/element-timing/resources/progressive-image.py?name=square100.png&numInitial=7500&sleep=1000" + onload="t.step_func_done()()" + onerror="t.unreached_func('image should load because SRI is not checked')()"> diff --git a/tests/wpt/web-platform-tests/webdriver/tests/add_cookie/add.py b/tests/wpt/web-platform-tests/webdriver/tests/add_cookie/add.py index c1a886aafa7..30804c1dd8e 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/add_cookie/add.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/add_cookie/add.py @@ -1,4 +1,5 @@ from datetime import datetime, timedelta +from six import text_type from webdriver.transport import Response @@ -59,11 +60,11 @@ def test_add_domain_cookie(session, url, server_config): cookie = session.cookies("hello") assert "domain" in cookie - assert isinstance(cookie["domain"], basestring) + assert isinstance(cookie["domain"], text_type) assert "name" in cookie - assert isinstance(cookie["name"], basestring) + assert isinstance(cookie["name"], text_type) assert "value" in cookie - assert isinstance(cookie["value"], basestring) + assert isinstance(cookie["value"], text_type) assert cookie["name"] == "hello" assert cookie["value"] == "world" @@ -89,11 +90,11 @@ def test_add_cookie_for_ip(session, url, server_config, configuration): cookie = session.cookies("hello") assert "name" in cookie - assert isinstance(cookie["name"], basestring) + assert isinstance(cookie["name"], text_type) assert "value" in cookie - assert isinstance(cookie["value"], basestring) + assert isinstance(cookie["value"], text_type) assert "domain" in cookie - assert isinstance(cookie["domain"], basestring) + assert isinstance(cookie["domain"], text_type) assert cookie["name"] == "hello" assert cookie["value"] == "world" @@ -118,9 +119,9 @@ def test_add_non_session_cookie(session, url): cookie = session.cookies("hello") assert "name" in cookie - assert isinstance(cookie["name"], basestring) + assert isinstance(cookie["name"], text_type) assert "value" in cookie - assert isinstance(cookie["value"], basestring) + assert isinstance(cookie["value"], text_type) assert "expiry" in cookie assert isinstance(cookie["expiry"], int) @@ -143,9 +144,9 @@ def test_add_session_cookie(session, url): cookie = session.cookies("hello") assert "name" in cookie - assert isinstance(cookie["name"], basestring) + assert isinstance(cookie["name"], text_type) assert "value" in cookie - assert isinstance(cookie["value"], basestring) + assert isinstance(cookie["value"], text_type) if "expiry" in cookie: assert cookie.get("expiry") is None @@ -168,11 +169,11 @@ def test_add_session_cookie_with_leading_dot_character_in_domain(session, url, s cookie = session.cookies("hello") assert "name" in cookie - assert isinstance(cookie["name"], basestring) + assert isinstance(cookie["name"], text_type) assert "value" in cookie - assert isinstance(cookie["value"], basestring) + assert isinstance(cookie["value"], text_type) assert "domain" in cookie - assert isinstance(cookie["domain"], basestring) + assert isinstance(cookie["domain"], text_type) assert cookie["name"] == "hello" assert cookie["value"] == "world" diff --git a/tests/wpt/web-platform-tests/webdriver/tests/execute_async_script/collections.py b/tests/wpt/web-platform-tests/webdriver/tests/execute_async_script/collections.py index 14848da7e29..484a247cffd 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/execute_async_script/collections.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/execute_async_script/collections.py @@ -1,5 +1,7 @@ import os +from six import text_type + from tests.support.asserts import assert_same_element, assert_success from tests.support.inline import inline @@ -52,7 +54,7 @@ def test_file_list(session, tmpdir): for expected, actual in zip(files, value): assert isinstance(actual, dict) assert "name" in actual - assert isinstance(actual["name"], basestring) + assert isinstance(actual["name"], text_type) assert os.path.basename(str(expected)) == actual["name"] diff --git a/tests/wpt/web-platform-tests/webdriver/tests/execute_script/collections.py b/tests/wpt/web-platform-tests/webdriver/tests/execute_script/collections.py index f939713c806..be0b3a018c5 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/execute_script/collections.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/execute_script/collections.py @@ -1,5 +1,7 @@ import os +from six import text_type + from tests.support.asserts import assert_same_element, assert_success from tests.support.inline import inline @@ -45,7 +47,7 @@ def test_file_list(session, tmpdir): for expected, actual in zip(files, value): assert isinstance(actual, dict) assert "name" in actual - assert isinstance(actual["name"], basestring) + assert isinstance(actual["name"], text_type) assert os.path.basename(str(expected)) == actual["name"] diff --git a/tests/wpt/web-platform-tests/webdriver/tests/get_alert_text/get.py b/tests/wpt/web-platform-tests/webdriver/tests/get_alert_text/get.py index d6fdda2d1ed..ad0058e0326 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/get_alert_text/get.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/get_alert_text/get.py @@ -1,3 +1,5 @@ +from six import text_type + from webdriver.error import NoSuchAlertException from tests.support.asserts import assert_error, assert_success @@ -27,7 +29,7 @@ def test_get_alert_text(session): assert isinstance(response.body, dict) assert "value" in response.body alert_text = response.body["value"] - assert isinstance(alert_text, basestring) + assert isinstance(alert_text, text_type) assert alert_text == "Hello" @@ -38,7 +40,7 @@ def test_get_confirm_text(session): assert isinstance(response.body, dict) assert "value" in response.body confirm_text = response.body["value"] - assert isinstance(confirm_text, basestring) + assert isinstance(confirm_text, text_type) assert confirm_text == "Hello" @@ -49,7 +51,7 @@ def test_get_prompt_text(session): assert isinstance(response.body, dict) assert "value" in response.body prompt_text = response.body["value"] - assert isinstance(prompt_text, basestring) + assert isinstance(prompt_text, text_type) assert prompt_text == "Enter Your Name: " diff --git a/tests/wpt/web-platform-tests/webdriver/tests/get_current_url/get.py b/tests/wpt/web-platform-tests/webdriver/tests/get_current_url/get.py index 39c28c61216..c22e3d410c3 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/get_current_url/get.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/get_current_url/get.py @@ -1,3 +1,5 @@ +from six import text_type + from tests.support import platform_name from tests.support.inline import inline from tests.support.asserts import assert_error, assert_success @@ -31,7 +33,7 @@ def test_get_current_url_payload(session): response = get_current_url(session) assert response.status == 200 - assert isinstance(response.body["value"], basestring) + assert isinstance(response.body["value"], text_type) def test_get_current_url_special_pages(session): diff --git a/tests/wpt/web-platform-tests/webdriver/tests/get_named_cookie/get.py b/tests/wpt/web-platform-tests/webdriver/tests/get_named_cookie/get.py index 9ea29c8994e..1fd5f9f1449 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/get_named_cookie/get.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/get_named_cookie/get.py @@ -1,4 +1,6 @@ from datetime import datetime, timedelta +from six import integer_types, text_type + from tests.support.asserts import assert_error, assert_success from tests.support.helpers import clear_all_cookies @@ -28,13 +30,13 @@ def test_get_named_session_cookie(session, url): # table for cookie conversion # https://w3c.github.io/webdriver/webdriver-spec.html#dfn-table-for-cookie-conversion assert "name" in cookie - assert isinstance(cookie["name"], basestring) + assert isinstance(cookie["name"], text_type) assert "value" in cookie - assert isinstance(cookie["value"], basestring) + assert isinstance(cookie["value"], text_type) assert "path" in cookie - assert isinstance(cookie["path"], basestring) + assert isinstance(cookie["path"], text_type) assert "domain" in cookie - assert isinstance(cookie["domain"], basestring) + assert isinstance(cookie["domain"], text_type) assert "secure" in cookie assert isinstance(cookie["secure"], bool) assert "httpOnly" in cookie @@ -60,11 +62,11 @@ def test_get_named_cookie(session, url): assert isinstance(cookie, dict) assert "name" in cookie - assert isinstance(cookie["name"], basestring) + assert isinstance(cookie["name"], text_type) assert "value" in cookie - assert isinstance(cookie["value"], basestring) + assert isinstance(cookie["value"], text_type) assert "expiry" in cookie - assert isinstance(cookie["expiry"], (int, long)) + assert isinstance(cookie["expiry"], integer_types) assert cookie["name"] == "foo" assert cookie["value"] == "bar" @@ -99,9 +101,9 @@ def test_duplicated_cookie(session, url, server_config): assert isinstance(cookie, dict) assert "name" in cookie - assert isinstance(cookie["name"], basestring) + assert isinstance(cookie["name"], text_type) assert "value" in cookie - assert isinstance(cookie["value"], basestring) + assert isinstance(cookie["value"], text_type) assert cookie["name"] == new_cookie["name"] assert cookie["value"] == "newworld" diff --git a/tests/wpt/web-platform-tests/webdriver/tests/new_session/create_alwaysMatch.py b/tests/wpt/web-platform-tests/webdriver/tests/new_session/create_alwaysMatch.py index 097764e4a99..a4cc9efc02e 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/new_session/create_alwaysMatch.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/new_session/create_alwaysMatch.py @@ -2,7 +2,7 @@ import pytest -from conftest import product, flatten +from .conftest import product, flatten from tests.support.asserts import assert_success from tests.new_session.support.create import valid_data diff --git a/tests/wpt/web-platform-tests/webdriver/tests/new_session/create_firstMatch.py b/tests/wpt/web-platform-tests/webdriver/tests/new_session/create_firstMatch.py index f00f6042b08..ec671530f79 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/new_session/create_firstMatch.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/new_session/create_firstMatch.py @@ -2,7 +2,7 @@ import pytest -from conftest import product, flatten +from .conftest import product, flatten from tests.support.asserts import assert_success diff --git a/tests/wpt/web-platform-tests/webdriver/tests/new_session/invalid_capabilities.py b/tests/wpt/web-platform-tests/webdriver/tests/new_session/invalid_capabilities.py index f31ce3b8b6f..afdcea0daf7 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/new_session/invalid_capabilities.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/new_session/invalid_capabilities.py @@ -1,6 +1,6 @@ import pytest -from conftest import product, flatten +from .conftest import product, flatten from tests.new_session.support.create import invalid_data, invalid_extensions from tests.support.asserts import assert_error diff --git a/tests/wpt/web-platform-tests/webdriver/tests/new_session/response.py b/tests/wpt/web-platform-tests/webdriver/tests/new_session/response.py index 16c526ae10b..dc132899881 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/new_session/response.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/new_session/response.py @@ -1,28 +1,29 @@ import uuid - import pytest +from six import text_type + from tests.support.asserts import assert_success def test_sessionid(new_session, add_browser_capabilities): response, _ = new_session({"capabilities": {"alwaysMatch": add_browser_capabilities({})}}) value = assert_success(response) - assert isinstance(value["sessionId"], basestring) + assert isinstance(value["sessionId"], text_type) uuid.UUID(hex=value["sessionId"]) @pytest.mark.parametrize("capability, type", [ - ("browserName", basestring), - ("browserVersion", basestring), - ("platformName", basestring), + ("browserName", text_type), + ("browserVersion", text_type), + ("platformName", text_type), ("acceptInsecureCerts", bool), - ("pageLoadStrategy", basestring), + ("pageLoadStrategy", text_type), ("proxy", dict), ("setWindowRect", bool), ("timeouts", dict), ("strictFileInteractability", bool), - ("unhandledPromptBehavior", basestring), + ("unhandledPromptBehavior", text_type), ]) def test_capability_type(session, capability, type): assert isinstance(session.capabilities, dict) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/support/keys.py b/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/support/keys.py index d4072f5a3f3..26825f04148 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/support/keys.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/support/keys.py @@ -17,9 +17,10 @@ """The Keys implementation.""" -from inspect import getmembers import sys +from inspect import getmembers +from six import text_type class Keys(object): """ @@ -105,7 +106,7 @@ class Keys(object): R_DELETE = u"\uE05D" -ALL_KEYS = getmembers(Keys, lambda x: type(x) == unicode) +ALL_KEYS = getmembers(Keys, lambda x: type(x) == text_type) ALL_EVENTS = { "ADD": { diff --git a/tests/wpt/web-platform-tests/webdriver/tests/status/status.py b/tests/wpt/web-platform-tests/webdriver/tests/status/status.py index f0df16a1ee1..1f0f1bc4fe7 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/status/status.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/status/status.py @@ -1,5 +1,7 @@ import json +from six import text_type + from tests.support.asserts import assert_success @@ -16,7 +18,7 @@ def test_get_status_no_session(http): value = parsed_obj["value"] assert value["ready"] in [True, False] - assert isinstance(value["message"], basestring) + assert isinstance(value["message"], text_type) def test_status_with_session_running_on_endpoint_node(session): diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/asserts.py b/tests/wpt/web-platform-tests/webdriver/tests/support/asserts.py index f65137463b4..5bd7f5b38e7 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/support/asserts.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/support/asserts.py @@ -2,7 +2,7 @@ import base64 import imghdr import struct -from six import PY3 +from six import ensure_binary, text_type, PY3 from webdriver import Element, NoSuchAlertException, WebDriverException @@ -52,8 +52,8 @@ def assert_error(response, error_code): assert response.status == errors[error_code] assert "value" in response.body assert response.body["value"]["error"] == error_code - assert isinstance(response.body["value"]["message"], basestring) - assert isinstance(response.body["value"]["stacktrace"], basestring) + assert isinstance(response.body["value"]["message"], text_type) + assert isinstance(response.body["value"]["stacktrace"], text_type) assert_response_headers(response.headers) @@ -221,6 +221,6 @@ def assert_move_to_coordinates(point, target, events): def assert_png(screenshot): """Test that screenshot is a Base64 encoded PNG file.""" - image = base64.decodestring(screenshot) + image = base64.decodestring(ensure_binary(screenshot)) mime_type = imghdr.what("", image) assert mime_type == "png", "Expected image to be PNG, but it was {}".format(mime_type) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/authentication.py b/tests/wpt/web-platform-tests/webdriver/tests/support/authentication.py index 6f880f3c851..1e88a9e730d 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/support/authentication.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/support/authentication.py @@ -1,4 +1,4 @@ -import urllib +from six.moves.urllib.parse import urlencode def basic_authentication(username=None, password=None, protocol="http"): @@ -8,7 +8,7 @@ def basic_authentication(username=None, password=None, protocol="http"): query = {} return build_url("/webdriver/tests/support/authentication.py", - query=urllib.urlencode(query), + query=urlencode(query), protocol=protocol) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/fixtures.py b/tests/wpt/web-platform-tests/webdriver/tests/support/fixtures.py index ab2aaf4e75d..80ccfddf3d1 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/support/fixtures.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/support/fixtures.py @@ -1,11 +1,14 @@ import copy import json import os -import urlparse import pytest import webdriver +from six import string_types + +from six.moves.urllib.parse import urlunsplit + from tests.support import defaults from tests.support.helpers import cleanup_session from tests.support.http_request import HTTPRequest @@ -172,7 +175,7 @@ def url(server_config): domain = server_config["domains"][domain][subdomain] port = server_config["ports"][protocol][0] host = "{0}:{1}".format(domain, port) - return urlparse.urlunsplit((protocol, host, path, query, fragment)) + return urlunsplit((protocol, host, path, query, fragment)) inner.__name__ = "url" return inner @@ -191,7 +194,7 @@ def create_dialog(session): if text is None: text = "" - assert isinstance(text, basestring), "`text` parameter must be a string" + assert isinstance(text, string_types), "`text` parameter must be a string" # Script completes itself when the user prompt has been opened. # For prompt() dialogs, add a value for the 'default' argument, diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/http_request.py b/tests/wpt/web-platform-tests/webdriver/tests/support/http_request.py index 5e46d97017e..895d1319ac0 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/support/http_request.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/support/http_request.py @@ -1,9 +1,10 @@ import contextlib -import httplib import json from six import text_type +from six.moves.http_client import HTTPConnection + class HTTPRequest(object): def __init__(self, host, port): @@ -33,7 +34,7 @@ class HTTPRequest(object): if isinstance(payload, text_type): payload = body.encode("utf-8") - conn = httplib.HTTPConnection(self.host, self.port) + conn = HTTPConnection(self.host, self.port) try: conn.request(method, path, payload) yield conn.getresponse() diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/image.py b/tests/wpt/web-platform-tests/webdriver/tests/support/image.py index 81dd933943f..6149ccccbe3 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/support/image.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/support/image.py @@ -2,11 +2,13 @@ import base64 import math import struct +from six import ensure_binary + from tests.support.asserts import assert_png def png_dimensions(screenshot): assert_png(screenshot) - image = base64.decodestring(screenshot) + image = base64.decodestring(ensure_binary(screenshot)) width, height = struct.unpack(">LL", image[16:24]) return int(width), int(height) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/support/inline.py b/tests/wpt/web-platform-tests/webdriver/tests/support/inline.py index b65b9cb8b11..15bc26e54c6 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/support/inline.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/support/inline.py @@ -1,6 +1,6 @@ """Helpers for inlining extracts of documents in tests.""" -import urllib +from six.moves.urllib.parse import urlencode BOILERPLATES = { @@ -58,7 +58,7 @@ def inline(src, doctype="html", mime=None, charset=None, **kwargs): query = {"doc": doc, "mime": mime, "charset": charset} return build_url( "/webdriver/tests/support/inline.py", - query=urllib.urlencode(query), + query=urlencode(query), **kwargs) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/switch_to_frame/cross_origin.py b/tests/wpt/web-platform-tests/webdriver/tests/switch_to_frame/cross_origin.py index 4425a3ab901..905f1eb56dc 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/switch_to_frame/cross_origin.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/switch_to_frame/cross_origin.py @@ -1,4 +1,4 @@ -from urlparse import urlparse +from six.moves.urllib.parse import urlparse import webdriver.protocol as protocol diff --git a/tests/wpt/web-platform-tests/webdriver/tests/switch_to_frame/switch.py b/tests/wpt/web-platform-tests/webdriver/tests/switch_to_frame/switch.py index 67b855a96d9..f9b0e6fc1fc 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/switch_to_frame/switch.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/switch_to_frame/switch.py @@ -18,7 +18,7 @@ def switch_to_frame(session, frame): def frameset(*docs): - frames = map(lambda doc: "<frame src='{}'></frame>".format(inline(doc)), docs) + frames = list(map(lambda doc: "<frame src='{}'></frame>".format(inline(doc)), docs)) return "<frameset rows='{}'>\n{}</frameset>".format(len(frames) * "*,", "\n".join(frames)) diff --git a/tests/wpt/web-platform-tests/webxr/hit-test/xrRay_constructor.https.html b/tests/wpt/web-platform-tests/webxr/hit-test/xrRay_constructor.https.html index 08f20142e38..d4d727785f1 100644 --- a/tests/wpt/web-platform-tests/webxr/hit-test/xrRay_constructor.https.html +++ b/tests/wpt/web-platform-tests/webxr/hit-test/xrRay_constructor.https.html @@ -91,25 +91,23 @@ let constructor_tests = function() { { // Check that we throw exception on direction too close to 0,0,0: let originDict = {x : 10.0, y : 10.0, z : 10.0, w : 1.0}; - let directionDict = {x : 0.0, y : 0.0, z : 0.0, w : 0.0}; + let directionDict = {x : 1.0, y : 0.0, z : 0.0, w : 0.0}; - try { - let xrRay = new XRRay( + assert_throws_js(TypeError, () => new XRRay( DOMPoint.fromPoint(originDict), - DOMPoint.fromPoint(directionDict)); - - assert(false, "origin-custom-direction-zero:exception not thrown"); - } - catch(e) - { - if(e instanceof DOMException) { - assert_equals(e.name, "InvalidStateError", "origin-custom-direction-zero:incorrect DOM exception thrown"); - } else { - assert(false, "origin-custom-direction-zero:other exception thrown: " + e); - } - } - } + DOMPoint.fromPoint({x : 0.0, y : 0.0, z : 0.0, w : 0.0}) + ), "Constructor should throw for zero direction"); + + assert_throws_js(TypeError, () => new XRRay( + DOMPoint.fromPoint(originDict), + DOMPoint.fromPoint({x : 1.0, y : 0.0, z : 0.0, w : 0.5}) + ), "Constructor should throw for nonzero direction w coordinate"); + assert_throws_js(TypeError, () => new XRRay( + DOMPoint.fromPoint({x : 10.0, y : 10.0, z : 10.0, w : 0.5}), + DOMPoint.fromPoint(directionDict) + ), "Constructor should throw for non-1 origin w coordinate"); + } // // Constructor 2 - from rigid transform. // diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js index 4e2adc633fd..7e428e21550 100644 --- a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js +++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js @@ -29,26 +29,26 @@ function createFakeWorld( // Faces: const FRONT_WALL_AND_FLOOR_FACES = [ // Front wall: - [BOTTOM_LEFT_FRONT, BOTTOM_RIGHT_FRONT, TOP_RIGHT_FRONT], - [BOTTOM_LEFT_FRONT, TOP_RIGHT_FRONT, TOP_LEFT_FRONT], + { vertices: [BOTTOM_LEFT_FRONT, BOTTOM_RIGHT_FRONT, TOP_RIGHT_FRONT] }, + { vertices: [BOTTOM_LEFT_FRONT, TOP_RIGHT_FRONT, TOP_LEFT_FRONT] }, // Floor: - [BOTTOM_LEFT_FRONT, BOTTOM_RIGHT_FRONT, BOTTOM_RIGHT_BACK], - [BOTTOM_LEFT_FRONT, BOTTOM_LEFT_BACK, BOTTOM_RIGHT_BACK], + { vertices: [BOTTOM_LEFT_FRONT, BOTTOM_RIGHT_FRONT, BOTTOM_RIGHT_BACK] }, + { vertices: [BOTTOM_LEFT_FRONT, BOTTOM_LEFT_BACK, BOTTOM_RIGHT_BACK] }, ]; const CEILING_FACES = [ // Ceiling: - [TOP_LEFT_FRONT, TOP_RIGHT_FRONT, TOP_RIGHT_BACK], - [TOP_LEFT_FRONT, TOP_LEFT_BACK, TOP_RIGHT_BACK], + { vertices: [TOP_LEFT_FRONT, TOP_RIGHT_FRONT, TOP_RIGHT_BACK] }, + { vertices: [TOP_LEFT_FRONT, TOP_LEFT_BACK, TOP_RIGHT_BACK] }, ]; const SIDE_WALLS_FACES = [ // Left: - [BOTTOM_LEFT_FRONT, TOP_LEFT_FRONT, TOP_LEFT_BACK], - [BOTTOM_LEFT_FRONT, BOTTOM_LEFT_BACK, TOP_LEFT_BACK], + { vertices: [BOTTOM_LEFT_FRONT, TOP_LEFT_FRONT, TOP_LEFT_BACK] }, + { vertices: [BOTTOM_LEFT_FRONT, BOTTOM_LEFT_BACK, TOP_LEFT_BACK] }, // Right: - [BOTTOM_RIGHT_FRONT, TOP_RIGHT_FRONT, TOP_RIGHT_BACK], - [BOTTOM_RIGHT_FRONT, BOTTOM_RIGHT_BACK, TOP_RIGHT_BACK], + { vertices: [BOTTOM_RIGHT_FRONT, TOP_RIGHT_FRONT, TOP_RIGHT_BACK] }, + { vertices: [BOTTOM_RIGHT_FRONT, BOTTOM_RIGHT_BACK, TOP_RIGHT_BACK] }, ]; // Regions: |