From 41b281893fbffb7b4013a43575a2d84c74963f8b Mon Sep 17 00:00:00 2001 From: WPT Sync Bot Date: Fri, 10 Jan 2020 08:22:32 +0000 Subject: [PATCH] Update web-platform-tests to revision 2a73e37c60b18846d9d2798c845242f209d74644 --- .../FileAPI/url/url-with-fetch.any.js.ini | 3 + tests/wpt/metadata/MANIFEST.json | 212 +++++++++-- .../css/CSS2/ui/outline-width-013.xht.ini | 2 + ...fore-initial-box-construction-001.html.ini | 5 + ...ryList-addListener-removeListener.html.ini | 3 + .../elementsFromPoint-iframes.html.ini | 3 - .../fetch/content-type/response.window.js.ini | 11 +- .../fetch/content-type/script.window.js.ini | 3 + .../nosniff/parsing-nosniff.window.js.ini | 3 - ...mbedded-credentials.tentative.sub.html.ini | 8 +- .../traverse_the_history_1.html.ini | 4 - .../skip-document-with-fragment.html.ini | 4 - .../summary-display-list-item.html.ini | 2 + ...rame_sandbox_popups_nonescaping-3.html.ini | 3 +- .../document-write/iframe_005.html.ini | 4 + .../crossorigin-sandwich-TAO.sub.html.ini | 1 - .../take_element_screenshot/iframe.py.ini | 3 + .../tests/take_screenshot/iframe.py.ini | 7 + .../webmessaging/with-ports/018.html.ini | 5 - .../semantics/multiple-workers/005.html.ini | 1 + ...canvas-createImageBitmap-video-resize.html | 2 +- ...t-box-horizontal-reverse-variants-ref.html | 73 ++++ ...ebkit-box-horizontal-reverse-variants.html | 70 ++++ ...ebkit-box-horizontal-rtl-variants-ref.html | 72 ++++ .../webkit-box-horizontal-rtl-variants.html | 69 ++++ .../compat/webkit-box-rtl-flex-ref.html | 24 ++ .../compat/webkit-box-rtl-flex.html | 26 ++ .../cookies/http-state/general-tests.html | 20 +- .../resources/test-files/0004-expected | 1 + .../resources/test-files/0021-expected | 2 +- .../resources/test-files/0023-expected | 1 + .../resources/test-files/0024-expected | 1 + .../resources/test-files/0025-expected | 1 + .../resources/test-files/0026-expected | 1 + .../resources/test-files/0027-expected | 1 + .../resources/test-files/0028-expected | 1 + ...n-before-initial-box-construction-001.html | 53 +++ .../css-animations/support/empty-sheet.css | 0 ...lign-content-distribution-vertical-lr.html | 358 ++++++++++++++++++ ...lign-content-distribution-vertical-rl.html | 358 ++++++++++++++++++ .../grid-align-content-distribution.html | 358 ++++++++++++++++++ .../coop-navigated-history-popup.https.html | 18 + .../resources/common.js | 14 +- .../resources/coop-coep.py | 33 +- .../summary-display-list-item-ref.html | 28 ++ .../summary-display-list-item.html | 34 ++ .../interfaces/reporting.idl | 27 -- .../interfaces/webauthn.idl | 4 +- .../web-platform-tests/interfaces/webrtc.idl | 2 - tests/wpt/web-platform-tests/lint.whitelist | 1 + .../resources/test/conftest.py | 19 +- .../tests/functional/assert-array-equals.html | 163 ++++++++ .../resources/test/variants.js | 2 + .../resources/testharness.js | 56 ++- .../tools/ci/azure/install_chrome.yml | 9 +- .../ci/azure/safari-technology-preview.rb | 8 +- .../tools/webdriver/webdriver/client.py | 4 + .../tests/take_element_screenshot/__init__.py | 20 +- .../tests/take_element_screenshot/iframe.py | 100 ++++- .../take_element_screenshot/screenshot.py | 5 +- .../tests/take_screenshot/__init__.py | 14 +- .../webdriver/tests/take_screenshot/iframe.py | 64 +++- 62 files changed, 2230 insertions(+), 174 deletions(-) create mode 100644 tests/wpt/metadata/css/CSS2/ui/outline-width-013.xht.ini create mode 100644 tests/wpt/metadata/css/css-animations/animation-before-initial-box-construction-001.html.ini delete mode 100644 tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini create mode 100644 tests/wpt/metadata/html/rendering/the-details-element/summary-display-list-item.html.ini create mode 100644 tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini create mode 100644 tests/wpt/metadata/webdriver/tests/take_screenshot/iframe.py.ini delete mode 100644 tests/wpt/metadata/webmessaging/with-ports/018.html.ini create mode 100644 tests/wpt/web-platform-tests/compat/webkit-box-horizontal-reverse-variants-ref.html create mode 100644 tests/wpt/web-platform-tests/compat/webkit-box-horizontal-reverse-variants.html create mode 100644 tests/wpt/web-platform-tests/compat/webkit-box-horizontal-rtl-variants-ref.html create mode 100644 tests/wpt/web-platform-tests/compat/webkit-box-horizontal-rtl-variants.html create mode 100644 tests/wpt/web-platform-tests/compat/webkit-box-rtl-flex-ref.html create mode 100644 tests/wpt/web-platform-tests/compat/webkit-box-rtl-flex.html create mode 100644 tests/wpt/web-platform-tests/css/css-animations/animation-before-initial-box-construction-001.html create mode 100644 tests/wpt/web-platform-tests/css/css-animations/support/empty-sheet.css create mode 100644 tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-lr.html create mode 100644 tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-content-distribution-vertical-rl.html create mode 100644 tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-content-distribution.html create mode 100644 tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https.html create mode 100644 tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-display-list-item-ref.html create mode 100644 tests/wpt/web-platform-tests/html/rendering/the-details-element/summary-display-list-item.html create mode 100644 tests/wpt/web-platform-tests/resources/test/tests/functional/assert-array-equals.html diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index abf0d50aff3..4c1aa18e695 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -2,6 +2,9 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + [url-with-fetch.any.html] [Revoke blob URL after creating Request, will fetch] diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index be1d74a725a..99bd02de024 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -20399,6 +20399,42 @@ {} ] ], + "compat/webkit-box-horizontal-reverse-variants.html": [ + [ + "compat/webkit-box-horizontal-reverse-variants.html", + [ + [ + "/compat/webkit-box-horizontal-reverse-variants-ref.html", + "==" + ] + ], + {} + ] + ], + "compat/webkit-box-horizontal-rtl-variants.html": [ + [ + "compat/webkit-box-horizontal-rtl-variants.html", + [ + [ + "/compat/webkit-box-horizontal-rtl-variants-ref.html", + "==" + ] + ], + {} + ] + ], + "compat/webkit-box-rtl-flex.html": [ + [ + "compat/webkit-box-rtl-flex.html", + [ + [ + "/compat/webkit-box-rtl-flex-ref.html", + "==" + ] + ], + {} + ] + ], "compat/webkit-linear-gradient-diff-unprefixed.html": [ [ "compat/webkit-linear-gradient-diff-unprefixed.html", @@ -206867,6 +206903,18 @@ {} ] ], + "html/rendering/the-details-element/summary-display-list-item.html": [ + [ + "html/rendering/the-details-element/summary-display-list-item.html", + [ + [ + "/html/rendering/the-details-element/summary-display-list-item-ref.html", + "==" + ] + ], + {} + ] + ], "html/rendering/widgets/button-layout/anonymous-button-content-box.html": [ [ "html/rendering/widgets/button-layout/anonymous-button-content-box.html", @@ -218528,6 +218576,15 @@ "compat/webkit-box-fieldset-ref.html": [ [] ], + "compat/webkit-box-horizontal-reverse-variants-ref.html": [ + [] + ], + "compat/webkit-box-horizontal-rtl-variants-ref.html": [ + [] + ], + "compat/webkit-box-rtl-flex-ref.html": [ + [] + ], "compat/webkit-linear-gradient-diff-unprefixed-ref.html": [ [] ], @@ -247355,6 +247412,9 @@ "css/css-animations/animationevent-interface.js": [ [] ], + "css/css-animations/support/empty-sheet.css": [ + [] + ], "css/css-animations/support/testcommon.js": [ [] ], @@ -276905,6 +276965,9 @@ "html/rendering/the-details-element/single-summary.html": [ [] ], + "html/rendering/the-details-element/summary-display-list-item-ref.html": [ + [] + ], "html/rendering/widgets/button-layout/anonymous-button-content-box-ref.html": [ [] ], @@ -284861,6 +284924,9 @@ "resources/test/tests/functional/api-tests-3.html": [ [] ], + "resources/test/tests/functional/assert-array-equals.html": [ + [] + ], "resources/test/tests/functional/force_timeout.html": [ [] ], @@ -321851,6 +321917,12 @@ {} ] ], + "css/css-animations/animation-before-initial-box-construction-001.html": [ + [ + "css/css-animations/animation-before-initial-box-construction-001.html", + {} + ] + ], "css/css-animations/animation-iteration-count-calc.html": [ [ "css/css-animations/animation-iteration-count-calc.html", @@ -325407,6 +325479,24 @@ {} ] ], + "css/css-grid/alignment/grid-align-content-distribution-vertical-lr.html": [ + [ + "css/css-grid/alignment/grid-align-content-distribution-vertical-lr.html", + {} + ] + ], + "css/css-grid/alignment/grid-align-content-distribution-vertical-rl.html": [ + [ + "css/css-grid/alignment/grid-align-content-distribution-vertical-rl.html", + {} + ] + ], + "css/css-grid/alignment/grid-align-content-distribution.html": [ + [ + "css/css-grid/alignment/grid-align-content-distribution.html", + {} + ] + ], "css/css-grid/alignment/grid-align-content.html": [ [ "css/css-grid/alignment/grid-align-content.html", @@ -361856,6 +361946,14 @@ {} ] ], + "html/cross-origin-opener-policy/coop-navigated-history-popup.https.html": [ + [ + "html/cross-origin-opener-policy/coop-navigated-history-popup.https.html", + { + "timeout": "long" + } + ] + ], "html/cross-origin-opener-policy/coop-navigated-popup.https.html": [ [ "html/cross-origin-opener-policy/coop-navigated-popup.https.html", @@ -467883,7 +467981,7 @@ "testharness" ], "2dcontext/imagebitmap/canvas-createImageBitmap-video-resize.html": [ - "94fc0d1c57ac6cab4e5f637584d5e1d9db7e1a5c", + "0a4f91d085d60523d49b190d3064aad222cc56d3", "testharness" ], "2dcontext/imagebitmap/common.sub.js": [ @@ -476926,6 +477024,22 @@ "c3a2e64c114ef78507213ab95f5cde91cac3bbbe", "reftest" ], + "compat/webkit-box-horizontal-reverse-variants-ref.html": [ + "72d0b2c6f6851764453f79cf71fc19be73bcb0e8", + "support" + ], + "compat/webkit-box-horizontal-reverse-variants.html": [ + "09dba694f260c6e5536663cac6151427a49d6dc5", + "reftest" + ], + "compat/webkit-box-horizontal-rtl-variants-ref.html": [ + "42321c506979b2ec08814cf024dc95da24f3d6d2", + "support" + ], + "compat/webkit-box-horizontal-rtl-variants.html": [ + "085a5899bc8e78214d57e691b0e5c3b3fc2904aa", + "reftest" + ], "compat/webkit-box-ignore-box-pack.html": [ "80b52fbf1fe13a7c9ec5288f301194e40a381430", "testharness" @@ -476934,6 +477048,14 @@ "30c243b301fbafc55a03aae0286ba4c2b1983da1", "testharness" ], + "compat/webkit-box-rtl-flex-ref.html": [ + "10b9eb73fd9017746116e55d42df434ba33fec1e", + "support" + ], + "compat/webkit-box-rtl-flex.html": [ + "d20b3a0a9dbab237a799f62504b9b1ea7b90a564", + "reftest" + ], "compat/webkit-box-vertically-centered.html": [ "4932274e906172f37ceed65067141817aa1b26ab", "testharness" @@ -497883,7 +498005,7 @@ "testharness" ], "cookies/http-state/general-tests.html": [ - "d80527f9b0aa22c0611edff546d5663198a412bb", + "f563bf7c68d662be8182ade0b4fd1629295df754", "testharness" ], "cookies/http-state/mozilla-tests.html": [ @@ -497951,7 +498073,7 @@ "support" ], "cookies/http-state/resources/test-files/0004-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0004-test": [ @@ -498087,7 +498209,7 @@ "support" ], "cookies/http-state/resources/test-files/0021-expected": [ - "a43cb004436a02f18cda39625fc2126f373dd7ae", + "445a5929e81e05151a90913c6ef2597a1aafd3e8", "support" ], "cookies/http-state/resources/test-files/0021-test": [ @@ -498103,7 +498225,7 @@ "support" ], "cookies/http-state/resources/test-files/0023-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0023-test": [ @@ -498111,7 +498233,7 @@ "support" ], "cookies/http-state/resources/test-files/0024-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0024-test": [ @@ -498119,7 +498241,7 @@ "support" ], "cookies/http-state/resources/test-files/0025-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0025-test": [ @@ -498127,7 +498249,7 @@ "support" ], "cookies/http-state/resources/test-files/0026-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0026-test": [ @@ -498135,7 +498257,7 @@ "support" ], "cookies/http-state/resources/test-files/0027-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "973d3847c04c2243d89086aa490a5e54f2d41f10", "support" ], "cookies/http-state/resources/test-files/0027-test": [ @@ -498143,7 +498265,7 @@ "support" ], "cookies/http-state/resources/test-files/0028-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0028-test": [ @@ -560922,6 +561044,10 @@ "3ef19970007d4bb6a889f9601bc7c910f619f841", "support" ], + "css/css-animations/animation-before-initial-box-construction-001.html": [ + "558c5ea18699f3856c7d34b976f920b1fd7fd5b0", + "testharness" + ], "css/css-animations/animation-common-ref.html": [ "ddc7da67ddf5fed83e653d1130a65f5c1e3a6dec", "support" @@ -561410,6 +561536,10 @@ "792fda33ed8b0bacf355e62066ec05d54cc5c729", "testharness" ], + "css/css-animations/support/empty-sheet.css": [ + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "support" + ], "css/css-animations/support/testcommon.js": [ "b4fde4b967de2eb67cb3e0819c3a896375e861f9", "support" @@ -582706,6 +582836,18 @@ "d45df4bc2231cbda5dee1bafc3f386f008024d79", "support" ], + "css/css-grid/alignment/grid-align-content-distribution-vertical-lr.html": [ + "8217f4dd2c3cfd031aece87d54a78d5bcec640ca", + "testharness" + ], + "css/css-grid/alignment/grid-align-content-distribution-vertical-rl.html": [ + "096e3fd6910a09ba5097b66acdb1dcf8a6d5326e", + "testharness" + ], + "css/css-grid/alignment/grid-align-content-distribution.html": [ + "7b66ddb995191c67278d861aa6cb6a637bc6adaf", + "testharness" + ], "css/css-grid/alignment/grid-align-content.html": [ "fb3f7007ee19189a09de9c1f786176c317b7ee14", "testharness" @@ -654318,6 +654460,10 @@ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", "support" ], + "html/cross-origin-opener-policy/coop-navigated-history-popup.https.html": [ + "bd1cabafd4164e51804b0760dbf45885f3df3520", + "testharness" + ], "html/cross-origin-opener-policy/coop-navigated-popup.https.html": [ "3c6019ace0b308562cca08d6d6bfd6484882e1db", "testharness" @@ -654519,11 +654665,11 @@ "support" ], "html/cross-origin-opener-policy/resources/common.js": [ - "53b80bb6e998e6f93a46176b58be4c016275ce0f", + "477bc6c948f29cc18dc987e828eb5799b4a946ab", "support" ], "html/cross-origin-opener-policy/resources/coop-coep.py": [ - "8691e1b59d3134ef210259ed9501d123c002f88c", + "e6f655ab728107e4bac31cd7748711f719b01bd3", "support" ], "html/cross-origin-opener-policy/resources/postback.html": [ @@ -661522,6 +661668,14 @@ "1f09e7e75f9126982a07902ae0693f9ea2fd5823", "support" ], + "html/rendering/the-details-element/summary-display-list-item-ref.html": [ + "31e98d3fdca8fff9fe88929c8075643fca3abb40", + "support" + ], + "html/rendering/the-details-element/summary-display-list-item.html": [ + "c2e96e987ea943e29626e0cfd013ef6d6cae3bbc", + "reftest" + ], "html/rendering/unmapped-attributes.html": [ "3f457eb492f0b72b2a9c5891e8784d0b69958b38", "testharness" @@ -673435,7 +673589,7 @@ "support" ], "interfaces/reporting.idl": [ - "f5370e8f1e656acf7409dbda907ee9672d5e8ed1", + "d42f0bac59c2fa6d8f94402f7b6e1e29de379123", "support" ], "interfaces/requestidlecallback.idl": [ @@ -673551,7 +673705,7 @@ "support" ], "interfaces/webauthn.idl": [ - "29025f35eecb5c82b33ffcc7039c4a99f081f4e3", + "56c2856b19a76d85a0b0495d620c025247ad3f42", "support" ], "interfaces/webdriver.idl": [ @@ -673583,7 +673737,7 @@ "support" ], "interfaces/webrtc.idl": [ - "badbe4df1dccd4113cb76e47f4a842f20d0d8963", + "053afdcb13587543e7da6140e72101f3892a05a0", "support" ], "interfaces/webusb.idl": [ @@ -674371,7 +674525,7 @@ "testharness" ], "lint.whitelist": [ - "353922a456c4dbeacd2ab6d651b64be00c9a4903", + "425730feea72429b66926298d3716b8164648211", "support" ], "loading/lazyload/META.yml": [ @@ -702511,7 +702665,7 @@ "support" ], "resources/test/conftest.py": [ - "4caa7943fb7ba125e5c51437e7a70aecbd3989dd", + "857f1b41bcb11c422d6603e79d8c98a6b1dfbb07", "support" ], "resources/test/harness.html": [ @@ -702582,6 +702736,10 @@ "d32b4d8bc7ddfef398d769f73478e0f3f075f871", "support" ], + "resources/test/tests/functional/assert-array-equals.html": [ + "d56419d1f313f34674d778236c5f6e74b5260def", + "support" + ], "resources/test/tests/functional/force_timeout.html": [ "a43759530ad8cd7e6bc61fe367db34bbf7a32e15", "support" @@ -702851,7 +703009,7 @@ "support" ], "resources/test/variants.js": [ - "eebac6f7d14c2f8ee4b4eead727081a5e494cee4", + "c40085a329f7ad5fbb34ed842542db29c2bc3734", "support" ], "resources/test/wptserver.py": [ @@ -702879,7 +703037,7 @@ "support" ], "resources/testharness.js": [ - "f289e7797201d7d9fa569c2864649571bd50b54c", + "2c3664dfa6ab5518019dc6f2c27e275bb6a62a16", "support" ], "resources/testharness.js.headers": [ @@ -713459,7 +713617,7 @@ "support" ], "tools/ci/azure/install_chrome.yml": [ - "6bd5c2334ad4e3e4d5d6faaf8005f4e0b44cf1fe", + "fd650e80aaad309c8e983274d2b823bba91b1fb1", "support" ], "tools/ci/azure/install_edge.yml": [ @@ -713487,7 +713645,7 @@ "support" ], "tools/ci/azure/safari-technology-preview.rb": [ - "a3772b75e462194eb0de5ea2c7532a8248ec3d79", + "2d4912abbff674291e4e9497b0a37b6c6a9989c8", "support" ], "tools/ci/azure/system_info.yml": [ @@ -718351,7 +718509,7 @@ "support" ], "tools/webdriver/webdriver/client.py": [ - "0c5bbff5629868fdc48a1a41cf882fabe5617c1b", + "cf4c5fd35fd98bb54ba248d1c1c31590310727ed", "support" ], "tools/webdriver/webdriver/error.py": [ @@ -727775,15 +727933,15 @@ "wdspec" ], "webdriver/tests/take_element_screenshot/__init__.py": [ - "9de8792460797f4a31ee50d112c7132a2c2714ad", + "9a82cc48eab7993dcd6588d89b5aae9ed4ebfc82", "support" ], "webdriver/tests/take_element_screenshot/iframe.py": [ - "242122f0b5e7359c364a8aa1da345fc3da15acf1", + "83f55deff753a4525839d3c0675acfb459f64395", "wdspec" ], "webdriver/tests/take_element_screenshot/screenshot.py": [ - "fd460b656ae307a289174f9180ecc9ed23f0da07", + "50d33a266db75f0fc918ac5fa6d1edc6e548385f", "wdspec" ], "webdriver/tests/take_element_screenshot/user_prompts.py": [ @@ -727791,11 +727949,11 @@ "wdspec" ], "webdriver/tests/take_screenshot/__init__.py": [ - "c07f8d167030d03abbb263ef08d8846bb7a71eba", + "f3001d946df56e58c4e3fa1319db12bf29f3e341", "support" ], "webdriver/tests/take_screenshot/iframe.py": [ - "66df6ec94935554340f916e4c2d9bb88012de1b5", + "601c039d56de0aa2937ac73675ba59792cbdcd17", "wdspec" ], "webdriver/tests/take_screenshot/screenshot.py": [ diff --git a/tests/wpt/metadata/css/CSS2/ui/outline-width-013.xht.ini b/tests/wpt/metadata/css/CSS2/ui/outline-width-013.xht.ini new file mode 100644 index 00000000000..ea59bb35dd5 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/ui/outline-width-013.xht.ini @@ -0,0 +1,2 @@ +[outline-width-013.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-animations/animation-before-initial-box-construction-001.html.ini b/tests/wpt/metadata/css/css-animations/animation-before-initial-box-construction-001.html.ini new file mode 100644 index 00000000000..695b6eadc72 --- /dev/null +++ b/tests/wpt/metadata/css/css-animations/animation-before-initial-box-construction-001.html.ini @@ -0,0 +1,5 @@ +[animation-before-initial-box-construction-001.html] + expected: ERROR + [animations started before initial-containing-block creation properly function] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini index 628b1fab770..c884dc82eab 100644 --- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini +++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini @@ -2,3 +2,6 @@ [listeners are called when \'' % filename) if len(self.variants) == 0: - raise ValueError('No test variants specified in file %s' % filename) + self.variants = DEFAULT_VARIANTS elif self.type == 'unit' and self.expected: raise ValueError('Unit tests must not specify expected report data') @@ -153,7 +155,9 @@ class HTMLItem(pytest.Item, pytest.Collector): 'runTest("%s", "foo", arguments[0])' % self.url ) - summarized = self._summarize(actual) + summarized = self._summarize(copy.deepcopy(actual)) + + print(json.dumps(summarized, indent=2)) assert summarized[u'summarized_status'][u'status_string'] == u'OK', summarized[u'summarized_status'][u'message'] for test in summarized[u'summarized_tests']: @@ -173,12 +177,15 @@ class HTMLItem(pytest.Item, pytest.Collector): test_url = self.url + variant actual = driver.execute_async_script('runTest("%s", "foo", arguments[0])' % test_url) + summarized = self._summarize(copy.deepcopy(actual)) + + print(json.dumps(summarized, indent=2)) + # Test object ordering is not guaranteed. This weak assertion verifies # that the indices are unique and sequential indices = [test_obj.get('index') for test_obj in actual['tests']] self._assert_sequence(indices) - summarized = self._summarize(actual) self.expected[u'summarized_tests'].sort(key=lambda test_obj: test_obj.get('name')) assert summarized == self.expected diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/assert-array-equals.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/assert-array-equals.html new file mode 100644 index 00000000000..d56419d1f31 --- /dev/null +++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/assert-array-equals.html @@ -0,0 +1,163 @@ + +assert_array_equals + + + +
+ + diff --git a/tests/wpt/web-platform-tests/resources/test/variants.js b/tests/wpt/web-platform-tests/resources/test/variants.js index eebac6f7d14..c40085a329f 100644 --- a/tests/wpt/web-platform-tests/resources/test/variants.js +++ b/tests/wpt/web-platform-tests/resources/test/variants.js @@ -1,5 +1,7 @@ (function() { 'use strict'; + // NOTE: When new default variants are added DEFAULT_VARIANTS in conftest.py + // must also be updated var variants = { /** * Tests are executed in the absence of the global Promise constructor by diff --git a/tests/wpt/web-platform-tests/resources/testharness.js b/tests/wpt/web-platform-tests/resources/testharness.js index f289e779720..2c3664dfa6a 100644 --- a/tests/wpt/web-platform-tests/resources/testharness.js +++ b/tests/wpt/web-platform-tests/resources/testharness.js @@ -1006,7 +1006,15 @@ policies and contribution forms [3]. seen.push(val); } if (Array.isArray(val)) { - return "[" + val.map(function(x) {return format_value(x, seen);}).join(", ") + "]"; + let output = "["; + if (val.beginEllipsis !== undefined) { + output += "…, "; + } + output += val.map(function(x) {return format_value(x, seen);}).join(", "); + if (val.endEllipsis !== undefined) { + output += ", …"; + } + return output + "]"; } switch (typeof val) { @@ -1178,25 +1186,57 @@ policies and contribution forms [3]. function assert_array_equals(actual, expected, description) { + const max_array_length = 20; + function shorten_array(arr, offset = 0) { + // Make ", …" only show up when it would likely reduce the length, not accounting for + // fonts. + if (arr.length < max_array_length + 2) { + return arr; + } + // By default we want half the elements after the offset and half before + // But if that takes us past the end of the array, we have more before, and + // if it takes us before the start we have more after. + const length_after_offset = Math.floor(max_array_length / 2); + let upper_bound = Math.min(length_after_offset + offset, arr.length); + const lower_bound = Math.max(upper_bound - max_array_length, 0); + + if (lower_bound === 0) { + upper_bound = max_array_length; + } + + const output = arr.slice(lower_bound, upper_bound); + if (lower_bound > 0) { + output.beginEllipsis = true; + } + if (upper_bound < arr.length) { + output.endEllipsis = true; + } + return output; + } + assert(typeof actual === "object" && actual !== null && "length" in actual, "assert_array_equals", description, "value is ${actual}, expected array", {actual:actual}); assert(actual.length === expected.length, "assert_array_equals", description, - "lengths differ, expected ${expected} got ${actual}", - {expected:expected.length, actual:actual.length}); + "lengths differ, expected array ${expected} length ${expectedLength}, got ${actual} length ${actualLength}", + {expected:shorten_array(expected, expected.length - 1), expectedLength:expected.length, + actual:shorten_array(actual, actual.length - 1), actualLength:actual.length + }); for (var i = 0; i < actual.length; i++) { assert(actual.hasOwnProperty(i) === expected.hasOwnProperty(i), "assert_array_equals", description, - "property ${i}, property expected to be ${expected} but was ${actual}", + "expected property ${i} to be ${expected} but was ${actual} (expected array ${arrayExpected} got ${arrayActual})", {i:i, expected:expected.hasOwnProperty(i) ? "present" : "missing", - actual:actual.hasOwnProperty(i) ? "present" : "missing"}); + actual:actual.hasOwnProperty(i) ? "present" : "missing", + arrayExpected:shorten_array(expected, i), arrayActual:shorten_array(actual, i)}); assert(same_value(expected[i], actual[i]), "assert_array_equals", description, - "property ${i}, expected ${expected} but got ${actual}", - {i:i, expected:expected[i], actual:actual[i]}); + "expected property ${i} to be ${expected} but got ${actual} (expected array ${arrayExpected} got ${arrayActual})", + {i:i, expected:expected[i], actual:actual[i], + arrayExpected:shorten_array(expected, i), arrayActual:shorten_array(actual, i)}); } } expose(assert_array_equals, "assert_array_equals"); @@ -1216,7 +1256,7 @@ policies and contribution forms [3]. "assert_array_approx_equals", description, "property ${i}, property expected to be ${expected} but was ${actual}", {i:i, expected:expected.hasOwnProperty(i) ? "present" : "missing", - actual:actual.hasOwnProperty(i) ? "present" : "missing"}); + actual:actual.hasOwnProperty(i) ? "present" : "missing"}); assert(typeof actual[i] === "number", "assert_array_approx_equals", description, "property ${i}, expected a number but got a ${type_actual}", diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/install_chrome.yml b/tests/wpt/web-platform-tests/tools/ci/azure/install_chrome.yml index 6bd5c2334ad..fd650e80aaa 100644 --- a/tests/wpt/web-platform-tests/tools/ci/azure/install_chrome.yml +++ b/tests/wpt/web-platform-tests/tools/ci/azure/install_chrome.yml @@ -1,6 +1,9 @@ steps: -# This is equivalent to `Homebrew/homebrew-cask-versions/google-chrome-dev`, -# but the raw URL is used to bypass caching. -- script: HOMEBREW_NO_AUTO_UPDATE=1 brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/google-chrome-dev.rb +# The conflicting google-chrome and chromedriver casks are first uninstalled. +# The raw google-chrome-dev cask URL is used to bypass caching. +- script: | + HOMEBREW_NO_AUTO_UPDATE=1 brew cask uninstall google-chrome || true + HOMEBREW_NO_AUTO_UPDATE=1 brew cask uninstall chromedriver || true + HOMEBREW_NO_AUTO_UPDATE=1 brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/google-chrome-dev.rb displayName: 'Install Chrome Dev' condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb b/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb index a3772b75e46..2d4912abbff 100644 --- a/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb +++ b/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb @@ -1,10 +1,10 @@ cask 'safari-technology-preview' do if MacOS.version <= :mojave - version '97,061-62396-20191217-bcf15e6a-ba77-4912-bd7a-5c136c6a9bb0' - sha256 '75678852258e1869daf69e853b345556fea05adcd5d71530501c3be584212830' + version '98,061-66319-20200108-e9d7f579-fba9-46c9-97fc-9445bed56df0' + sha256 '860305b6e60915a71a15fa6267c549e635a415db66c220d1deee6e482a50299c' else - version '97,061-62395-20191217-fd754f32-1f09-4449-8aab-ebb9ba1ab1c4' - sha256 'bfce6e57c4aad6b0423cabc54176de1e3115c656496a5a28dd91a7b78e16bf58' + version '98,061-66316-20200108-559ee008-6ff9-4219-8256-3c0464bbe29b' + sha256 '9bac3e5e278adfe817db69b976d4be0903d9903ae48d3d7d3744626b5c178f03' end url "https://secure-appldnld.apple.com/STP/#{version.after_comma}/SafariTechnologyPreview.dmg" diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py index 0c5bbff5629..cf4c5fd35fd 100644 --- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py +++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py @@ -737,6 +737,10 @@ class Element(object): def selected(self): return self.send_element_command("GET", "selected") + @command + def screenshot(self): + return self.send_element_command("GET", "screenshot") + @command def attribute(self, name): return self.send_element_command("GET", "attribute/%s" % name) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/__init__.py b/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/__init__.py index 9de87924607..9a82cc48eab 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/__init__.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/__init__.py @@ -1,12 +1,10 @@ -def element_rect(session, element): - return session.execute_script(""" - let {devicePixelRatio} = window; - let {left, top, width, height} = arguments[0].getBoundingClientRect(); +def element_dimensions(session, element): + return tuple(session.execute_script(""" + const {devicePixelRatio} = window; + let {width, height} = arguments[0].getBoundingClientRect(); - return { - x: Math.floor((left + window.pageXOffset) * devicePixelRatio), - y: Math.floor((top + window.pageYOffset) * devicePixelRatio), - width: Math.floor(width * devicePixelRatio), - height: Math.floor(height * devicePixelRatio), - }; - """, args=(element,)) + return [ + Math.floor(width * devicePixelRatio), + Math.floor(height * devicePixelRatio), + ]; + """, args=(element,))) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/iframe.py b/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/iframe.py index 242122f0b5e..83f55deff75 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/iframe.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/iframe.py @@ -4,21 +4,58 @@ from tests.support.asserts import assert_success from tests.support.image import png_dimensions from tests.support.inline import iframe, inline -from . import element_rect +from . import element_dimensions +DEFAULT_CONTENT = "
Lorem ipsum dolor sit amet.
" -DEFAULT_CSS_STYLE = """ +REFERENCE_CONTENT = "
{}
".format(DEFAULT_CONTENT) +REFERENCE_STYLE = """ """ -DEFAULT_CONTENT = "
Lorem ipsum dolor sit amet.
" +OUTER_IFRAME_STYLE = """ + +""" + +INNER_IFRAME_STYLE = """ + +""" def take_element_screenshot(session, element_id): @@ -31,24 +68,55 @@ def take_element_screenshot(session, element_id): ) +def test_frame_element(session): + # Create a reference element which looks exactly like the frame's content + session.url = inline("{0}{1}".format(REFERENCE_STYLE, REFERENCE_CONTENT)) + + # Capture the inner content as reference image + ref_el = session.find.css("#content", all=False) + ref_screenshot = ref_el.screenshot() + ref_dimensions = element_dimensions(session, ref_el) + + assert png_dimensions(ref_screenshot) == ref_dimensions + + # Capture the frame's element + iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT) + session.url = inline("""{0}{1}""".format(OUTER_IFRAME_STYLE, iframe(iframe_content))) + + frame = session.find.css("iframe", all=False) + session.switch_frame(frame) + div = session.find.css("div", all=False) + div_dimensions = element_dimensions(session, div) + assert div_dimensions == ref_dimensions + + response = take_element_screenshot(session, div.id) + div_screenshot = assert_success(response) + + assert png_dimensions(div_screenshot) == ref_dimensions + assert div_screenshot == ref_screenshot + + @pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"]) def test_source_origin(session, url, domain): - session.url = inline("""{0}{1}""".format(DEFAULT_CSS_STYLE, DEFAULT_CONTENT)) - element = session.find.css("div", all=False) - rect = element_rect(session, element) + # Create a reference element which looks exactly like the iframe + session.url = inline("{0}{1}".format(REFERENCE_STYLE, REFERENCE_CONTENT)) - response = take_element_screenshot(session, element.id) + div = session.find.css("div", all=False) + div_dimensions = element_dimensions(session, div) + + response = take_element_screenshot(session, div.id) reference_screenshot = assert_success(response) - assert png_dimensions(reference_screenshot) == (rect["width"], rect["height"]) + assert png_dimensions(reference_screenshot) == div_dimensions - iframe_content = "{}".format(DEFAULT_CONTENT) + iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT) session.url = inline("""{0}{1}""".format( - DEFAULT_CSS_STYLE, iframe(iframe_content, domain=domain))) + OUTER_IFRAME_STYLE, iframe(iframe_content, domain=domain))) + frame_element = session.find.css("iframe", all=False) - frame_rect = element_rect(session, frame_element) + frame_dimensions = element_dimensions(session, frame_element) response = take_element_screenshot(session, frame_element.id) screenshot = assert_success(response) - assert png_dimensions(screenshot) == (frame_rect["width"], frame_rect["height"]) + assert png_dimensions(screenshot) == frame_dimensions assert screenshot == reference_screenshot diff --git a/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/screenshot.py b/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/screenshot.py index fd460b656ae..50d33a266db 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/screenshot.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/take_element_screenshot/screenshot.py @@ -2,7 +2,7 @@ from tests.support.asserts import assert_error, assert_success from tests.support.image import png_dimensions from tests.support.inline import inline -from . import element_rect +from . import element_dimensions def take_element_screenshot(session, element_id): @@ -32,9 +32,8 @@ def test_stale(session): def test_format_and_dimensions(session): session.url = inline("") element = session.find.css("input", all=False) - rect = element_rect(session, element) response = take_element_screenshot(session, element.id) screenshot = assert_success(response) - assert png_dimensions(screenshot) == (rect["width"], rect["height"]) + assert png_dimensions(screenshot) == element_dimensions(session, element) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/take_screenshot/__init__.py b/tests/wpt/web-platform-tests/webdriver/tests/take_screenshot/__init__.py index c07f8d16703..f3001d946df 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/take_screenshot/__init__.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/take_screenshot/__init__.py @@ -1,6 +1,18 @@ +def element_dimensions(session, element): + return tuple(session.execute_script(""" + const {devicePixelRatio} = window; + let {width, height} = arguments[0].getBoundingClientRect(); + + return [ + Math.floor(width * devicePixelRatio), + Math.floor(height * devicePixelRatio), + ]; + """, args=(element,))) + + def viewport_dimensions(session): return tuple(session.execute_script(""" - let {devicePixelRatio, innerHeight, innerWidth} = window; + const {devicePixelRatio, innerHeight, innerWidth} = window; return [ Math.floor(innerWidth * devicePixelRatio), diff --git a/tests/wpt/web-platform-tests/webdriver/tests/take_screenshot/iframe.py b/tests/wpt/web-platform-tests/webdriver/tests/take_screenshot/iframe.py index 66df6ec9493..601c039d56d 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/take_screenshot/iframe.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/take_screenshot/iframe.py @@ -4,21 +4,58 @@ from tests.support.asserts import assert_success from tests.support.image import png_dimensions from tests.support.inline import iframe, inline -from . import viewport_dimensions +from . import element_dimensions, viewport_dimensions +DEFAULT_CONTENT = "
Lorem ipsum dolor sit amet.
" -DEFAULT_CSS_STYLE = """ +REFERENCE_CONTENT = "
{}
".format(DEFAULT_CONTENT) +REFERENCE_STYLE = """ """ -DEFAULT_CONTENT = "
Lorem ipsum dolor sit amet.
" +OUTER_IFRAME_STYLE = """ + +""" + +INNER_IFRAME_STYLE = """ + +""" def take_screenshot(session): @@ -27,8 +64,8 @@ def take_screenshot(session): def test_always_captures_top_browsing_context(session): - iframe_content = "{}".format(DEFAULT_CONTENT) - session.url = inline("""{0}{1}""".format(DEFAULT_CSS_STYLE, iframe(iframe_content))) + iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT) + session.url = inline("""{0}{1}""".format(OUTER_IFRAME_STYLE, iframe(iframe_content))) response = take_screenshot(session) reference_screenshot = assert_success(response) @@ -40,20 +77,21 @@ def test_always_captures_top_browsing_context(session): response = take_screenshot(session) screenshot = assert_success(response) + assert png_dimensions(screenshot) == png_dimensions(reference_screenshot) assert screenshot == reference_screenshot @pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"]) -def test_source_origin(session, url, domain): - session.url = inline("""{0}{1}""".format(DEFAULT_CSS_STYLE, DEFAULT_CONTENT)) +def test_source_origin(session, domain): + session.url = inline("{0}{1}".format(REFERENCE_STYLE, REFERENCE_CONTENT)) response = take_screenshot(session) reference_screenshot = assert_success(response) assert png_dimensions(reference_screenshot) == viewport_dimensions(session) - iframe_content = "{}".format(DEFAULT_CONTENT) + iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT) session.url = inline("""{0}{1}""".format( - DEFAULT_CSS_STYLE, iframe(iframe_content, domain=domain))) + OUTER_IFRAME_STYLE, iframe(iframe_content, domain=domain))) response = take_screenshot(session) screenshot = assert_success(response)