From 2b35c55ac731d7994eec1bbd6c975662bf8c5e5c Mon Sep 17 00:00:00 2001 From: WPT Sync Bot Date: Fri, 23 Mar 2018 21:12:55 -0400 Subject: [PATCH] Update web-platform-tests to revision d04a8fc02b85bd32799691759c8c05ead07cd939 --- tests/wpt/metadata/MANIFEST.json | 286 ++++++- .../vh_not_refreshing_on_chrome.html.ini | 2 + tests/wpt/metadata/dom/interfaces.html.ini | 3 + .../api/cors/cors-cookies-redirect.any.js.ini | 9 + .../wpt/metadata/hr-time/idlharness.html.ini | 6 + .../wpt/metadata/html/dom/interfaces.html.ini | 21 + .../navigation-timing/idlharness.html.ini | 1 + .../performance-timeline/idlharness.html.ini | 3 + .../dedicated-worker-options-type.html.ini | 7 + .../dedicated-worker-static-import.html.ini | 8 + tests/wpt/web-platform-tests/.gitignore | 1 + .../IndexedDB/interfaces.any.js | 3 +- .../conformance-checkers/messages.json | 4 +- .../cookie-store/idlharness.tentative.html | 1 + .../grid-inline-auto-repeat-001.html | 48 ++ ...rent-subpixel-padding-in-same-row-ref.html | 12 + ...l-padding-in-same-row-vertical-rl-ref.html | 13 + ...pixel-padding-in-same-row-vertical-rl.html | 15 + ...ifferent-subpixel-padding-in-same-row.html | 14 + .../td-with-subpixel-padding-vertical-rl.html | 55 ++ .../properties/column-span.html | 21 + .../dom/ranges/Range-intersectsNode-2.html | 36 + .../api/cors/cors-cookies-redirect.any.js | 49 ++ .../fetch/api/resources/inspect-headers.py | 5 +- .../fetch/api/resources/redirect.py | 10 +- ...nheight2000-2AFF-italiccorrection3000.woff | Bin 0 -> 1372 bytes .../hr-time/idlharness.html | 7 +- .../the-select-element/selected-index.html | 20 + .../web-platform-tests/interfaces/html.idl | 29 +- .../interfaces/keyboard-lock.idl | 8 + .../interfaces/web-animations.idl | 154 ++++ .../keyboard-lock/idlharness.https.html | 57 +- ...ard-lock-two-parallel-requests.https.html} | 8 +- ...d-lock-two-sequential-requests.https.html} | 6 +- ...tml => navigator-keyboard-lock.https.html} | 4 +- ...l => navigator-keyboard-unlock.https.html} | 4 +- .../scripts/subsup-parameters-2.html | 132 ++++ .../mathml/tools/largeop.py | 18 + .../PaymentItem/type_member.https.html | 77 ++ .../payment-request-insecure.http.html | 13 + .../show-method-postmessage-manual.https.html | 30 + .../chromium/fake_bluetooth.mojom.js | 738 ++++++++++++++++-- .../resources/chromium/web-bluetooth-test.js | 40 +- .../resources/idlharness.js | 19 +- .../resources/test/conftest.py | 4 +- .../IdlInterface/test_to_json_operation.html | 28 +- .../resources/test/wptserver.py | 37 +- ...interface-attachShadow-custom-element.html | 29 + tests/wpt/web-platform-tests/tools/.gitignore | 1 - .../tools/gitignore/gitignore.py | 10 +- .../tools/gitignore/tests/test_gitignore.py | 9 +- .../wpt/web-platform-tests/tools/lint/lint.py | 5 +- .../interfaces/Animation/idlharness.html | 47 +- .../AnimationPlaybackEvent/idlharness.html | 53 +- .../DocumentTimeline/idlharness.html | 38 +- .../interfaces/KeyframeEffect/idlharness.html | 69 +- .../webaudio/idlharness.https.html | 7 +- ...rConnection-setLocalDescription-offer.html | 3 +- .../dedicated-worker-options-type.html | 47 ++ .../dedicated-worker-static-import.html | 21 + .../resources/nested-static-import-worker.js | 1 + .../resources/post-message-on-load-worker.js | 1 + .../modules/resources/static-import-worker.js | 1 + 63 files changed, 2068 insertions(+), 340 deletions(-) create mode 100644 tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini create mode 100644 tests/wpt/metadata/fetch/api/cors/cors-cookies-redirect.any.js.ini create mode 100644 tests/wpt/metadata/workers/modules/dedicated-worker-options-type.html.ini create mode 100644 tests/wpt/metadata/workers/modules/dedicated-worker-static-import.html.ini create mode 100644 tests/wpt/web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html create mode 100644 tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-ref.html create mode 100644 tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl-ref.html create mode 100644 tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl.html create mode 100644 tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row.html create mode 100644 tests/wpt/web-platform-tests/css/css-tables/width-distribution/td-with-subpixel-padding-vertical-rl.html create mode 100644 tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-span.html create mode 100644 tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode-2.html create mode 100644 tests/wpt/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.js create mode 100644 tests/wpt/web-platform-tests/fonts/math/largeop-displayoperatorminheight2000-2AFF-italiccorrection3000.woff create mode 100644 tests/wpt/web-platform-tests/interfaces/keyboard-lock.idl create mode 100644 tests/wpt/web-platform-tests/interfaces/web-animations.idl rename tests/wpt/web-platform-tests/keyboard-lock/{navigator-keyboardLock-two-parallel-requests.https.html => navigator-keyboard-lock-two-parallel-requests.https.html} (57%) rename tests/wpt/web-platform-tests/keyboard-lock/{navigator-keyboardLock-two-sequential-requests.https.html => navigator-keyboard-lock-two-sequential-requests.https.html} (56%) rename tests/wpt/web-platform-tests/keyboard-lock/{navigator-keyboardLock.https.html => navigator-keyboard-lock.https.html} (72%) rename tests/wpt/web-platform-tests/keyboard-lock/{navigator-keyboardUnlock.https.html => navigator-keyboard-unlock.https.html} (70%) create mode 100644 tests/wpt/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html create mode 100644 tests/wpt/web-platform-tests/payment-request/PaymentItem/type_member.https.html create mode 100644 tests/wpt/web-platform-tests/payment-request/payment-request-insecure.http.html create mode 100644 tests/wpt/web-platform-tests/shadow-dom/Element-interface-attachShadow-custom-element.html create mode 100644 tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-type.html create mode 100644 tests/wpt/web-platform-tests/workers/modules/dedicated-worker-static-import.html create mode 100644 tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js create mode 100644 tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js create mode 100644 tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 2c1ba620819..d149292edfb 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -127149,6 +127149,30 @@ {} ] ], + "css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl.html": [ + [ + "/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl.html", + [ + [ + "/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row.html": [ + [ + "/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row.html", + [ + [ + "/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-tables/internal-containing-block-001.html": [ [ "/css/css-tables/internal-containing-block-001.html", @@ -251770,6 +251794,16 @@ {} ] ], + "css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-ref.html": [ + [ + {} + ] + ], + "css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl-ref.html": [ + [ + {} + ] + ], "css/css-tables/support/base.css": [ [ {} @@ -272445,6 +272479,11 @@ {} ] ], + "fonts/math/largeop-displayoperatorminheight2000-2AFF-italiccorrection3000.woff": [ + [ + {} + ] + ], "fonts/math/largeop-displayoperatorminheight5000.woff": [ [ {} @@ -285330,6 +285369,11 @@ {} ] ], + "interfaces/keyboard-lock.idl": [ + [ + {} + ] + ], "interfaces/magnetometer.idl": [ [ {} @@ -285405,6 +285449,11 @@ {} ] ], + "interfaces/web-animations.idl": [ + [ + {} + ] + ], "interfaces/web-nfc.idl": [ [ {} @@ -297780,6 +297829,21 @@ {} ] ], + "workers/modules/resources/nested-static-import-worker.js": [ + [ + {} + ] + ], + "workers/modules/resources/post-message-on-load-worker.js": [ + [ + {} + ] + ], + "workers/modules/resources/static-import-worker.js": [ + [ + {} + ] + ], "workers/non-automated/application-cache-dedicated.html": [ [ {} @@ -313643,6 +313707,12 @@ {} ] ], + "css/css-grid/grid-definition/grid-inline-auto-repeat-001.html": [ + [ + "/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html", + {} + ] + ], "css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html": [ [ "/css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html", @@ -315401,6 +315471,12 @@ {} ] ], + "css/css-tables/width-distribution/td-with-subpixel-padding-vertical-rl.html": [ + [ + "/css/css-tables/width-distribution/td-with-subpixel-padding-vertical-rl.html", + {} + ] + ], "css/css-tables/width-distribution/td-with-subpixel-padding.html": [ [ "/css/css-tables/width-distribution/td-with-subpixel-padding.html", @@ -317285,6 +317361,12 @@ {} ] ], + "css/css-typed-om/the-stylepropertymap/properties/column-span.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/properties/column-span.html", + {} + ] + ], "css/css-typed-om/the-stylepropertymap/properties/direction.html": [ [ "/css/css-typed-om/the-stylepropertymap/properties/direction.html", @@ -321727,6 +321809,12 @@ } ] ], + "dom/ranges/Range-intersectsNode-2.html": [ + [ + "/dom/ranges/Range-intersectsNode-2.html", + {} + ] + ], "dom/ranges/Range-intersectsNode-binding.html": [ [ "/dom/ranges/Range-intersectsNode-binding.html", @@ -324841,6 +324929,16 @@ {} ] ], + "fetch/api/cors/cors-cookies-redirect.any.js": [ + [ + "/fetch/api/cors/cors-cookies-redirect.any.html", + {} + ], + [ + "/fetch/api/cors/cors-cookies-redirect.any.worker.html", + {} + ] + ], "fetch/api/cors/cors-cookies.any.js": [ [ "/fetch/api/cors/cors-cookies.any.html", @@ -338655,27 +338753,27 @@ {} ] ], - "keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html": [ + "keyboard-lock/navigator-keyboard-lock-two-parallel-requests.https.html": [ [ - "/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html", + "/keyboard-lock/navigator-keyboard-lock-two-parallel-requests.https.html", {} ] ], - "keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html": [ + "keyboard-lock/navigator-keyboard-lock-two-sequential-requests.https.html": [ [ - "/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html", + "/keyboard-lock/navigator-keyboard-lock-two-sequential-requests.https.html", {} ] ], - "keyboard-lock/navigator-keyboardLock.https.html": [ + "keyboard-lock/navigator-keyboard-lock.https.html": [ [ - "/keyboard-lock/navigator-keyboardLock.https.html", + "/keyboard-lock/navigator-keyboard-lock.https.html", {} ] ], - "keyboard-lock/navigator-keyboardUnlock.https.html": [ + "keyboard-lock/navigator-keyboard-unlock.https.html": [ [ - "/keyboard-lock/navigator-keyboardUnlock.https.html", + "/keyboard-lock/navigator-keyboard-unlock.https.html", {} ] ], @@ -338853,6 +338951,12 @@ {} ] ], + "mathml/presentation-markup/scripts/subsup-parameters-2.html": [ + [ + "/mathml/presentation-markup/scripts/subsup-parameters-2.html", + {} + ] + ], "mathml/presentation-markup/scripts/underover-1.html": [ [ "/mathml/presentation-markup/scripts/underover-1.html", @@ -350439,6 +350543,12 @@ {} ] ], + "payment-request/PaymentItem/type_member.https.html": [ + [ + "/payment-request/PaymentItem/type_member.https.html", + {} + ] + ], "payment-request/PaymentRequestUpdateEvent/constructor.http.html": [ [ "/payment-request/PaymentRequestUpdateEvent/constructor.http.html", @@ -350561,6 +350671,12 @@ {} ] ], + "payment-request/payment-request-insecure.http.html": [ + [ + "/payment-request/payment-request-insecure.http.html", + {} + ] + ], "payment-request/payment-request-not-exposed.https.worker.js": [ [ "/payment-request/payment-request-not-exposed.https.worker.html", @@ -361221,6 +361337,12 @@ {} ] ], + "shadow-dom/Element-interface-attachShadow-custom-element.html": [ + [ + "/shadow-dom/Element-interface-attachShadow-custom-element.html", + {} + ] + ], "shadow-dom/Element-interface-attachShadow.html": [ [ "/shadow-dom/Element-interface-attachShadow.html", @@ -369797,6 +369919,18 @@ {} ] ], + "workers/modules/dedicated-worker-options-type.html": [ + [ + "/workers/modules/dedicated-worker-options-type.html", + {} + ] + ], + "workers/modules/dedicated-worker-static-import.html": [ + [ + "/workers/modules/dedicated-worker-static-import.html", + {} + ] + ], "workers/name-property.html": [ [ "/workers/name-property.html", @@ -391299,7 +391433,7 @@ "support" ], "./.gitignore": [ - "4c0250a2fdf8f32f9df4db278c03f0a8722a90d7", + "551fbbbbeb5571fc8dfec671e248125097947728", "support" ], "./.gitmodules": [ @@ -396967,7 +397101,7 @@ "testharness" ], "IndexedDB/interfaces.any.js": [ - "df07f5da63c34969a24fe43bc4268418ab0a5132", + "ae562d6b568c1005c5eef5a230b8869729719dff", "testharness" ], "IndexedDB/interleaved-cursors-common.js": [ @@ -419495,7 +419629,7 @@ "support" ], "conformance-checkers/messages.json": [ - "ba6a1cf2867273360e8c9b7bb70da15bca4e15a7", + "5bbf4e62a4f95fdaf4528c20eb824006d2042582", "support" ], "conformance-checkers/tools/build-svg-tests.py": [ @@ -422507,7 +422641,7 @@ "testharness" ], "cookie-store/idlharness.tentative.html": [ - "24a4e59e8d3c0a481c4b448bd3fb677f30d0208f", + "8654087597cc0c11b880b0144897dab26691d12a", "testharness" ], "cookie-store/idlharness_serviceworker.js": [ @@ -501102,6 +501236,10 @@ "d00e8651be933262d7f64d22f6e8ce68d23d44eb", "testharness" ], + "css/css-grid/grid-definition/grid-inline-auto-repeat-001.html": [ + "dd057e3ae1332c813ae60dc0bf29b948b24e7f47", + "testharness" + ], "css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html": [ "99215a797996322c89105b8ca5cb426628ec7563", "testharness" @@ -509654,6 +509792,22 @@ "55a759d84f38e6adf0f091c9c0ecaa69060cb51a", "testharness" ], + "css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-ref.html": [ + "2bb8a26451a23ebcf548ad147d301ea5d9603c25", + "support" + ], + "css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl-ref.html": [ + "bfb2b402c1887841f89fc7954a2cccacd3babab6", + "support" + ], + "css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl.html": [ + "67b7a983d1fed1a754356ba3a3359c60d9575d38", + "reftest" + ], + "css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row.html": [ + "da90cdb16cb229c4856df7c4ad14bf49d51b900d", + "reftest" + ], "css/css-tables/html-to-css-mapping-1.html": [ "55cf746ad6557259534e38a4879d7b6f5a994d6c", "testharness" @@ -509874,6 +510028,10 @@ "9eeb49d2d78c3f81825de0d9e24de2a097275175", "testharness" ], + "css/css-tables/width-distribution/td-with-subpixel-padding-vertical-rl.html": [ + "cf3f3ffb0dba2dc13f753f9a584084c9f070a48c", + "testharness" + ], "css/css-tables/width-distribution/td-with-subpixel-padding.html": [ "b93845c332e5153c8a28085303b165d3c96f984e", "testharness" @@ -522570,6 +522728,10 @@ "ec00a4b773f2ae421b8f688908925e28d2281614", "testharness" ], + "css/css-typed-om/the-stylepropertymap/properties/column-span.html": [ + "276ec2870bc105b046669daa0bdbeffdb080479c", + "testharness" + ], "css/css-typed-om/the-stylepropertymap/properties/direction.html": [ "b7c49aba4e8785f819beeb444c113d937d441089", "testharness" @@ -546770,6 +546932,10 @@ "c6c16aeceb585d7587e7447964112786f87700cd", "testharness" ], + "dom/ranges/Range-intersectsNode-2.html": [ + "9b613f401c6ef6bc9ef70fc43a83df4130d9149c", + "testharness" + ], "dom/ranges/Range-intersectsNode-binding.html": [ "93ac9f3cc9b506760b685b074cb0f66ea69bebb7", "testharness" @@ -550342,6 +550508,10 @@ "e6326b75fe6449f211ad19b98a9c1d7ed8c7c27f", "testharness" ], + "fetch/api/cors/cors-cookies-redirect.any.js": [ + "700c33865dbb6d6dfe63fc08f646d120e7966484", + "testharness" + ], "fetch/api/cors/cors-cookies.any.js": [ "246a6e661ef1179330f9109131cfcb2fa9f5bf64", "testharness" @@ -550931,7 +551101,7 @@ "support" ], "fetch/api/resources/inspect-headers.py": [ - "c9ac2870a45253664da7de1aaf82626fdd1482bb", + "c062c905d538cfa96156fd38d98f586b2c4fb3b5", "support" ], "fetch/api/resources/keepalive-iframe.html": [ @@ -550951,7 +551121,7 @@ "support" ], "fetch/api/resources/redirect.py": [ - "79c8b1bcad05e05a7b628edb22fdaedbdf2c3bc5", + "37307bdb30853c2e824cce1fd9a190741e4975ce", "support" ], "fetch/api/resources/script-with-header.py": [ @@ -551730,6 +551900,10 @@ "a218eeab3238839be7d0cc8c326e57d59bd51f83", "support" ], + "fonts/math/largeop-displayoperatorminheight2000-2AFF-italiccorrection3000.woff": [ + "8ace2a167d3e3a7f27af99431b5626834dac53a8", + "support" + ], "fonts/math/largeop-displayoperatorminheight5000.woff": [ "04f15e131b1ae051eeddbfda429ca154d2c6bda0", "support" @@ -552467,7 +552641,7 @@ "testharness" ], "hr-time/idlharness.html": [ - "f2cdcba041df089206cc9c811167c41a771905df", + "579176cad14656ca5cdc616dd1323dc38a5b62ba", "testharness" ], "hr-time/monotonic-clock.any.js": [ @@ -567187,7 +567361,7 @@ "testharness" ], "html/semantics/forms/the-select-element/selected-index.html": [ - "3dbf338e9065f7f4ad2abfbaa55cf50329768cc2", + "98b59224f658d97a782623a054e5c3c5611945a2", "testharness" ], "html/semantics/forms/the-textarea-element/.gitkeep": [ @@ -572147,7 +572321,11 @@ "support" ], "interfaces/html.idl": [ - "b2b35732b54cbe3406493a6c121363eccceb4f5c", + "7b9b8b054ad2848e7c5983e46222fbdf8b3b8da8", + "support" + ], + "interfaces/keyboard-lock.idl": [ + "7188a9233db3acc741650d46156e16e9e7a132fa", "support" ], "interfaces/magnetometer.idl": [ @@ -572210,6 +572388,10 @@ "7d0ee3d60a923bf454e18f9116cded1cc3a16f9b", "support" ], + "interfaces/web-animations.idl": [ + "8d00ee62fafedfd3e24925f48eed6ba26b5aafc7", + "support" + ], "interfaces/web-nfc.idl": [ "105e771bdd9587f029091a5ed590187ed6e86e2a", "support" @@ -572435,23 +572617,23 @@ "testharness" ], "keyboard-lock/idlharness.https.html": [ - "4b41c1c46a8f7d2374d0ff9d796f3f938c1f74d8", + "010771094a9dc58e03a2c1ca2d8416866284fc2b", "testharness" ], - "keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html": [ - "ee6fe59233abea9325bf7f5e14c1472a72e45a11", + "keyboard-lock/navigator-keyboard-lock-two-parallel-requests.https.html": [ + "b594f75f5b0c89c2a5f2b934d170b8ff81ad9839", "testharness" ], - "keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html": [ - "02ad8f54b7cebed96553bd96bbd7e8fc0227d3b1", + "keyboard-lock/navigator-keyboard-lock-two-sequential-requests.https.html": [ + "8990cc5772cdba1281c0a05c6a3c2a80b08b810e", "testharness" ], - "keyboard-lock/navigator-keyboardLock.https.html": [ - "572f4e827bc3807f4c71641e102d7bac9df3e391", + "keyboard-lock/navigator-keyboard-lock.https.html": [ + "f95f8408986d73501ec7cce09106a8536bd891b4", "testharness" ], - "keyboard-lock/navigator-keyboardUnlock.https.html": [ - "c4de12456714a34fb791b070304da31c99da080f", + "keyboard-lock/navigator-keyboard-unlock.https.html": [ + "f5cc2141ea7c74964d308784901d6d2c242f4369", "testharness" ], "longtask-timing/OWNERS": [ @@ -572622,6 +572804,10 @@ "a9198166947a3d181d21d2597d167d3962c67f6e", "testharness" ], + "mathml/presentation-markup/scripts/subsup-parameters-2.html": [ + "3f3d721e1f0eec90d0b173f02f01a5d4ac16a8cc", + "testharness" + ], "mathml/presentation-markup/scripts/underover-1.html": [ "372c5f1e01a0fe5e3350579985e4f586838c0ed2", "testharness" @@ -572975,7 +573161,7 @@ "support" ], "mathml/tools/largeop.py": [ - "46adcf9fce7218942711b6ca3742d74fce096c7f", + "cbf53783db1381e6fb0d22296d395104c4b6b545", "support" ], "mathml/tools/limits.py": [ @@ -581930,6 +582116,10 @@ "7bfce9810c1afdc53a99fa0036c472f6cfbe5deb", "testharness" ], + "payment-request/PaymentItem/type_member.https.html": [ + "5568f96eac7b0ebf1d91d468bb30b9eaa8b1a9f0", + "testharness" + ], "payment-request/PaymentRequestUpdateEvent/constructor.http.html": [ "017f1f1aca43171083833ddb27ff66e39902e85d", "testharness" @@ -582054,6 +582244,10 @@ "34dd889e8bc906eb9a99c192e547fab831099f7c", "testharness" ], + "payment-request/payment-request-insecure.http.html": [ + "34452230c20571ef161fa237130faea57240f532", + "testharness" + ], "payment-request/payment-request-not-exposed.https.worker.js": [ "b1c3cdc182cb967ec11b1cad826b333511203d77", "testharness" @@ -582151,7 +582345,7 @@ "support" ], "payment-request/show-method-postmessage-manual.https.html": [ - "d2be1d2872a473a48df7139ecd3804f33187ec8f", + "e9ca854ea9e13e7b662f0fa66890832bb2f13b69", "manual" ], "payment-request/updateWith-method-pmi-handling-manual.https.html": [ @@ -594330,6 +594524,10 @@ "e33e48a3eb754e961f07b7850caff67eee38fe69", "testharness" ], + "shadow-dom/Element-interface-attachShadow-custom-element.html": [ + "4628a8a6e145713c7e0e9df0960d51e34df2fc53", + "testharness" + ], "shadow-dom/Element-interface-attachShadow.html": [ "e5b4dedaf8f78a6ce771af4509da8acb3aca3441", "testharness" @@ -600963,7 +601161,7 @@ "testharness" ], "web-animations/interfaces/Animation/idlharness.html": [ - "b049999bb0512bfa0c3eb8b60176eb9213d663f7", + "c73f39e1c27f1b04b4c44ac4e1e747ef3d24b287", "testharness" ], "web-animations/interfaces/Animation/oncancel.html": [ @@ -601007,7 +601205,7 @@ "testharness" ], "web-animations/interfaces/AnimationPlaybackEvent/idlharness.html": [ - "bfdfc896fb5fe4451419464e35fe94b5e4938c2c", + "d9fc177ebbc3fa0317125912e38a4bfd65f727c8", "testharness" ], "web-animations/interfaces/Document/getAnimations.html": [ @@ -601023,7 +601221,7 @@ "testharness" ], "web-animations/interfaces/DocumentTimeline/idlharness.html": [ - "72cb7900f86611e9c2a1b0f4acd0f634555310b9", + "b811b4367df7d4f2a43955323f9ddb5b0a60da14", "testharness" ], "web-animations/interfaces/KeyframeEffect/composite.html": [ @@ -601039,7 +601237,7 @@ "testharness" ], "web-animations/interfaces/KeyframeEffect/idlharness.html": [ - "ffe493133d4029820f8b27389a15157706b738e8", + "c65dd7fd3c76ac1e5d6f22dbd36544f7900cd992", "testharness" ], "web-animations/interfaces/KeyframeEffect/iterationComposite.html": [ @@ -601339,7 +601537,7 @@ "testharness" ], "webaudio/idlharness.https.html": [ - "7876e16ea643f69315e18c3e17af0d7f95769420", + "f42681173fdf4cb8dad2049351f55f3a7ff0fcac", "testharness" ], "webaudio/js/buffer-loader.js": [ @@ -602951,7 +603149,7 @@ "testharness" ], "webrtc/RTCPeerConnection-setLocalDescription-offer.html": [ - "9f30ee4801fbcd574d90c3f15a733c448f148649", + "117fc91599d11b63f2d232a63bace8e367dbb72a", "testharness" ], "webrtc/RTCPeerConnection-setLocalDescription-pranswer.html": [ @@ -608030,6 +608228,26 @@ "6bffa3be83d81e2faa93119e710e4fee93fb855e", "testharness" ], + "workers/modules/dedicated-worker-options-type.html": [ + "9f6f1be759beb885e2baa746e36ace83685f649b", + "testharness" + ], + "workers/modules/dedicated-worker-static-import.html": [ + "d0d3dc37a8c061a1dc5213f8fe79e7f985c48b81", + "testharness" + ], + "workers/modules/resources/nested-static-import-worker.js": [ + "eb76ec7e8a0f9df6de7114e3aa9100f8374fea8f", + "support" + ], + "workers/modules/resources/post-message-on-load-worker.js": [ + "c67a79ade775435a67e5999d17e7cdda450c8e50", + "support" + ], + "workers/modules/resources/static-import-worker.js": [ + "f3020118d7e499e0e910abc7a733e0b9c3cf1e5a", + "support" + ], "workers/name-property.html": [ "1c53fc1fdc2d6c8ed5592d832a18bdbd3bca541b", "testharness" diff --git a/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini b/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini new file mode 100644 index 00000000000..26435e28b09 --- /dev/null +++ b/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini @@ -0,0 +1,2 @@ +[vh_not_refreshing_on_chrome.html] + expected: FAIL diff --git a/tests/wpt/metadata/dom/interfaces.html.ini b/tests/wpt/metadata/dom/interfaces.html.ini index a1bd285b66b..62a37f6dcfc 100644 --- a/tests/wpt/metadata/dom/interfaces.html.ini +++ b/tests/wpt/metadata/dom/interfaces.html.ini @@ -921,3 +921,6 @@ [Range interface: existence and properties of interface prototype object] expected: FAIL + [Test driver] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/cors/cors-cookies-redirect.any.js.ini b/tests/wpt/metadata/fetch/api/cors/cors-cookies-redirect.any.js.ini new file mode 100644 index 00000000000..a2543058306 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/cors/cors-cookies-redirect.any.js.ini @@ -0,0 +1,9 @@ +[cors-cookies-redirect.any.worker.html] + [Untitled] + expected: FAIL + + +[cors-cookies-redirect.any.html] + [Untitled] + expected: FAIL + diff --git a/tests/wpt/metadata/hr-time/idlharness.html.ini b/tests/wpt/metadata/hr-time/idlharness.html.ini index 1b082bfa85f..e4cee0cde04 100644 --- a/tests/wpt/metadata/hr-time/idlharness.html.ini +++ b/tests/wpt/metadata/hr-time/idlharness.html.ini @@ -27,3 +27,9 @@ [Performance interface: window.performance must inherit property "toJSON()" with the proper type] expected: FAIL + [Test driver] + expected: FAIL + + [Stringification of window.performance] + expected: FAIL + diff --git a/tests/wpt/metadata/html/dom/interfaces.html.ini b/tests/wpt/metadata/html/dom/interfaces.html.ini index 88656c22113..7c87c9bd1a8 100644 --- a/tests/wpt/metadata/html/dom/interfaces.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.html.ini @@ -13992,3 +13992,24 @@ [HTMLMarqueeElement interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [SVGElement interface: attribute dataset] + expected: FAIL + + [SVGElement interface: attribute nonce] + expected: FAIL + + [SVGElement interface: attribute tabIndex] + expected: FAIL + + [SVGElement interface: operation focus(FocusOptions)] + expected: FAIL + + [SVGElement interface: operation blur()] + expected: FAIL + + [HTMLElement interface: attribute nonce] + expected: FAIL + + [HTMLElement interface: document.createElement("noscript") must inherit property "nonce" with the proper type] + expected: FAIL + diff --git a/tests/wpt/metadata/navigation-timing/idlharness.html.ini b/tests/wpt/metadata/navigation-timing/idlharness.html.ini index 71e53d7cf85..bae322d90e6 100644 --- a/tests/wpt/metadata/navigation-timing/idlharness.html.ini +++ b/tests/wpt/metadata/navigation-timing/idlharness.html.ini @@ -1,5 +1,6 @@ [idlharness.html] type: testharness + expected: ERROR [PerformanceTiming interface: attribute unloadEventStart] expected: FAIL diff --git a/tests/wpt/metadata/performance-timeline/idlharness.html.ini b/tests/wpt/metadata/performance-timeline/idlharness.html.ini index 173fc1c6a27..39aea95bb4f 100644 --- a/tests/wpt/metadata/performance-timeline/idlharness.html.ini +++ b/tests/wpt/metadata/performance-timeline/idlharness.html.ini @@ -12,3 +12,6 @@ [PerformanceObserver interface: operation takeRecords()] expected: FAIL + [Test default toJSON operation of PerformanceMark] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/modules/dedicated-worker-options-type.html.ini b/tests/wpt/metadata/workers/modules/dedicated-worker-options-type.html.ini new file mode 100644 index 00000000000..3bd93ae74ec --- /dev/null +++ b/tests/wpt/metadata/workers/modules/dedicated-worker-options-type.html.ini @@ -0,0 +1,7 @@ +[dedicated-worker-options-type.html] + [Test worker construction with an empty worker type.] + expected: FAIL + + [Test worker construction with an unknown worker type.] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/modules/dedicated-worker-static-import.html.ini b/tests/wpt/metadata/workers/modules/dedicated-worker-static-import.html.ini new file mode 100644 index 00000000000..aeae8758af5 --- /dev/null +++ b/tests/wpt/metadata/workers/modules/dedicated-worker-static-import.html.ini @@ -0,0 +1,8 @@ +[dedicated-worker-static-import.html] + expected: ERROR + [Test static import on DedicatedWorkerGlobalScope.] + expected: TIMEOUT + + [Test nested static import on DedicatedWorkerGlobalScope.] + expected: NOTRUN + diff --git a/tests/wpt/web-platform-tests/.gitignore b/tests/wpt/web-platform-tests/.gitignore index 358ea4b3ff4..fd6a495c415 100644 --- a/tests/wpt/web-platform-tests/.gitignore +++ b/tests/wpt/web-platform-tests/.gitignore @@ -4,6 +4,7 @@ _venv/ .cache/ .pytest_cache/ +.tox/ # Node node_modules/ diff --git a/tests/wpt/web-platform-tests/IndexedDB/interfaces.any.js b/tests/wpt/web-platform-tests/IndexedDB/interfaces.any.js index f142db45bcb..f1b2a993e47 100644 --- a/tests/wpt/web-platform-tests/IndexedDB/interfaces.any.js +++ b/tests/wpt/web-platform-tests/IndexedDB/interfaces.any.js @@ -9,8 +9,7 @@ promise_test(async t => { ].map(url => fetch(url).then(response => response.text()))); const idl_array = new IdlArray(); - idl_array.add_untested_idls('interface LinkStyle {};'); // Needed by html - idl_array.add_untested_idls(html); + idl_array.add_untested_idls(html, { only: ['WindowOrWorkerGlobalScope'] }); idl_array.add_untested_idls(dom); idl_array.add_idls(indexeddb); idl_array.add_objects({ diff --git a/tests/wpt/web-platform-tests/conformance-checkers/messages.json b/tests/wpt/web-platform-tests/conformance-checkers/messages.json index 73e1d6910fc..1bdb90d2e3a 100644 --- a/tests/wpt/web-platform-tests/conformance-checkers/messages.json +++ b/tests/wpt/web-platform-tests/conformance-checkers/messages.json @@ -968,8 +968,8 @@ "html/elements/img/usemap-bad-value-novalid.html": "Bad value \u201c#\u201d for attribute \u201cusemap\u201d on element \u201cimg\u201d: Bad hash-name reference: A hash-name reference must have at least one character after \u201c#\u201d.", "html/elements/img/width-height-negative-novalid.html": "Bad value \u201c-1\u201d for attribute \u201cwidth\u201d on element \u201cimg\u201d: Bad non-negative integer: Expected a digit but saw \u201c-\u201d instead.", "html/elements/input/list-novalid.html": "The \u201clist\u201d attribute of the \u201cinput\u201d element must refer to a \u201cdatalist\u201d element.", - "html/elements/input/pattern-asterisk-novalid.html": "Bad value \u201c*\u201d for attribute \u201cpattern\u201d on element \u201cinput\u201d: Bad pattern: Invalid regular expression: \u201c*\u201d: Nothing to repeat.", - "html/elements/input/pattern-paren-novalid.html": "Bad value \u201c(\u201d for attribute \u201cpattern\u201d on element \u201cinput\u201d: Bad pattern: Invalid regular expression: \u201c(\u201d: Unterminated group.", + "html/elements/input/pattern-asterisk-novalid.html": "Bad value \u201c*\u201d for attribute \u201cpattern\u201d on element \u201cinput\u201d: Bad pattern: Dangling meta character '*' near index 0", + "html/elements/input/pattern-paren-novalid.html": "Bad value \u201c(\u201d for attribute \u201cpattern\u201d on element \u201cinput\u201d: Bad pattern: Unclosed group near index 1", "html/elements/input/type-image-formaction-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.", "html/elements/input/type-image-formaction-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.", "html/elements/input/type-image-formaction/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.", diff --git a/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html b/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html index 648d567a9e9..e9ffab3730f 100644 --- a/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html +++ b/tests/wpt/web-platform-tests/cookie-store/idlharness.tentative.html @@ -19,6 +19,7 @@ promise_test(async t => { // Dependencies of HTML idl_array.add_untested_idls('interface Document {};'); idl_array.add_untested_idls('interface LinkStyle {};'); + idl_array.add_untested_idls('interface SVGElement {};'); idl_array.add_untested_idls(html); idl_array.add_untested_idls('interface Event {};'); diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html b/tests/wpt/web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html new file mode 100644 index 00000000000..b06ffe5e43a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html @@ -0,0 +1,48 @@ + + + +CSS Grid Layout Test: auto repeat tracks in indefinite containers with minimum size + + + + + + + + +
+ +
+
+ +
+
+ + diff --git a/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-ref.html b/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-ref.html new file mode 100644 index 00000000000..02f0f54c3fb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-ref.html @@ -0,0 +1,12 @@ + +Passes if there is an unbroken rectangular border. + + + + + + + + + +
diff --git a/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl-ref.html b/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl-ref.html new file mode 100644 index 00000000000..9784962be48 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl-ref.html @@ -0,0 +1,13 @@ + +Passes if there is an unbroken rectangular border. + + + + + + + + + +
diff --git a/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl.html b/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl.html new file mode 100644 index 00000000000..48edbde2816 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row-vertical-rl.html @@ -0,0 +1,15 @@ + + + +Passes if there is an unbroken rectangular border. + + + + + + + + + +
diff --git a/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row.html b/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row.html new file mode 100644 index 00000000000..a7fe908e0db --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/height-distribution/td-different-subpixel-padding-in-same-row.html @@ -0,0 +1,14 @@ + + + +Passes if there is an unbroken rectangular border. + + + + + + + + + +
diff --git a/tests/wpt/web-platform-tests/css/css-tables/width-distribution/td-with-subpixel-padding-vertical-rl.html b/tests/wpt/web-platform-tests/css/css-tables/width-distribution/td-with-subpixel-padding-vertical-rl.html new file mode 100644 index 00000000000..18ed2ddd00f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/width-distribution/td-with-subpixel-padding-vertical-rl.html @@ -0,0 +1,55 @@ + + + + + +Passes if each column (logical row) has two blue squares. +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+
+ diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-span.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-span.html new file mode 100644 index 00000000000..28087a1cddd --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/column-span.html @@ -0,0 +1,21 @@ + + +'column-span' property + + + + + + + + +
+ diff --git a/tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode-2.html b/tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode-2.html new file mode 100644 index 00000000000..48072d98af6 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/ranges/Range-intersectsNode-2.html @@ -0,0 +1,36 @@ + +Range.intersectsNode + + +
s0s1s2
+ diff --git a/tests/wpt/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.js b/tests/wpt/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.js new file mode 100644 index 00000000000..f5217b42460 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.js @@ -0,0 +1,49 @@ +// META: script=/common/utils.js +// META: script=../resources/utils.js +// META: script=/common/get-host-info.sub.js + +var redirectUrl = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + "redirect.py"; +var urlSetCookies1 = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + "top.txt"; +var urlSetCookies2 = get_host_info().HTTP_ORIGIN_WITH_DIFFERENT_PORT + dirname(location.pathname) + RESOURCES_DIR + "top.txt"; +var urlCheckCookies = get_host_info().HTTP_ORIGIN_WITH_DIFFERENT_PORT + dirname(location.pathname) + RESOURCES_DIR + "inspect-headers.py?cors&headers=cookie"; + +var urlSetCookiesParameters = "?pipe=header(Access-Control-Allow-Origin," + location.origin + ")"; +urlSetCookiesParameters += "|header(Access-Control-Allow-Credentials,true)"; + +urlSetCookiesParameters1 = urlSetCookiesParameters + "|header(Set-Cookie,a=1)"; +urlSetCookiesParameters2 = urlSetCookiesParameters + "|header(Set-Cookie,a=2)"; + +urlClearCookiesParameters1 = urlSetCookiesParameters + "|header(Set-Cookie,a=1%3B%20max-age=0)"; +urlClearCookiesParameters2 = urlSetCookiesParameters + "|header(Set-Cookie,a=2%3B%20max-age=0)"; + +promise_test(async (test) => { + await fetch(urlSetCookies1 + urlSetCookiesParameters1, {"credentials": "include", "mode": "cors"}); + await fetch(urlSetCookies2 + urlSetCookiesParameters2, {"credentials": "include", "mode": "cors"}); +}, "Set cookies"); + +function doTest(usePreflight) { + promise_test(async (test) => { + var url = redirectUrl; + var uuid_token = token(); + var urlParameters = "?token=" + uuid_token + "&max_age=0"; + urlParameters += "&redirect_status=301"; + urlParameters += "&location=" + encodeURIComponent(urlCheckCookies); + urlParameters += "&allow_headers=a&headers=Cookie"; + headers = []; + if (usePreflight) + headers.push(["a", "b"]); + + var requestInit = {"credentials": "include", "mode": "cors", "headers": headers}; + var response = await fetch(url + urlParameters, requestInit); + + assert_equals(response.headers.get("x-request-cookie") , "a=2", "Request includes cookie(s)"); + }, "Testing credentials after cross-origin redirection with CORS and " + (usePreflight ? "" : "no ") + "preflight"); +} + +doTest(false); +doTest(true); + +promise_test(async (test) => { + await fetch(urlSetCookies1 + urlClearCookiesParameters1, {"credentials": "include", "mode": "cors"}); + await fetch(urlSetCookies2 + urlClearCookiesParameters2, {"credentials": "include", "mode": "cors"}); +}, "Clean cookies"); diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/inspect-headers.py b/tests/wpt/web-platform-tests/fetch/api/resources/inspect-headers.py index c4ace18ab64..d53038cee0b 100644 --- a/tests/wpt/web-platform-tests/fetch/api/resources/inspect-headers.py +++ b/tests/wpt/web-platform-tests/fetch/api/resources/inspect-headers.py @@ -16,7 +16,10 @@ def main(request, response): headers.append(("Access-Control-Allow-Methods", "GET, POST, HEAD")) exposed_headers = ["x-request-" + header for header in checked_headers] headers.append(("Access-Control-Expose-Headers", ", ".join(exposed_headers))) - headers.append(("Access-Control-Allow-Headers", ", ".join(request.headers))) + if "allow_headers" in request.GET: + headers.append(("Access-Control-Allow-Headers", request.GET['allow_headers'])) + else: + headers.append(("Access-Control-Allow-Headers", ", ".join(request.headers))) headers.append(("content-type", "text/plain")) return headers, "" diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/redirect.py b/tests/wpt/web-platform-tests/fetch/api/resources/redirect.py index 3d313e5b0b4..40c1b99961a 100644 --- a/tests/wpt/web-platform-tests/fetch/api/resources/redirect.py +++ b/tests/wpt/web-platform-tests/fetch/api/resources/redirect.py @@ -7,10 +7,14 @@ def main(request, response): status = 302 headers = [("Content-Type", "text/plain"), ("Cache-Control", "no-cache"), - ("Pragma", "no-cache"), - ("Access-Control-Allow-Origin", "*")] - token = None + ("Pragma", "no-cache")] + if "Origin" in request.headers: + headers.append(("Access-Control-Allow-Origin", request.headers.get("Origin", ""))) + headers.append(("Access-Control-Allow-Credentials", "true")) + else: + headers.append(("Access-Control-Allow-Origin", "*")) + token = None if "token" in request.GET: token = request.GET.first("token") data = request.server.stash.take(token) diff --git a/tests/wpt/web-platform-tests/fonts/math/largeop-displayoperatorminheight2000-2AFF-italiccorrection3000.woff b/tests/wpt/web-platform-tests/fonts/math/largeop-displayoperatorminheight2000-2AFF-italiccorrection3000.woff new file mode 100644 index 0000000000000000000000000000000000000000..0b4f8bf46a76ab5cc70c2a12cb7db0d49570bd7c GIT binary patch literal 1372 zcmZXUe>9X?7{~8B#!HzDCEgJkKib4--WhCa+qJ04$n4ZHHhYfhee+@xlcG)Os4=Z+ zC8?FPIj5;rNh7tXY+F0yM={JG#VRGSdk`^&RtICR+W+>R^Evl@zUTWs_nv#7=k65? z1Y(Iq41jqwumW&c5dfK;|35+m0yY3<2LM2pLe%xE5+Vcwi3k9CF?6#aPKu|$)rx{7 zp-|Jp_$c(r7FIh(iX*su_)S3VYY4FbTh$wrL?*+0o}V-%EYjHVK^jX^&}RuXF648k zsOJhP6rmOXV`qrRf^p_WX;Nw$+;cdLZDwJ?zmmu_m=B49G5Qhu1|TDoVxgvjWI?}o z!#t&Z^3If0xULj>7C_iDS%9Bb6hlx10eZI2ln>|j-TBa<3j^dJh6}tQn)=KYvD*R-0F&0ik>#6rd6<4G0ow_h3>0HozkQAAMv-Re)T6N-jU6 ze5#PkN%O;TyNT;@erBx$9uMRnAvbWqDTxT3U z{Z?o{4dymD250Q-3f$Ma0yG)vOy$UY_qxRcHM^`fbtz(8?v$n1CFM*ls&g)yY|a(q z3CFR4TjK4TJ2^Fr-&dwQ4<6VY@cwPj{Z+Doy`;uJA|?Gu z?Md_79yc{N(^pO}V@5`=82dIq@8EhKO`liHn{O@L+FMLHeJ1vG@0A5z4SxBzDtz2) z)2(Rx&b#4zOPlsQ^Sr;TbdSuhj>H<$iadUmmaJ^dZ{OE$SNi&~LbGr(;>3?Wk2}VV zmqnel0y}KCDc-_*uG_QLrt-eSYa&G#I-G4S&STjx_hg%2_+x1O=v3~M&PQEY=Ix#M zsQ&v=W8jVY@q$Ngj9;|T)0HEWbKV)}mw&oPf`~gruuuVNlZ?E>st(wr^VkNon8hl@ z>?%w%Gt9pf12fEWen^`c;=af%Q(-5dOXakP(c{sm+sylwdwQ(XOcR;y%lsTthSjIA$^M@RwVzIJ`SPY|6n6r5- z=0RbXEqT{7QCqNgp{LkZ*f1y60NmxToh}QnT zuQHrj=IP zXo;Hr%4wR}vTk~QyGQUFKNNi!;P!+S^dxgTwn)dY+vPq~xG`V;Y9x}~nI%^Qp`kl? zMjV$jy1Nh$Or9t}<5W)W9TEX9LAEVMUC}w{$|9Mf#ExtsapbHkkd)CJ;z2f#r=f^A cjirO4;{lyC1BszF0RS0;uS)+Xm?{AN1xXnmvH$=8 literal 0 HcmV?d00001 diff --git a/tests/wpt/web-platform-tests/hr-time/idlharness.html b/tests/wpt/web-platform-tests/hr-time/idlharness.html index c3fd9070ad0..4abaf6033fd 100644 --- a/tests/wpt/web-platform-tests/hr-time/idlharness.html +++ b/tests/wpt/web-platform-tests/hr-time/idlharness.html @@ -18,12 +18,7 @@ function doTest([html, hr_time]) { var idl_array = new IdlArray(); - // HTML is needed for WindowOrWorkerGlobalScope. Provide dummy interfaces for - // things that HTML depends on in turn which are not under tests. - idl_array.add_untested_idls('interface Document {};'); - idl_array.add_untested_idls('interface EventTarget {};'); - idl_array.add_untested_idls('interface LinkStyle {};'); - idl_array.add_untested_idls(html); + idl_array.add_untested_idls(html, { only: ['WindowOrWorkerGlobalScope'] }); idl_array.add_idls(hr_time); idl_array.add_objects({ Performance: ["window.performance"], diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/selected-index.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/selected-index.html index 46f19da7da2..70f6772b876 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/selected-index.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/selected-index.html @@ -25,6 +25,11 @@ + + diff --git a/tests/wpt/web-platform-tests/interfaces/html.idl b/tests/wpt/web-platform-tests/interfaces/html.idl index 89558dfe133..af85b42db6c 100644 --- a/tests/wpt/web-platform-tests/interfaces/html.idl +++ b/tests/wpt/web-platform-tests/interfaces/html.idl @@ -97,14 +97,10 @@ interface HTMLElement : Element { [CEReactions] attribute DOMString lang; [CEReactions] attribute boolean translate; [CEReactions] attribute DOMString dir; - [SameObject] readonly attribute DOMStringMap dataset; // user interaction [CEReactions] attribute boolean hidden; void click(); - [CEReactions] attribute long tabIndex; - void focus(optional FocusOptions options); - void blur(); [CEReactions] attribute DOMString accessKey; readonly attribute DOMString accessKeyLabel; [CEReactions] attribute boolean draggable; @@ -124,6 +120,17 @@ HTMLElement includes ElementContentEditable; // Note: intentionally not [HTMLConstructor] interface HTMLUnknownElement : HTMLElement { }; +interface mixin HTMLOrSVGElement { + [SameObject] readonly attribute DOMStringMap dataset; + attribute DOMString nonce; + + [CEReactions] attribute long tabIndex; + void focus(optional FocusOptions options); + void blur(); +}; +HTMLElement includes HTMLOrSVGElement; +SVGElement includes HTMLOrSVGElement; + [Exposed=Window, OverrideBuiltins] interface DOMStringMap { @@ -164,16 +171,11 @@ interface HTMLLinkElement : HTMLElement { [CEReactions] attribute DOMString as; // (default "") [SameObject, PutForwards=value] readonly attribute DOMTokenList relList; [CEReactions] attribute DOMString media; - [CEReactions] attribute DOMString nonce; [CEReactions] attribute DOMString integrity; [CEReactions] attribute DOMString hreflang; [CEReactions] attribute DOMString type; [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes; [CEReactions] attribute DOMString referrerPolicy; - [CEReactions] attribute DOMString workerType; - [CEReactions] attribute DOMString updateViaCache; - - // also has obsolete members }; HTMLLinkElement includes LinkStyle; @@ -191,8 +193,6 @@ interface HTMLMetaElement : HTMLElement { HTMLConstructor] interface HTMLStyleElement : HTMLElement { [CEReactions] attribute DOMString media; - [CEReactions] attribute DOMString nonce; - [CEReactions] attribute DOMString type; }; HTMLStyleElement includes LinkStyle; @@ -1108,11 +1108,8 @@ interface HTMLScriptElement : HTMLElement { [CEReactions] attribute boolean defer; [CEReactions] attribute DOMString? crossOrigin; [CEReactions] attribute DOMString text; - [CEReactions] attribute DOMString nonce; [CEReactions] attribute DOMString integrity; - - // also has obsolete members }; [Exposed=Window, @@ -2379,6 +2376,10 @@ partial interface HTMLPreElement { [CEReactions] attribute long width; }; +partial interface HTMLStyleElement { + [CEReactions] attribute DOMString type; +}; + partial interface HTMLScriptElement { [CEReactions] attribute DOMString charset; [CEReactions] attribute DOMString event; diff --git a/tests/wpt/web-platform-tests/interfaces/keyboard-lock.idl b/tests/wpt/web-platform-tests/interfaces/keyboard-lock.idl new file mode 100644 index 00000000000..771c716ccad --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/keyboard-lock.idl @@ -0,0 +1,8 @@ +partial interface Navigator { + [SecureContext, SameObject] readonly attribute Keyboard keyboard; +}; + +[SecureContext, Exposed=Window] interface Keyboard { + Promise lock(optional sequence keyCodes = []); + void unlock(); +}; diff --git a/tests/wpt/web-platform-tests/interfaces/web-animations.idl b/tests/wpt/web-platform-tests/interfaces/web-animations.idl new file mode 100644 index 00000000000..f5683f54d23 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/web-animations.idl @@ -0,0 +1,154 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the Web Animations spec. +// See https://drafts.csswg.org/web-animations/ + +[Exposed=Window] +interface AnimationTimeline { + readonly attribute double? currentTime; +}; + +dictionary DocumentTimelineOptions { + DOMHighResTimeStamp originTime = 0; +}; + +[Exposed=Window, + Constructor (optional DocumentTimelineOptions options)] +interface DocumentTimeline : AnimationTimeline { +}; + +[Exposed=Window, + Constructor (optional AnimationEffect? effect = null, + optional AnimationTimeline? timeline)] +interface Animation : EventTarget { + attribute DOMString id; + attribute AnimationEffect? effect; + attribute AnimationTimeline? timeline; + attribute double? startTime; + attribute double? currentTime; + attribute double playbackRate; + readonly attribute AnimationPlayState playState; + readonly attribute boolean pending; + readonly attribute Promise ready; + readonly attribute Promise finished; + attribute EventHandler onfinish; + attribute EventHandler oncancel; + void cancel (); + void finish (); + void play (); + void pause (); + void updatePlaybackRate (double playbackRate); + void reverse (); +}; + +enum AnimationPlayState { "idle", "running", "paused", "finished" }; + +[Exposed=Window] +interface AnimationEffect { + EffectTiming getTiming(); + ComputedEffectTiming getComputedTiming(); + void updateTiming(optional OptionalEffectTiming timing); +}; + +dictionary EffectTiming { + double delay = 0; + double endDelay = 0; + FillMode fill = "auto"; + double iterationStart = 0.0; + unrestricted double iterations = 1.0; + (unrestricted double or DOMString) duration = "auto"; + PlaybackDirection direction = "normal"; + DOMString easing = "linear"; +}; + +dictionary OptionalEffectTiming { + double delay; + double endDelay; + FillMode fill; + double iterationStart; + unrestricted double iterations; + (unrestricted double or DOMString) duration; + PlaybackDirection direction; + DOMString easing; +}; + +enum FillMode { "none", "forwards", "backwards", "both", "auto" }; + +enum PlaybackDirection { "normal", "reverse", "alternate", "alternate-reverse" }; + +dictionary ComputedEffectTiming : EffectTiming { + unrestricted double endTime; + unrestricted double activeDuration; + double? localTime; + double? progress; + unrestricted double? currentIteration; +}; + +[Exposed=Window, + Constructor ((Element or CSSPseudoElement)? target, + object? keyframes, + optional (unrestricted double or KeyframeEffectOptions) options), + Constructor (KeyframeEffect source)] +interface KeyframeEffect : AnimationEffect { + attribute (Element or CSSPseudoElement)? target; + attribute IterationCompositeOperation iterationComposite; + attribute CompositeOperation composite; + sequence getKeyframes (); + void setKeyframes (object? keyframes); +}; + +dictionary BaseComputedKeyframe { + double? offset = null; + double computedOffset; + DOMString easing = "linear"; + CompositeOperation? composite = null; +}; + +dictionary BasePropertyIndexedKeyframe { + (double? or sequence) offset = []; + (DOMString or sequence) easing = []; + (CompositeOperation? or sequence) composite = []; +}; + +dictionary BaseKeyframe { + double? offset = null; + DOMString easing = "linear"; + CompositeOperation? composite = null; +}; + +dictionary KeyframeEffectOptions : EffectTiming { + IterationCompositeOperation iterationComposite = "replace"; + CompositeOperation composite = "replace"; +}; + +enum IterationCompositeOperation {"replace", "accumulate"}; + +enum CompositeOperation {"replace", "add", "accumulate"}; + +interface mixin Animatable { + Animation animate (object? keyframes, + optional (unrestricted double or KeyframeAnimationOptions) options); + sequence getAnimations (); +}; +dictionary KeyframeAnimationOptions : KeyframeEffectOptions { + DOMString id = ""; +}; + +partial interface Document { + readonly attribute DocumentTimeline timeline; + sequence getAnimations(); +}; + +Element includes Animatable; + +CSSPseudoElement includes Animatable; + +[Exposed=Window, + Constructor (DOMString type, optional AnimationPlaybackEventInit eventInitDict)] +interface AnimationPlaybackEvent : Event { + readonly attribute double? currentTime; + readonly attribute double? timelineTime; +}; +dictionary AnimationPlaybackEventInit : EventInit { + double? currentTime = null; + double? timelineTime = null; +}; diff --git a/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html b/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html index 9caa379f4f6..1c3ade02842 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/idlharness.https.html @@ -1,41 +1,34 @@ -Keyboard Lock IDL tests - +Keyboard IDL tests + - - - - - -
- - diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock-two-parallel-requests.https.html similarity index 57% rename from tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html rename to tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock-two-parallel-requests.https.html index d553c064d50..501f36fb358 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-parallel-requests.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock-two-parallel-requests.https.html @@ -5,11 +5,11 @@ 'use strict'; promise_test((t) => { - const p1 = navigator.keyboardLock(['a', 'b']); - const p2 = navigator.keyboardLock(['c', 'd']); + const p1 = navigator.keyboard.lock(['a', 'b']); + const p2 = navigator.keyboard.lock(['c', 'd']); return promise_rejects(t, null, p2, - 'keyboardLock() should only be ' + + 'keyboard.lock() should only be ' + 'executed if another request has finished.'); -}, 'Keyboard Lock keyboardLock twice in parallel'); +}, '[Keyboard Lock] keyboard.lock twice in parallel'); diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock-two-sequential-requests.https.html similarity index 56% rename from tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html rename to tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock-two-sequential-requests.https.html index 7670be4f383..4403930bf62 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock-two-sequential-requests.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock-two-sequential-requests.https.html @@ -5,10 +5,10 @@ 'use strict'; promise_test(() => { - return navigator.keyboardLock(['a', 'b']) + return navigator.keyboard.lock(['a', 'b']) .then(() => { - return navigator.keyboardLock(['c', 'd']); + return navigator.keyboard.lock(['c', 'd']); }); -}, 'Keyboard Lock keyboardLock twice sequentially'); +}, '[Keyboard Lock] keyboard.lock called twice sequentially'); diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock.https.html similarity index 72% rename from tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html rename to tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock.https.html index 6711decc121..d39e8907647 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardLock.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-lock.https.html @@ -5,9 +5,9 @@ 'use strict'; promise_test(() => { - const p = navigator.keyboardLock(['a', 'b']); + const p = navigator.keyboard.lock(['a', 'b']); assert_true(p instanceof Promise); return p; -}, 'Keyboard Lock keyboardLock'); +}, '[Keyboard Lock] keyboard.lock'); diff --git a/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-unlock.https.html similarity index 70% rename from tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html rename to tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-unlock.https.html index ceb7a968949..87b10ee49a9 100644 --- a/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboardUnlock.https.html +++ b/tests/wpt/web-platform-tests/keyboard-lock/navigator-keyboard-unlock.https.html @@ -5,8 +5,8 @@ 'use strict'; test(() => { - assert_equals(navigator.keyboardUnlock(), + assert_equals(navigator.keyboard.unlock(), undefined); -}, 'Keyboard Lock keyboardUnlock'); +}, '[Keyboard Lock] keyboard.unlock'); diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html new file mode 100644 index 00000000000..eaa4f0ffab1 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html @@ -0,0 +1,132 @@ + + + + +Subscripts and Superscripts parameters + + + + + + + + +
+

Null Italic Correction

+

+ + + ⫿ + + + + + + ⫿ + + + + + + ⫿ + + + + + + + ⫿ + + + + + + + +

+

NonNull Italic Correction

+

+ + + ⫿ + + + + + + ⫿ + + + + + + ⫿ + + + + + + + ⫿ + + + + + + + +

+ + diff --git a/tests/wpt/web-platform-tests/mathml/tools/largeop.py b/tests/wpt/web-platform-tests/mathml/tools/largeop.py index 3c9c6c4c949..73d967689bb 100644 --- a/tests/wpt/web-platform-tests/mathml/tools/largeop.py +++ b/tests/wpt/web-platform-tests/mathml/tools/largeop.py @@ -12,3 +12,21 @@ g = f.createChar(-1, "uni2AFF.display") mathfont.drawRectangleGlyph(g, mathfont.em, v1, 0) f[nAryWhiteVerticalBarCodePoint].verticalVariants = "uni2AFF uni2AFF.display" mathfont.save(f) + +v1 = 2 * mathfont.em +v2 = 3 * mathfont.em +f = mathfont.create("largeop-displayoperatorminheight%d-2AFF-italiccorrection%d" % (v1, v2)) +f.copyright = "Copyright (c) 2018 Igalia S.L." +f.math.DisplayOperatorMinHeight = v1 +mathfont.createSquareGlyph(f, nAryWhiteVerticalBarCodePoint) +g = f.createChar(-1, "uni2AFF.display") +p = g.glyphPen() +p.moveTo(0, 0) +p.lineTo(v2, v1) +p.lineTo(v2 + mathfont.em, v1) +p.lineTo(mathfont.em, 0) +p.closePath(); +g.width = mathfont.em + v2 +g.italicCorrection = v2 +f[nAryWhiteVerticalBarCodePoint].verticalVariants = "uni2AFF uni2AFF.display" +mathfont.save(f) diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentItem/type_member.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentItem/type_member.https.html new file mode 100644 index 00000000000..dc62a83f597 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-request/PaymentItem/type_member.https.html @@ -0,0 +1,77 @@ + + + + + PaymentItem type member + + + + diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-insecure.http.html b/tests/wpt/web-platform-tests/payment-request/payment-request-insecure.http.html new file mode 100644 index 00000000000..02122203d51 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-insecure.http.html @@ -0,0 +1,13 @@ + + + +Test for PaymentRequest Constructor (insecure) + + + + diff --git a/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html b/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html index 00ce84a4859..1067fb3cd58 100644 --- a/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-manual.https.html @@ -9,6 +9,35 @@ setup({ explicit_done: true, explicit_timeout: true, + allow_uncaught_exception: true, +}); + +const defaultMethods = Object.freeze([ + { supportedMethods: "basic-card" }, + { supportedMethods: "https://apple.com/pay" }, +]); + +const defaultDetails = Object.freeze({ + id: "fail", + total: { + label: "Total", + amount: { + currency: "USD", + value: "1.00", + }, + }, +}); + +test(() => { + assert_throws( + "SecurityError", + () => { + const request = new PaymentRequest(defaultMethods, defaultDetails); + request.show(); // <--- should throw here + request.abort(); + }, + "throws a SecurityError if not triggered by user activation" + ); }); async function runUserActivation(button) { @@ -27,6 +56,7 @@ async function runUserActivation(button) { }, button.textContent.trim()); done(); } +

Test PaymentRequest.show() triggered by user activation using postMessage()

diff --git a/tests/wpt/web-platform-tests/resources/chromium/fake_bluetooth.mojom.js b/tests/wpt/web-platform-tests/resources/chromium/fake_bluetooth.mojom.js index 4daf3f058e2..08c26b68f61 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/fake_bluetooth.mojom.js +++ b/tests/wpt/web-platform-tests/resources/chromium/fake_bluetooth.mojom.js @@ -2270,6 +2270,155 @@ encoder.writeUint32(0); encoder.encodeStruct(codec.NullableString, val.descriptorId); }; + function FakeCentral_RemoveFakeDescriptor_Params(values) { + this.initDefaults_(); + this.initFields_(values); + } + + + FakeCentral_RemoveFakeDescriptor_Params.prototype.initDefaults_ = function() { + this.descriptorId = null; + this.characteristicId = null; + this.serviceId = null; + this.peripheralAddress = null; + }; + FakeCentral_RemoveFakeDescriptor_Params.prototype.initFields_ = function(fields) { + for(var field in fields) { + if (this.hasOwnProperty(field)) + this[field] = fields[field]; + } + }; + + FakeCentral_RemoveFakeDescriptor_Params.validate = function(messageValidator, offset) { + var err; + err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); + if (err !== validator.validationError.NONE) + return err; + + var kVersionSizes = [ + {version: 0, numBytes: 40} + ]; + err = messageValidator.validateStructVersion(offset, kVersionSizes); + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_RemoveFakeDescriptor_Params.descriptorId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 0, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_RemoveFakeDescriptor_Params.characteristicId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 8, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_RemoveFakeDescriptor_Params.serviceId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 16, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_RemoveFakeDescriptor_Params.peripheralAddress + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 24, false) + if (err !== validator.validationError.NONE) + return err; + + return validator.validationError.NONE; + }; + + FakeCentral_RemoveFakeDescriptor_Params.encodedSize = codec.kStructHeaderSize + 32; + + FakeCentral_RemoveFakeDescriptor_Params.decode = function(decoder) { + var packed; + var val = new FakeCentral_RemoveFakeDescriptor_Params(); + var numberOfBytes = decoder.readUint32(); + var version = decoder.readUint32(); + val.descriptorId = decoder.decodeStruct(codec.String); + val.characteristicId = decoder.decodeStruct(codec.String); + val.serviceId = decoder.decodeStruct(codec.String); + val.peripheralAddress = decoder.decodeStruct(codec.String); + return val; + }; + + FakeCentral_RemoveFakeDescriptor_Params.encode = function(encoder, val) { + var packed; + encoder.writeUint32(FakeCentral_RemoveFakeDescriptor_Params.encodedSize); + encoder.writeUint32(0); + encoder.encodeStruct(codec.String, val.descriptorId); + encoder.encodeStruct(codec.String, val.characteristicId); + encoder.encodeStruct(codec.String, val.serviceId); + encoder.encodeStruct(codec.String, val.peripheralAddress); + }; + function FakeCentral_RemoveFakeDescriptor_ResponseParams(values) { + this.initDefaults_(); + this.initFields_(values); + } + + + FakeCentral_RemoveFakeDescriptor_ResponseParams.prototype.initDefaults_ = function() { + this.success = false; + }; + FakeCentral_RemoveFakeDescriptor_ResponseParams.prototype.initFields_ = function(fields) { + for(var field in fields) { + if (this.hasOwnProperty(field)) + this[field] = fields[field]; + } + }; + + FakeCentral_RemoveFakeDescriptor_ResponseParams.validate = function(messageValidator, offset) { + var err; + err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); + if (err !== validator.validationError.NONE) + return err; + + var kVersionSizes = [ + {version: 0, numBytes: 16} + ]; + err = messageValidator.validateStructVersion(offset, kVersionSizes); + if (err !== validator.validationError.NONE) + return err; + + + return validator.validationError.NONE; + }; + + FakeCentral_RemoveFakeDescriptor_ResponseParams.encodedSize = codec.kStructHeaderSize + 8; + + FakeCentral_RemoveFakeDescriptor_ResponseParams.decode = function(decoder) { + var packed; + var val = new FakeCentral_RemoveFakeDescriptor_ResponseParams(); + var numberOfBytes = decoder.readUint32(); + var version = decoder.readUint32(); + packed = decoder.readUint8(); + val.success = (packed >> 0) & 1 ? true : false; + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + return val; + }; + + FakeCentral_RemoveFakeDescriptor_ResponseParams.encode = function(encoder, val) { + var packed; + encoder.writeUint32(FakeCentral_RemoveFakeDescriptor_ResponseParams.encodedSize); + encoder.writeUint32(0); + packed = 0; + packed |= (val.success & 1) << 0 + encoder.writeUint8(packed); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + }; function FakeCentral_SetNextReadCharacteristicResponse_Params(values) { this.initDefaults_(); this.initFields_(values); @@ -2747,25 +2896,25 @@ encoder.skip(1); encoder.skip(1); }; - function FakeCentral_GetLastWrittenValue_Params(values) { + function FakeCentral_GetLastWrittenCharacteristicValue_Params(values) { this.initDefaults_(); this.initFields_(values); } - FakeCentral_GetLastWrittenValue_Params.prototype.initDefaults_ = function() { + FakeCentral_GetLastWrittenCharacteristicValue_Params.prototype.initDefaults_ = function() { this.characteristicId = null; this.serviceId = null; this.peripheralAddress = null; }; - FakeCentral_GetLastWrittenValue_Params.prototype.initFields_ = function(fields) { + FakeCentral_GetLastWrittenCharacteristicValue_Params.prototype.initFields_ = function(fields) { for(var field in fields) { if (this.hasOwnProperty(field)) this[field] = fields[field]; } }; - FakeCentral_GetLastWrittenValue_Params.validate = function(messageValidator, offset) { + FakeCentral_GetLastWrittenCharacteristicValue_Params.validate = function(messageValidator, offset) { var err; err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); if (err !== validator.validationError.NONE) @@ -2779,19 +2928,19 @@ return err; - // validate FakeCentral_GetLastWrittenValue_Params.characteristicId + // validate FakeCentral_GetLastWrittenCharacteristicValue_Params.characteristicId err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 0, false) if (err !== validator.validationError.NONE) return err; - // validate FakeCentral_GetLastWrittenValue_Params.serviceId + // validate FakeCentral_GetLastWrittenCharacteristicValue_Params.serviceId err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 8, false) if (err !== validator.validationError.NONE) return err; - // validate FakeCentral_GetLastWrittenValue_Params.peripheralAddress + // validate FakeCentral_GetLastWrittenCharacteristicValue_Params.peripheralAddress err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 16, false) if (err !== validator.validationError.NONE) return err; @@ -2799,11 +2948,11 @@ return validator.validationError.NONE; }; - FakeCentral_GetLastWrittenValue_Params.encodedSize = codec.kStructHeaderSize + 24; + FakeCentral_GetLastWrittenCharacteristicValue_Params.encodedSize = codec.kStructHeaderSize + 24; - FakeCentral_GetLastWrittenValue_Params.decode = function(decoder) { + FakeCentral_GetLastWrittenCharacteristicValue_Params.decode = function(decoder) { var packed; - var val = new FakeCentral_GetLastWrittenValue_Params(); + var val = new FakeCentral_GetLastWrittenCharacteristicValue_Params(); var numberOfBytes = decoder.readUint32(); var version = decoder.readUint32(); val.characteristicId = decoder.decodeStruct(codec.String); @@ -2812,32 +2961,32 @@ return val; }; - FakeCentral_GetLastWrittenValue_Params.encode = function(encoder, val) { + FakeCentral_GetLastWrittenCharacteristicValue_Params.encode = function(encoder, val) { var packed; - encoder.writeUint32(FakeCentral_GetLastWrittenValue_Params.encodedSize); + encoder.writeUint32(FakeCentral_GetLastWrittenCharacteristicValue_Params.encodedSize); encoder.writeUint32(0); encoder.encodeStruct(codec.String, val.characteristicId); encoder.encodeStruct(codec.String, val.serviceId); encoder.encodeStruct(codec.String, val.peripheralAddress); }; - function FakeCentral_GetLastWrittenValue_ResponseParams(values) { + function FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams(values) { this.initDefaults_(); this.initFields_(values); } - FakeCentral_GetLastWrittenValue_ResponseParams.prototype.initDefaults_ = function() { + FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.prototype.initDefaults_ = function() { this.success = false; this.value = null; }; - FakeCentral_GetLastWrittenValue_ResponseParams.prototype.initFields_ = function(fields) { + FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.prototype.initFields_ = function(fields) { for(var field in fields) { if (this.hasOwnProperty(field)) this[field] = fields[field]; } }; - FakeCentral_GetLastWrittenValue_ResponseParams.validate = function(messageValidator, offset) { + FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.validate = function(messageValidator, offset) { var err; err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); if (err !== validator.validationError.NONE) @@ -2852,7 +3001,7 @@ - // validate FakeCentral_GetLastWrittenValue_ResponseParams.value + // validate FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.value err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 8, 1, codec.Uint8, true, [0], 0); if (err !== validator.validationError.NONE) return err; @@ -2860,11 +3009,11 @@ return validator.validationError.NONE; }; - FakeCentral_GetLastWrittenValue_ResponseParams.encodedSize = codec.kStructHeaderSize + 16; + FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.encodedSize = codec.kStructHeaderSize + 16; - FakeCentral_GetLastWrittenValue_ResponseParams.decode = function(decoder) { + FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.decode = function(decoder) { var packed; - var val = new FakeCentral_GetLastWrittenValue_ResponseParams(); + var val = new FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams(); var numberOfBytes = decoder.readUint32(); var version = decoder.readUint32(); packed = decoder.readUint8(); @@ -2880,9 +3029,9 @@ return val; }; - FakeCentral_GetLastWrittenValue_ResponseParams.encode = function(encoder, val) { + FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.encode = function(encoder, val) { var packed; - encoder.writeUint32(FakeCentral_GetLastWrittenValue_ResponseParams.encodedSize); + encoder.writeUint32(FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.encodedSize); encoder.writeUint32(0); packed = 0; packed |= (val.success & 1) << 0 @@ -3070,6 +3219,329 @@ encoder.skip(1); encoder.skip(1); }; + function FakeCentral_SetNextWriteDescriptorResponse_Params(values) { + this.initDefaults_(); + this.initFields_(values); + } + + + FakeCentral_SetNextWriteDescriptorResponse_Params.prototype.initDefaults_ = function() { + this.gattCode = 0; + this.descriptorId = null; + this.characteristicId = null; + this.serviceId = null; + this.peripheralAddress = null; + }; + FakeCentral_SetNextWriteDescriptorResponse_Params.prototype.initFields_ = function(fields) { + for(var field in fields) { + if (this.hasOwnProperty(field)) + this[field] = fields[field]; + } + }; + + FakeCentral_SetNextWriteDescriptorResponse_Params.validate = function(messageValidator, offset) { + var err; + err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); + if (err !== validator.validationError.NONE) + return err; + + var kVersionSizes = [ + {version: 0, numBytes: 48} + ]; + err = messageValidator.validateStructVersion(offset, kVersionSizes); + if (err !== validator.validationError.NONE) + return err; + + + + // validate FakeCentral_SetNextWriteDescriptorResponse_Params.descriptorId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 8, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_SetNextWriteDescriptorResponse_Params.characteristicId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 16, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_SetNextWriteDescriptorResponse_Params.serviceId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 24, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_SetNextWriteDescriptorResponse_Params.peripheralAddress + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 32, false) + if (err !== validator.validationError.NONE) + return err; + + return validator.validationError.NONE; + }; + + FakeCentral_SetNextWriteDescriptorResponse_Params.encodedSize = codec.kStructHeaderSize + 40; + + FakeCentral_SetNextWriteDescriptorResponse_Params.decode = function(decoder) { + var packed; + var val = new FakeCentral_SetNextWriteDescriptorResponse_Params(); + var numberOfBytes = decoder.readUint32(); + var version = decoder.readUint32(); + val.gattCode = decoder.decodeStruct(codec.Uint16); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + val.descriptorId = decoder.decodeStruct(codec.String); + val.characteristicId = decoder.decodeStruct(codec.String); + val.serviceId = decoder.decodeStruct(codec.String); + val.peripheralAddress = decoder.decodeStruct(codec.String); + return val; + }; + + FakeCentral_SetNextWriteDescriptorResponse_Params.encode = function(encoder, val) { + var packed; + encoder.writeUint32(FakeCentral_SetNextWriteDescriptorResponse_Params.encodedSize); + encoder.writeUint32(0); + encoder.encodeStruct(codec.Uint16, val.gattCode); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.encodeStruct(codec.String, val.descriptorId); + encoder.encodeStruct(codec.String, val.characteristicId); + encoder.encodeStruct(codec.String, val.serviceId); + encoder.encodeStruct(codec.String, val.peripheralAddress); + }; + function FakeCentral_SetNextWriteDescriptorResponse_ResponseParams(values) { + this.initDefaults_(); + this.initFields_(values); + } + + + FakeCentral_SetNextWriteDescriptorResponse_ResponseParams.prototype.initDefaults_ = function() { + this.success = false; + }; + FakeCentral_SetNextWriteDescriptorResponse_ResponseParams.prototype.initFields_ = function(fields) { + for(var field in fields) { + if (this.hasOwnProperty(field)) + this[field] = fields[field]; + } + }; + + FakeCentral_SetNextWriteDescriptorResponse_ResponseParams.validate = function(messageValidator, offset) { + var err; + err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); + if (err !== validator.validationError.NONE) + return err; + + var kVersionSizes = [ + {version: 0, numBytes: 16} + ]; + err = messageValidator.validateStructVersion(offset, kVersionSizes); + if (err !== validator.validationError.NONE) + return err; + + + return validator.validationError.NONE; + }; + + FakeCentral_SetNextWriteDescriptorResponse_ResponseParams.encodedSize = codec.kStructHeaderSize + 8; + + FakeCentral_SetNextWriteDescriptorResponse_ResponseParams.decode = function(decoder) { + var packed; + var val = new FakeCentral_SetNextWriteDescriptorResponse_ResponseParams(); + var numberOfBytes = decoder.readUint32(); + var version = decoder.readUint32(); + packed = decoder.readUint8(); + val.success = (packed >> 0) & 1 ? true : false; + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + return val; + }; + + FakeCentral_SetNextWriteDescriptorResponse_ResponseParams.encode = function(encoder, val) { + var packed; + encoder.writeUint32(FakeCentral_SetNextWriteDescriptorResponse_ResponseParams.encodedSize); + encoder.writeUint32(0); + packed = 0; + packed |= (val.success & 1) << 0 + encoder.writeUint8(packed); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + }; + function FakeCentral_GetLastWrittenDescriptorValue_Params(values) { + this.initDefaults_(); + this.initFields_(values); + } + + + FakeCentral_GetLastWrittenDescriptorValue_Params.prototype.initDefaults_ = function() { + this.descriptorId = null; + this.characteristicId = null; + this.serviceId = null; + this.peripheralAddress = null; + }; + FakeCentral_GetLastWrittenDescriptorValue_Params.prototype.initFields_ = function(fields) { + for(var field in fields) { + if (this.hasOwnProperty(field)) + this[field] = fields[field]; + } + }; + + FakeCentral_GetLastWrittenDescriptorValue_Params.validate = function(messageValidator, offset) { + var err; + err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); + if (err !== validator.validationError.NONE) + return err; + + var kVersionSizes = [ + {version: 0, numBytes: 40} + ]; + err = messageValidator.validateStructVersion(offset, kVersionSizes); + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_GetLastWrittenDescriptorValue_Params.descriptorId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 0, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_GetLastWrittenDescriptorValue_Params.characteristicId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 8, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_GetLastWrittenDescriptorValue_Params.serviceId + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 16, false) + if (err !== validator.validationError.NONE) + return err; + + + // validate FakeCentral_GetLastWrittenDescriptorValue_Params.peripheralAddress + err = messageValidator.validateStringPointer(offset + codec.kStructHeaderSize + 24, false) + if (err !== validator.validationError.NONE) + return err; + + return validator.validationError.NONE; + }; + + FakeCentral_GetLastWrittenDescriptorValue_Params.encodedSize = codec.kStructHeaderSize + 32; + + FakeCentral_GetLastWrittenDescriptorValue_Params.decode = function(decoder) { + var packed; + var val = new FakeCentral_GetLastWrittenDescriptorValue_Params(); + var numberOfBytes = decoder.readUint32(); + var version = decoder.readUint32(); + val.descriptorId = decoder.decodeStruct(codec.String); + val.characteristicId = decoder.decodeStruct(codec.String); + val.serviceId = decoder.decodeStruct(codec.String); + val.peripheralAddress = decoder.decodeStruct(codec.String); + return val; + }; + + FakeCentral_GetLastWrittenDescriptorValue_Params.encode = function(encoder, val) { + var packed; + encoder.writeUint32(FakeCentral_GetLastWrittenDescriptorValue_Params.encodedSize); + encoder.writeUint32(0); + encoder.encodeStruct(codec.String, val.descriptorId); + encoder.encodeStruct(codec.String, val.characteristicId); + encoder.encodeStruct(codec.String, val.serviceId); + encoder.encodeStruct(codec.String, val.peripheralAddress); + }; + function FakeCentral_GetLastWrittenDescriptorValue_ResponseParams(values) { + this.initDefaults_(); + this.initFields_(values); + } + + + FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.prototype.initDefaults_ = function() { + this.success = false; + this.value = null; + }; + FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.prototype.initFields_ = function(fields) { + for(var field in fields) { + if (this.hasOwnProperty(field)) + this[field] = fields[field]; + } + }; + + FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.validate = function(messageValidator, offset) { + var err; + err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); + if (err !== validator.validationError.NONE) + return err; + + var kVersionSizes = [ + {version: 0, numBytes: 24} + ]; + err = messageValidator.validateStructVersion(offset, kVersionSizes); + if (err !== validator.validationError.NONE) + return err; + + + + // validate FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.value + err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 8, 1, codec.Uint8, true, [0], 0); + if (err !== validator.validationError.NONE) + return err; + + return validator.validationError.NONE; + }; + + FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.encodedSize = codec.kStructHeaderSize + 16; + + FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.decode = function(decoder) { + var packed; + var val = new FakeCentral_GetLastWrittenDescriptorValue_ResponseParams(); + var numberOfBytes = decoder.readUint32(); + var version = decoder.readUint32(); + packed = decoder.readUint8(); + val.success = (packed >> 0) & 1 ? true : false; + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + decoder.skip(1); + val.value = decoder.decodeArrayPointer(codec.Uint8); + return val; + }; + + FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.encode = function(encoder, val) { + var packed; + encoder.writeUint32(FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.encodedSize); + encoder.writeUint32(0); + packed = 0; + packed |= (val.success & 1) << 0 + encoder.writeUint8(packed); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.skip(1); + encoder.encodeArrayPointer(codec.Uint8, val.value); + }; var kFakeBluetooth_SetLESupported_Name = 0; var kFakeBluetooth_SimulateCentral_Name = 1; var kFakeBluetooth_AllResponsesConsumed_Name = 2; @@ -3310,11 +3782,14 @@ var kFakeCentral_AddFakeCharacteristic_Name = 8; var kFakeCentral_RemoveFakeCharacteristic_Name = 9; var kFakeCentral_AddFakeDescriptor_Name = 10; - var kFakeCentral_SetNextReadCharacteristicResponse_Name = 11; - var kFakeCentral_SetNextWriteCharacteristicResponse_Name = 12; - var kFakeCentral_SetNextSubscribeToNotificationsResponse_Name = 13; - var kFakeCentral_GetLastWrittenValue_Name = 14; - var kFakeCentral_SetNextReadDescriptorResponse_Name = 15; + var kFakeCentral_RemoveFakeDescriptor_Name = 11; + var kFakeCentral_SetNextReadCharacteristicResponse_Name = 12; + var kFakeCentral_SetNextWriteCharacteristicResponse_Name = 13; + var kFakeCentral_SetNextSubscribeToNotificationsResponse_Name = 14; + var kFakeCentral_GetLastWrittenCharacteristicValue_Name = 15; + var kFakeCentral_SetNextReadDescriptorResponse_Name = 16; + var kFakeCentral_SetNextWriteDescriptorResponse_Name = 17; + var kFakeCentral_GetLastWrittenDescriptorValue_Name = 18; function FakeCentralPtr(handleOrPtrInfo) { this.ptr = new bindings.InterfacePtrController(FakeCentral, @@ -3623,6 +4098,34 @@ }); }.bind(this)); }; + FakeCentralPtr.prototype.removeFakeDescriptor = function() { + return FakeCentralProxy.prototype.removeFakeDescriptor + .apply(this.ptr.getProxy(), arguments); + }; + + FakeCentralProxy.prototype.removeFakeDescriptor = function(descriptorId, characteristicId, serviceId, peripheralAddress) { + var params = new FakeCentral_RemoveFakeDescriptor_Params(); + params.descriptorId = descriptorId; + params.characteristicId = characteristicId; + params.serviceId = serviceId; + params.peripheralAddress = peripheralAddress; + return new Promise(function(resolve, reject) { + var builder = new codec.MessageV1Builder( + kFakeCentral_RemoveFakeDescriptor_Name, + codec.align(FakeCentral_RemoveFakeDescriptor_Params.encodedSize), + codec.kMessageExpectsResponse, 0); + builder.encodeStruct(FakeCentral_RemoveFakeDescriptor_Params, params); + var message = builder.finish(); + this.receiver_.acceptAndExpectResponse(message).then(function(message) { + var reader = new codec.MessageReader(message); + var responseParams = + reader.decodeStruct(FakeCentral_RemoveFakeDescriptor_ResponseParams); + resolve(responseParams); + }).catch(function(result) { + reject(Error("Connection error: " + result)); + }); + }.bind(this)); + }; FakeCentralPtr.prototype.setNextReadCharacteristicResponse = function() { return FakeCentralProxy.prototype.setNextReadCharacteristicResponse .apply(this.ptr.getProxy(), arguments); @@ -3708,27 +4211,27 @@ }); }.bind(this)); }; - FakeCentralPtr.prototype.getLastWrittenValue = function() { - return FakeCentralProxy.prototype.getLastWrittenValue + FakeCentralPtr.prototype.getLastWrittenCharacteristicValue = function() { + return FakeCentralProxy.prototype.getLastWrittenCharacteristicValue .apply(this.ptr.getProxy(), arguments); }; - FakeCentralProxy.prototype.getLastWrittenValue = function(characteristicId, serviceId, peripheralAddress) { - var params = new FakeCentral_GetLastWrittenValue_Params(); + FakeCentralProxy.prototype.getLastWrittenCharacteristicValue = function(characteristicId, serviceId, peripheralAddress) { + var params = new FakeCentral_GetLastWrittenCharacteristicValue_Params(); params.characteristicId = characteristicId; params.serviceId = serviceId; params.peripheralAddress = peripheralAddress; return new Promise(function(resolve, reject) { var builder = new codec.MessageV1Builder( - kFakeCentral_GetLastWrittenValue_Name, - codec.align(FakeCentral_GetLastWrittenValue_Params.encodedSize), + kFakeCentral_GetLastWrittenCharacteristicValue_Name, + codec.align(FakeCentral_GetLastWrittenCharacteristicValue_Params.encodedSize), codec.kMessageExpectsResponse, 0); - builder.encodeStruct(FakeCentral_GetLastWrittenValue_Params, params); + builder.encodeStruct(FakeCentral_GetLastWrittenCharacteristicValue_Params, params); var message = builder.finish(); this.receiver_.acceptAndExpectResponse(message).then(function(message) { var reader = new codec.MessageReader(message); var responseParams = - reader.decodeStruct(FakeCentral_GetLastWrittenValue_ResponseParams); + reader.decodeStruct(FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams); resolve(responseParams); }).catch(function(result) { reject(Error("Connection error: " + result)); @@ -3765,6 +4268,63 @@ }); }.bind(this)); }; + FakeCentralPtr.prototype.setNextWriteDescriptorResponse = function() { + return FakeCentralProxy.prototype.setNextWriteDescriptorResponse + .apply(this.ptr.getProxy(), arguments); + }; + + FakeCentralProxy.prototype.setNextWriteDescriptorResponse = function(gattCode, descriptorId, characteristicId, serviceId, peripheralAddress) { + var params = new FakeCentral_SetNextWriteDescriptorResponse_Params(); + params.gattCode = gattCode; + params.descriptorId = descriptorId; + params.characteristicId = characteristicId; + params.serviceId = serviceId; + params.peripheralAddress = peripheralAddress; + return new Promise(function(resolve, reject) { + var builder = new codec.MessageV1Builder( + kFakeCentral_SetNextWriteDescriptorResponse_Name, + codec.align(FakeCentral_SetNextWriteDescriptorResponse_Params.encodedSize), + codec.kMessageExpectsResponse, 0); + builder.encodeStruct(FakeCentral_SetNextWriteDescriptorResponse_Params, params); + var message = builder.finish(); + this.receiver_.acceptAndExpectResponse(message).then(function(message) { + var reader = new codec.MessageReader(message); + var responseParams = + reader.decodeStruct(FakeCentral_SetNextWriteDescriptorResponse_ResponseParams); + resolve(responseParams); + }).catch(function(result) { + reject(Error("Connection error: " + result)); + }); + }.bind(this)); + }; + FakeCentralPtr.prototype.getLastWrittenDescriptorValue = function() { + return FakeCentralProxy.prototype.getLastWrittenDescriptorValue + .apply(this.ptr.getProxy(), arguments); + }; + + FakeCentralProxy.prototype.getLastWrittenDescriptorValue = function(descriptorId, characteristicId, serviceId, peripheralAddress) { + var params = new FakeCentral_GetLastWrittenDescriptorValue_Params(); + params.descriptorId = descriptorId; + params.characteristicId = characteristicId; + params.serviceId = serviceId; + params.peripheralAddress = peripheralAddress; + return new Promise(function(resolve, reject) { + var builder = new codec.MessageV1Builder( + kFakeCentral_GetLastWrittenDescriptorValue_Name, + codec.align(FakeCentral_GetLastWrittenDescriptorValue_Params.encodedSize), + codec.kMessageExpectsResponse, 0); + builder.encodeStruct(FakeCentral_GetLastWrittenDescriptorValue_Params, params); + var message = builder.finish(); + this.receiver_.acceptAndExpectResponse(message).then(function(message) { + var reader = new codec.MessageReader(message); + var responseParams = + reader.decodeStruct(FakeCentral_GetLastWrittenDescriptorValue_ResponseParams); + resolve(responseParams); + }).catch(function(result) { + reject(Error("Connection error: " + result)); + }); + }.bind(this)); + }; function FakeCentralStub(delegate) { this.delegate_ = delegate; @@ -3802,6 +4362,9 @@ FakeCentralStub.prototype.addFakeDescriptor = function(descriptorUuid, characteristicId, serviceId, peripheralAddress) { return this.delegate_ && this.delegate_.addFakeDescriptor && this.delegate_.addFakeDescriptor(descriptorUuid, characteristicId, serviceId, peripheralAddress); } + FakeCentralStub.prototype.removeFakeDescriptor = function(descriptorId, characteristicId, serviceId, peripheralAddress) { + return this.delegate_ && this.delegate_.removeFakeDescriptor && this.delegate_.removeFakeDescriptor(descriptorId, characteristicId, serviceId, peripheralAddress); + } FakeCentralStub.prototype.setNextReadCharacteristicResponse = function(gattCode, value, characteristicId, serviceId, peripheralAddress) { return this.delegate_ && this.delegate_.setNextReadCharacteristicResponse && this.delegate_.setNextReadCharacteristicResponse(gattCode, value, characteristicId, serviceId, peripheralAddress); } @@ -3811,12 +4374,18 @@ FakeCentralStub.prototype.setNextSubscribeToNotificationsResponse = function(gattCode, characteristicId, serviceId, peripheralAddress) { return this.delegate_ && this.delegate_.setNextSubscribeToNotificationsResponse && this.delegate_.setNextSubscribeToNotificationsResponse(gattCode, characteristicId, serviceId, peripheralAddress); } - FakeCentralStub.prototype.getLastWrittenValue = function(characteristicId, serviceId, peripheralAddress) { - return this.delegate_ && this.delegate_.getLastWrittenValue && this.delegate_.getLastWrittenValue(characteristicId, serviceId, peripheralAddress); + FakeCentralStub.prototype.getLastWrittenCharacteristicValue = function(characteristicId, serviceId, peripheralAddress) { + return this.delegate_ && this.delegate_.getLastWrittenCharacteristicValue && this.delegate_.getLastWrittenCharacteristicValue(characteristicId, serviceId, peripheralAddress); } FakeCentralStub.prototype.setNextReadDescriptorResponse = function(gattCode, value, descriptorId, characteristicId, serviceId, peripheralAddress) { return this.delegate_ && this.delegate_.setNextReadDescriptorResponse && this.delegate_.setNextReadDescriptorResponse(gattCode, value, descriptorId, characteristicId, serviceId, peripheralAddress); } + FakeCentralStub.prototype.setNextWriteDescriptorResponse = function(gattCode, descriptorId, characteristicId, serviceId, peripheralAddress) { + return this.delegate_ && this.delegate_.setNextWriteDescriptorResponse && this.delegate_.setNextWriteDescriptorResponse(gattCode, descriptorId, characteristicId, serviceId, peripheralAddress); + } + FakeCentralStub.prototype.getLastWrittenDescriptorValue = function(descriptorId, characteristicId, serviceId, peripheralAddress) { + return this.delegate_ && this.delegate_.getLastWrittenDescriptorValue && this.delegate_.getLastWrittenDescriptorValue(descriptorId, characteristicId, serviceId, peripheralAddress); + } FakeCentralStub.prototype.accept = function(message) { var reader = new codec.MessageReader(message); @@ -4004,6 +4573,22 @@ responder.accept(message); }); return true; + case kFakeCentral_RemoveFakeDescriptor_Name: + var params = reader.decodeStruct(FakeCentral_RemoveFakeDescriptor_Params); + this.removeFakeDescriptor(params.descriptorId, params.characteristicId, params.serviceId, params.peripheralAddress).then(function(response) { + var responseParams = + new FakeCentral_RemoveFakeDescriptor_ResponseParams(); + responseParams.success = response.success; + var builder = new codec.MessageV1Builder( + kFakeCentral_RemoveFakeDescriptor_Name, + codec.align(FakeCentral_RemoveFakeDescriptor_ResponseParams.encodedSize), + codec.kMessageIsResponse, reader.requestID); + builder.encodeStruct(FakeCentral_RemoveFakeDescriptor_ResponseParams, + responseParams); + var message = builder.finish(); + responder.accept(message); + }); + return true; case kFakeCentral_SetNextReadCharacteristicResponse_Name: var params = reader.decodeStruct(FakeCentral_SetNextReadCharacteristicResponse_Params); this.setNextReadCharacteristicResponse(params.gattCode, params.value, params.characteristicId, params.serviceId, params.peripheralAddress).then(function(response) { @@ -4052,18 +4637,18 @@ responder.accept(message); }); return true; - case kFakeCentral_GetLastWrittenValue_Name: - var params = reader.decodeStruct(FakeCentral_GetLastWrittenValue_Params); - this.getLastWrittenValue(params.characteristicId, params.serviceId, params.peripheralAddress).then(function(response) { + case kFakeCentral_GetLastWrittenCharacteristicValue_Name: + var params = reader.decodeStruct(FakeCentral_GetLastWrittenCharacteristicValue_Params); + this.getLastWrittenCharacteristicValue(params.characteristicId, params.serviceId, params.peripheralAddress).then(function(response) { var responseParams = - new FakeCentral_GetLastWrittenValue_ResponseParams(); + new FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams(); responseParams.success = response.success; responseParams.value = response.value; var builder = new codec.MessageV1Builder( - kFakeCentral_GetLastWrittenValue_Name, - codec.align(FakeCentral_GetLastWrittenValue_ResponseParams.encodedSize), + kFakeCentral_GetLastWrittenCharacteristicValue_Name, + codec.align(FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams.encodedSize), codec.kMessageIsResponse, reader.requestID); - builder.encodeStruct(FakeCentral_GetLastWrittenValue_ResponseParams, + builder.encodeStruct(FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams, responseParams); var message = builder.finish(); responder.accept(message); @@ -4085,6 +4670,39 @@ responder.accept(message); }); return true; + case kFakeCentral_SetNextWriteDescriptorResponse_Name: + var params = reader.decodeStruct(FakeCentral_SetNextWriteDescriptorResponse_Params); + this.setNextWriteDescriptorResponse(params.gattCode, params.descriptorId, params.characteristicId, params.serviceId, params.peripheralAddress).then(function(response) { + var responseParams = + new FakeCentral_SetNextWriteDescriptorResponse_ResponseParams(); + responseParams.success = response.success; + var builder = new codec.MessageV1Builder( + kFakeCentral_SetNextWriteDescriptorResponse_Name, + codec.align(FakeCentral_SetNextWriteDescriptorResponse_ResponseParams.encodedSize), + codec.kMessageIsResponse, reader.requestID); + builder.encodeStruct(FakeCentral_SetNextWriteDescriptorResponse_ResponseParams, + responseParams); + var message = builder.finish(); + responder.accept(message); + }); + return true; + case kFakeCentral_GetLastWrittenDescriptorValue_Name: + var params = reader.decodeStruct(FakeCentral_GetLastWrittenDescriptorValue_Params); + this.getLastWrittenDescriptorValue(params.descriptorId, params.characteristicId, params.serviceId, params.peripheralAddress).then(function(response) { + var responseParams = + new FakeCentral_GetLastWrittenDescriptorValue_ResponseParams(); + responseParams.success = response.success; + responseParams.value = response.value; + var builder = new codec.MessageV1Builder( + kFakeCentral_GetLastWrittenDescriptorValue_Name, + codec.align(FakeCentral_GetLastWrittenDescriptorValue_ResponseParams.encodedSize), + codec.kMessageIsResponse, reader.requestID); + builder.encodeStruct(FakeCentral_GetLastWrittenDescriptorValue_ResponseParams, + responseParams); + var message = builder.finish(); + responder.accept(message); + }); + return true; default: return false; } @@ -4138,6 +4756,10 @@ if (message.expectsResponse()) paramsClass = FakeCentral_AddFakeDescriptor_Params; break; + case kFakeCentral_RemoveFakeDescriptor_Name: + if (message.expectsResponse()) + paramsClass = FakeCentral_RemoveFakeDescriptor_Params; + break; case kFakeCentral_SetNextReadCharacteristicResponse_Name: if (message.expectsResponse()) paramsClass = FakeCentral_SetNextReadCharacteristicResponse_Params; @@ -4150,14 +4772,22 @@ if (message.expectsResponse()) paramsClass = FakeCentral_SetNextSubscribeToNotificationsResponse_Params; break; - case kFakeCentral_GetLastWrittenValue_Name: + case kFakeCentral_GetLastWrittenCharacteristicValue_Name: if (message.expectsResponse()) - paramsClass = FakeCentral_GetLastWrittenValue_Params; + paramsClass = FakeCentral_GetLastWrittenCharacteristicValue_Params; break; case kFakeCentral_SetNextReadDescriptorResponse_Name: if (message.expectsResponse()) paramsClass = FakeCentral_SetNextReadDescriptorResponse_Params; break; + case kFakeCentral_SetNextWriteDescriptorResponse_Name: + if (message.expectsResponse()) + paramsClass = FakeCentral_SetNextWriteDescriptorResponse_Params; + break; + case kFakeCentral_GetLastWrittenDescriptorValue_Name: + if (message.expectsResponse()) + paramsClass = FakeCentral_GetLastWrittenDescriptorValue_Params; + break; } if (paramsClass === null) return validator.validationError.NONE; @@ -4212,6 +4842,10 @@ if (message.isResponse()) paramsClass = FakeCentral_AddFakeDescriptor_ResponseParams; break; + case kFakeCentral_RemoveFakeDescriptor_Name: + if (message.isResponse()) + paramsClass = FakeCentral_RemoveFakeDescriptor_ResponseParams; + break; case kFakeCentral_SetNextReadCharacteristicResponse_Name: if (message.isResponse()) paramsClass = FakeCentral_SetNextReadCharacteristicResponse_ResponseParams; @@ -4224,14 +4858,22 @@ if (message.isResponse()) paramsClass = FakeCentral_SetNextSubscribeToNotificationsResponse_ResponseParams; break; - case kFakeCentral_GetLastWrittenValue_Name: + case kFakeCentral_GetLastWrittenCharacteristicValue_Name: if (message.isResponse()) - paramsClass = FakeCentral_GetLastWrittenValue_ResponseParams; + paramsClass = FakeCentral_GetLastWrittenCharacteristicValue_ResponseParams; break; case kFakeCentral_SetNextReadDescriptorResponse_Name: if (message.isResponse()) paramsClass = FakeCentral_SetNextReadDescriptorResponse_ResponseParams; break; + case kFakeCentral_SetNextWriteDescriptorResponse_Name: + if (message.isResponse()) + paramsClass = FakeCentral_SetNextWriteDescriptorResponse_ResponseParams; + break; + case kFakeCentral_GetLastWrittenDescriptorValue_Name: + if (message.isResponse()) + paramsClass = FakeCentral_GetLastWrittenDescriptorValue_ResponseParams; + break; } if (paramsClass === null) return validator.validationError.NONE; diff --git a/tests/wpt/web-platform-tests/resources/chromium/web-bluetooth-test.js b/tests/wpt/web-platform-tests/resources/chromium/web-bluetooth-test.js index c10685f376c..e08c8c4afa2 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/web-bluetooth-test.js +++ b/tests/wpt/web-platform-tests/resources/chromium/web-bluetooth-test.js @@ -377,7 +377,7 @@ class FakeRemoteGATTCharacteristic { await this.fake_central_ptr_.setNextWriteCharacteristicResponse( gatt_code, ...this.ids_); - if (!success) throw 'setNextWriteResponse failed'; + if (!success) throw 'setNextWriteCharacteristicResponse failed'; } // Sets the next subscribe to notifications response for characteristic with @@ -397,9 +397,10 @@ class FakeRemoteGATTCharacteristic { // Returns null if no value has yet been written to the characteristic. async getLastWrittenValue() { let {success, value} = - await this.fake_central_ptr_.getLastWrittenValue(...this.ids_); + await this.fake_central_ptr_.getLastWrittenCharacteristicValue( + ...this.ids_); - if (!success) throw 'getLastWrittenValue failed'; + if (!success) throw 'getLastWrittenCharacteristicValue failed'; return value; } @@ -444,6 +445,39 @@ class FakeRemoteGATTDescriptor { if (!success) throw 'setNextReadDescriptorResponse failed'; } + + // Sets the next write response for this descriptor to |code|. + // |code| could be a GATT Error Response from + // BT 4.2 Vol 3 Part F 3.4.1.1 Error Response or a number outside that range + // returned by specific platforms e.g. Android returns 0x101 to signal a GATT + // failure. + async setNextWriteResponse(gatt_code) { + let {success} = + await this.fake_central_ptr_.setNextWriteDescriptorResponse( + gatt_code, ...this.ids_); + + if (!success) throw 'setNextWriteDescriptorResponse failed'; + } + + // Gets the last successfully written value to the descriptor. + // Returns null if no value has yet been written to the descriptor. + async getLastWrittenValue() { + let {success, value} = + await this.fake_central_ptr_.getLastWrittenDescriptorValue( + ...this.ids_); + + if (!success) throw 'getLastWrittenDescriptorValue failed'; + + return value; + } + + // Removes the fake GATT Descriptor from its fake characteristic. + async remove() { + let {success} = + await this.fake_central_ptr_.removeFakeDescriptor(...this.ids_); + + if (!success) throw 'remove failed'; + } } // FakeChooser allows clients to simulate events that a user would trigger when diff --git a/tests/wpt/web-platform-tests/resources/idlharness.js b/tests/wpt/web-platform-tests/resources/idlharness.js index af17cee66a6..fee33fd15a9 100644 --- a/tests/wpt/web-platform-tests/resources/idlharness.js +++ b/tests/wpt/web-platform-tests/resources/idlharness.js @@ -177,7 +177,7 @@ IdlArray.prototype.add_idls = function(raw_idls, options) }; //@} -IdlArray.prototype.add_untested_idls = function(raw_idls) +IdlArray.prototype.add_untested_idls = function(raw_idls, options) //@{ { /** Entry point. See documentation at beginning of file. */ @@ -193,7 +193,7 @@ IdlArray.prototype.add_untested_idls = function(raw_idls) } } } - this.internal_add_idls(parsed_idls); + this.internal_add_idls(parsed_idls, options); }; //@} @@ -274,14 +274,14 @@ IdlArray.prototype.internal_add_idls = function(parsed_idls, options) } parsed_idl.array = this; - if (parsed_idl.name in this.members) - { - throw "Duplicate identifier " + parsed_idl.name; - } if (should_skip(parsed_idl.name)) { return; } + if (parsed_idl.name in this.members) + { + throw "Duplicate identifier " + parsed_idl.name; + } switch(parsed_idl.type) { case "interface": @@ -2069,6 +2069,7 @@ IdlInterface.prototype.add_iterable_members = function(member) }; IdlInterface.prototype.test_to_json_operation = function(memberHolderObject, member) { + var instanceName = memberHolderObject.constructor.name; if (member.has_extended_attribute("Default")) { var map = this.default_to_json_operation(); test(function() { @@ -2082,12 +2083,12 @@ IdlInterface.prototype.test_to_json_operation = function(memberHolderObject, mem this.array.assert_type_is(json[k], type); delete json[k]; }, this); - }.bind(this), "Test default toJSON operation of " + this.name); + }.bind(this), "Test default toJSON operation of " + instanceName); } else { test(function() { - assert_true(this.array.is_json_type(member.idlType), JSON.stringify(member.idlType) + " is not an appropriate return value for the toJSON operation of " + this.name); + assert_true(this.array.is_json_type(member.idlType), JSON.stringify(member.idlType) + " is not an appropriate return value for the toJSON operation of " + instanceName); this.array.assert_type_is(memberHolderObject.toJSON(), member.idlType); - }.bind(this), "Test toJSON operation of " + this.name); + }.bind(this), "Test toJSON operation of " + instanceName); } }; diff --git a/tests/wpt/web-platform-tests/resources/test/conftest.py b/tests/wpt/web-platform-tests/resources/test/conftest.py index 047ca1caed2..4688421af23 100644 --- a/tests/wpt/web-platform-tests/resources/test/conftest.py +++ b/tests/wpt/web-platform-tests/resources/test/conftest.py @@ -24,8 +24,8 @@ def pytest_configure(config): config.driver = webdriver.Firefox(firefox_binary=config.getoption("--binary")) config.server = WPTServer(WPT_ROOT) config.server.start() - config.add_cleanup(lambda: config.server.stop()) - config.add_cleanup(lambda: config.driver.quit()) + config.add_cleanup(config.server.stop) + config.add_cleanup(config.driver.quit) class HTMLItem(pytest.Item, pytest.Collector): def __init__(self, filename, parent): diff --git a/tests/wpt/web-platform-tests/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html b/tests/wpt/web-platform-tests/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html index c758d5bd327..d9c3fcf611c 100644 --- a/tests/wpt/web-platform-tests/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html +++ b/tests/wpt/web-platform-tests/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html @@ -12,7 +12,7 @@ + + + + diff --git a/tests/wpt/web-platform-tests/tools/.gitignore b/tests/wpt/web-platform-tests/tools/.gitignore index 034e3ccb760..f888ce9935a 100644 --- a/tests/wpt/web-platform-tests/tools/.gitignore +++ b/tests/wpt/web-platform-tests/tools/.gitignore @@ -3,7 +3,6 @@ .coverage.* htmlcov/ coverage.xml -.tox/ .cache/ .hypothesis/ *.py[co] diff --git a/tests/wpt/web-platform-tests/tools/gitignore/gitignore.py b/tests/wpt/web-platform-tests/tools/gitignore/gitignore.py index 629ed6b412e..0be6f8f4c9c 100644 --- a/tests/wpt/web-platform-tests/tools/gitignore/gitignore.py +++ b/tests/wpt/web-platform-tests/tools/gitignore/gitignore.py @@ -17,6 +17,12 @@ def fnmatch_translate(pat, path_name=False): else: any_char = "." parts.append("^(?:.*/)?") + if pat[-1] == "/": + # If the last character is / match this directory or any subdirectory + pat = pat[:-1] + suffix = "(?:/|$)" + else: + suffix = "$" while i < len(pat): c = pat[i] if c == "\\": @@ -63,7 +69,7 @@ def fnmatch_translate(pat, path_name=False): if seq: raise ValueError - parts.append("$") + parts.append(suffix) try: return re.compile("".join(parts)) except Exception: @@ -84,7 +90,7 @@ def parse_line(line): if dir_only: line = line[:-1] - return invert, dir_only, fnmatch_translate(line, "/" in line) + return invert, dir_only, fnmatch_translate(line, dir_only) class PathFilter(object): diff --git a/tests/wpt/web-platform-tests/tools/gitignore/tests/test_gitignore.py b/tests/wpt/web-platform-tests/tools/gitignore/tests/test_gitignore.py index 44f3353e941..75a0d58b2c6 100644 --- a/tests/wpt/web-platform-tests/tools/gitignore/tests/test_gitignore.py +++ b/tests/wpt/web-platform-tests/tools/gitignore/tests/test_gitignore.py @@ -11,7 +11,8 @@ match_data = [ ("/*.c", False, ["a.c", ".c"]), ("**/b", False, ["a/b", "a/c/b"]), ("*b", True, ["ab"]), - ("**/b", True, ["a/b"]) + ("**/b", True, ["a/b"]), + ("a/", True, ["a", "a/b", "a/b/c"]) ] mismatch_data = [ @@ -23,6 +24,7 @@ mismatch_data = [ ("**b", True, ["a/b"]), ("a[/]b", True, ["a/b"]), ("**/b", True, ["a/c/b"]), + ("a", True, ["ab"]) ] invalid_data = [ @@ -40,21 +42,25 @@ filter_data = [ ("c/b", True) ] + def expand_data(compact_data): for pattern, path_name, inputs in compact_data: for input in inputs: yield pattern, input, path_name + @pytest.mark.parametrize("pattern, input, path_name", expand_data(match_data)) def tests_match(pattern, input, path_name): regexp = fnmatch_translate(pattern, path_name) assert regexp.match(input) is not None + @pytest.mark.parametrize("pattern, input, path_name", expand_data(mismatch_data)) def tests_no_match(pattern, input, path_name): regexp = fnmatch_translate(pattern, path_name) assert regexp.match(input) is None + @pytest.mark.parametrize("pattern", invalid_data) def tests_invalid(pattern): with pytest.raises(ValueError): @@ -62,6 +68,7 @@ def tests_invalid(pattern): with pytest.raises(ValueError): fnmatch_translate(pattern, True) + @pytest.mark.parametrize("path, expected", filter_data) def test_path_filter(path, expected): extras = [ diff --git a/tests/wpt/web-platform-tests/tools/lint/lint.py b/tests/wpt/web-platform-tests/tools/lint/lint.py index 7eb3d4ac7ec..8c53d2132f5 100644 --- a/tests/wpt/web-platform-tests/tools/lint/lint.py +++ b/tests/wpt/web-platform-tests/tools/lint/lint.py @@ -60,7 +60,7 @@ you could add the following line to the lint.whitelist file. %s: %s""" def all_filesystem_paths(repo_root, subdir=None): - path_filter = PathFilter(repo_root, extras=[".git/*"]) + path_filter = PathFilter(repo_root, extras=[".git/"]) if subdir: expanded_path = subdir else: @@ -72,8 +72,7 @@ def all_filesystem_paths(repo_root, subdir=None): yield path dirnames[:] = [item for item in dirnames if path_filter(os.path.relpath(os.path.join(dirpath, item) + "/", - repo_root))] - + repo_root)+"/")] def _all_files_equal(paths): """ diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/idlharness.html b/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/idlharness.html index 20fca1361e7..0b737a5882e 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/idlharness.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/Animation/idlharness.html @@ -7,43 +7,22 @@

- diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.html b/tests/wpt/web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.html index 0c3517387cd..9570c0f0dbf 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/AnimationPlaybackEvent/idlharness.html @@ -8,39 +8,32 @@
- diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.html b/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.html index 696f4f79385..6b22c91780e 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentTimeline/idlharness.html @@ -7,30 +7,24 @@
- - diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.html b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.html index 0340a19d31c..00cdd998cfa 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness.html @@ -10,14 +10,6 @@
- diff --git a/tests/wpt/web-platform-tests/webaudio/idlharness.https.html b/tests/wpt/web-platform-tests/webaudio/idlharness.https.html index a8be8d0ea53..9e15e4798de 100644 --- a/tests/wpt/web-platform-tests/webaudio/idlharness.https.html +++ b/tests/wpt/web-platform-tests/webaudio/idlharness.https.html @@ -25,12 +25,15 @@ promise_test(async t => { const idl_array = new IdlArray(); - - idl_array.add_untested_idls('interface LinkStyle {};'); // Dependency of HTML + // Dependencies of HTML + idl_array.add_untested_idls('interface LinkStyle {};'); + idl_array.add_untested_idls('interface SVGElement {};'); idl_array.add_untested_idls(html); + idl_array.add_untested_idls(dom); idl_array.add_untested_idls(mediacapture); idl_array.add_untested_idls('interface Worklet {};'); + idl_array.add_idls(webaudio); const sample_rate = 44100; diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer.html index 5de04e916e6..76df63a8a80 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-offer.html @@ -99,11 +99,12 @@ */ promise_test(t => { const pc = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); return generateOffer({ pc, data: true }) .then(offer => promise_rejects(t, 'InvalidModificationError', - pc.setLocalDescription(offer))); + pc2.setLocalDescription(offer))); }, 'setLocalDescription() with offer not created by own createOffer() should reject with InvalidModificationError'); promise_test(t => { diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-type.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-type.html new file mode 100644 index 00000000000..b7c96b15295 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-options-type.html @@ -0,0 +1,47 @@ + +DedicatedWorker: WorkerOptions 'type' + + + diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-static-import.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-static-import.html new file mode 100644 index 00000000000..ee5de185800 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-static-import.html @@ -0,0 +1,21 @@ + +DedicatedWorker: static import + + + diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js new file mode 100644 index 00000000000..bcaf7d89c58 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/nested-static-import-worker.js @@ -0,0 +1 @@ +import './static-import-worker.js'; diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js new file mode 100644 index 00000000000..93818ccad90 --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/post-message-on-load-worker.js @@ -0,0 +1 @@ +postMessage('LOADED'); diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js new file mode 100644 index 00000000000..edb8caf34af --- /dev/null +++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-worker.js @@ -0,0 +1 @@ +import './post-message-on-load-worker.js';