diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-01-23 23:47:37 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-23 23:47:37 -0500 |
commit | 43e21dc845c7e7c930e6cdbb31b218fd80eddf2e (patch) | |
tree | 2ace4c191c6945f036a3e240f1ec02c2dd525ef7 | |
parent | 5b41c01bdc31bdc983efef8318f4aa61f0ec1224 (diff) | |
parent | bd01f2fabddc3925b959dd70f80eb3d52ef1f984 (diff) | |
download | servo-43e21dc845c7e7c930e6cdbb31b218fd80eddf2e.tar.gz servo-43e21dc845c7e7c930e6cdbb31b218fd80eddf2e.zip |
Auto merge of #22753 - servo-wpt-sync:wpt_update_23-01-2019, r=jdm
Sync WPT with upstream (23-01-2019)
Automated downstream sync of changes from upstream as of 23-01-2019.
[no-wpt-sync]
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22753)
<!-- Reviewable:end -->
125 files changed, 3871 insertions, 323 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index d2a6ecbb8b1..725a69a820d 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -46145,6 +46145,18 @@ {} ] ], + "css/CSS2/floats-clear/clear-on-child-with-margins-2.html": [ + [ + "/css/CSS2/floats-clear/clear-on-child-with-margins-2.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/floats-clear/clear-on-child-with-margins.html": [ [ "/css/CSS2/floats-clear/clear-on-child-with-margins.html", @@ -104053,6 +104065,18 @@ {} ] ], + "css/css-backgrounds/background-border-collapsed-gradient.html": [ + [ + "/css/css-backgrounds/background-border-collapsed-gradient.html", + [ + [ + "/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-backgrounds/background-clip-002.html": [ [ "/css/css-backgrounds/background-clip-002.html", @@ -104509,6 +104533,18 @@ {} ] ], + "css/css-backgrounds/background-image-table-cells-zoomed.html": [ + [ + "/css/css-backgrounds/background-image-table-cells-zoomed.html", + [ + [ + "/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-backgrounds/background-origin-002.html": [ [ "/css/css-backgrounds/background-origin-002.html", @@ -253377,6 +253413,11 @@ {} ] ], + "css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html": [ + [ + {} + ] + ], "css/css-backgrounds/reference/background-clip-002-ref.html": [ [ {} @@ -253437,6 +253478,11 @@ {} ] ], + "css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html": [ + [ + {} + ] + ], "css/css-backgrounds/reference/background-origin-002-ref.html": [ [ {} @@ -312312,6 +312358,16 @@ {} ] ], + "signed-exchange/resources/sxg-version1b2.sxg": [ + [ + {} + ] + ], + "signed-exchange/resources/sxg-version1b2.sxg.headers": [ + [ + {} + ] + ], "signed-exchange/resources/sxg/__dir__.headers": [ [ {} @@ -312327,6 +312383,16 @@ {} ] ], + "signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg": [ + [ + {} + ] + ], + "signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg": [ + [ + {} + ] + ], "signed-exchange/resources/sxg/nested-sxg.sxg": [ [ {} @@ -312362,6 +312428,16 @@ {} ] ], + "signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg": [ + [ + {} + ] + ], + "signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg": [ + [ + {} + ] + ], "signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg": [ [ {} @@ -336866,12 +336942,6 @@ {} ] ], - "compat/webkit-appearance.html": [ - [ - "/compat/webkit-appearance.html", - {} - ] - ], "compat/webkit-text-fill-color-currentColor.html": [ [ "/compat/webkit-text-fill-color-currentColor.html", @@ -347180,6 +347250,12 @@ {} ] ], + "css/css-sizing/percentage-height-in-flexbox.html": [ + [ + "/css/css-sizing/percentage-height-in-flexbox.html", + {} + ] + ], "css/css-sizing/percentage-height-replaced-content-in-auto-cb.html": [ [ "/css/css-sizing/percentage-height-replaced-content-in-auto-cb.html", @@ -348740,6 +348816,198 @@ {} ] ], + "css/css-text/parsing/hanging-punctuation-invalid.html": [ + [ + "/css/css-text/parsing/hanging-punctuation-invalid.html", + {} + ] + ], + "css/css-text/parsing/hanging-punctuation-valid.html": [ + [ + "/css/css-text/parsing/hanging-punctuation-valid.html", + {} + ] + ], + "css/css-text/parsing/hyphens-invalid.html": [ + [ + "/css/css-text/parsing/hyphens-invalid.html", + {} + ] + ], + "css/css-text/parsing/hyphens-valid.html": [ + [ + "/css/css-text/parsing/hyphens-valid.html", + {} + ] + ], + "css/css-text/parsing/letter-spacing-invalid.html": [ + [ + "/css/css-text/parsing/letter-spacing-invalid.html", + {} + ] + ], + "css/css-text/parsing/letter-spacing-valid.html": [ + [ + "/css/css-text/parsing/letter-spacing-valid.html", + {} + ] + ], + "css/css-text/parsing/line-break-invalid.html": [ + [ + "/css/css-text/parsing/line-break-invalid.html", + {} + ] + ], + "css/css-text/parsing/line-break-valid.html": [ + [ + "/css/css-text/parsing/line-break-valid.html", + {} + ] + ], + "css/css-text/parsing/overflow-wrap-invalid.html": [ + [ + "/css/css-text/parsing/overflow-wrap-invalid.html", + {} + ] + ], + "css/css-text/parsing/overflow-wrap-valid.html": [ + [ + "/css/css-text/parsing/overflow-wrap-valid.html", + {} + ] + ], + "css/css-text/parsing/tab-size-invalid.html": [ + [ + "/css/css-text/parsing/tab-size-invalid.html", + {} + ] + ], + "css/css-text/parsing/tab-size-valid.html": [ + [ + "/css/css-text/parsing/tab-size-valid.html", + {} + ] + ], + "css/css-text/parsing/text-align-all-invalid.html": [ + [ + "/css/css-text/parsing/text-align-all-invalid.html", + {} + ] + ], + "css/css-text/parsing/text-align-all-valid.html": [ + [ + "/css/css-text/parsing/text-align-all-valid.html", + {} + ] + ], + "css/css-text/parsing/text-align-invalid.html": [ + [ + "/css/css-text/parsing/text-align-invalid.html", + {} + ] + ], + "css/css-text/parsing/text-align-last-invalid.html": [ + [ + "/css/css-text/parsing/text-align-last-invalid.html", + {} + ] + ], + "css/css-text/parsing/text-align-last-valid.html": [ + [ + "/css/css-text/parsing/text-align-last-valid.html", + {} + ] + ], + "css/css-text/parsing/text-align-valid.html": [ + [ + "/css/css-text/parsing/text-align-valid.html", + {} + ] + ], + "css/css-text/parsing/text-indent-invalid.html": [ + [ + "/css/css-text/parsing/text-indent-invalid.html", + {} + ] + ], + "css/css-text/parsing/text-indent-valid.html": [ + [ + "/css/css-text/parsing/text-indent-valid.html", + {} + ] + ], + "css/css-text/parsing/text-justify-invalid.html": [ + [ + "/css/css-text/parsing/text-justify-invalid.html", + {} + ] + ], + "css/css-text/parsing/text-justify-valid.html": [ + [ + "/css/css-text/parsing/text-justify-valid.html", + {} + ] + ], + "css/css-text/parsing/text-transform-invalid.html": [ + [ + "/css/css-text/parsing/text-transform-invalid.html", + {} + ] + ], + "css/css-text/parsing/text-transform-valid.html": [ + [ + "/css/css-text/parsing/text-transform-valid.html", + {} + ] + ], + "css/css-text/parsing/white-space-invalid.html": [ + [ + "/css/css-text/parsing/white-space-invalid.html", + {} + ] + ], + "css/css-text/parsing/white-space-valid.html": [ + [ + "/css/css-text/parsing/white-space-valid.html", + {} + ] + ], + "css/css-text/parsing/word-break-invalid.html": [ + [ + "/css/css-text/parsing/word-break-invalid.html", + {} + ] + ], + "css/css-text/parsing/word-break-valid.html": [ + [ + "/css/css-text/parsing/word-break-valid.html", + {} + ] + ], + "css/css-text/parsing/word-spacing-invalid.html": [ + [ + "/css/css-text/parsing/word-spacing-invalid.html", + {} + ] + ], + "css/css-text/parsing/word-spacing-valid.html": [ + [ + "/css/css-text/parsing/word-spacing-valid.html", + {} + ] + ], + "css/css-text/parsing/word-wrap-invalid.html": [ + [ + "/css/css-text/parsing/word-wrap-invalid.html", + {} + ] + ], + "css/css-text/parsing/word-wrap-valid.html": [ + [ + "/css/css-text/parsing/word-wrap-valid.html", + {} + ] + ], "css/css-text/text-indent/percentage-value-intrinsic-size.html": [ [ "/css/css-text/text-indent/percentage-value-intrinsic-size.html", @@ -351466,6 +351734,12 @@ {} ] ], + "css/css-ui/appearance-cssom-001.html": [ + [ + "/css/css-ui/appearance-cssom-001.html", + {} + ] + ], "css/css-ui/box-sizing-027.html": [ [ "/css/css-ui/box-sizing-027.html", @@ -411470,12 +411744,24 @@ {} ] ], + "signed-exchange/sxg-referrer.tentative.https.html": [ + [ + "/signed-exchange/sxg-referrer.tentative.https.html", + {} + ] + ], "signed-exchange/sxg-utf8-inner-url.tentative.html": [ [ "/signed-exchange/sxg-utf8-inner-url.tentative.html", {} ] ], + "signed-exchange/sxg-version1b2.tentative.html": [ + [ + "/signed-exchange/sxg-version1b2.tentative.html", + {} + ] + ], "speech-api/SpeechRecognition-basics.https.html": [ [ "/speech-api/SpeechRecognition-basics.https.html", @@ -416776,21 +417062,9 @@ {} ] ], - "web-locks/query-order.tentative.https.any.js": [ - [ - "/web-locks/query-order.tentative.https.any.html", - {} - ], + "web-locks/query-ordering.tentative.https.html": [ [ - "/web-locks/query-order.tentative.https.any.serviceworker.html", - {} - ], - [ - "/web-locks/query-order.tentative.https.any.sharedworker.html", - {} - ], - [ - "/web-locks/query-order.tentative.https.any.worker.html", + "/web-locks/query-ordering.tentative.https.html", {} ] ], @@ -446588,7 +446862,7 @@ }, "paths": { ".azure-pipelines.yml": [ - "773ff6cc5f9f42a0585b6db38a53d0bb1cc6297e", + "387c55a5ec45ef3c27b2d5cd5f057f3067457aed", "support" ], ".codecov.yml": [ @@ -458027,10 +458301,6 @@ "91793af71e741ef6546d1eca37e93338ab2779f7", "testharness" ], - "compat/webkit-appearance.html": [ - "210944522a9a7dd6797d8b01f33c76e19b0b320b", - "testharness" - ], "compat/webkit-background-origin-text-ref.html": [ "d1f183874c09d7984d461e577151008e5b363b2c", "support" @@ -498719,6 +498989,10 @@ "db819b548bee017ea39115099bc2358683bcf5f6", "reftest" ], + "css/CSS2/floats-clear/clear-on-child-with-margins-2.html": [ + "594fee03f48859fb15ece07cb82293297ca1d87d", + "reftest" + ], "css/CSS2/floats-clear/clear-on-child-with-margins.html": [ "f65f314a2f8aa285a001ae8c4751bc9ceb6e1115", "reftest" @@ -541691,6 +541965,10 @@ "b1d23371e3e5ef66de8d2bf3ef78fa4d3ce83803", "support" ], + "css/css-backgrounds/background-border-collapsed-gradient.html": [ + "73b097cf9a84733126237ea9ef0534b4850536bd", + "reftest" + ], "css/css-backgrounds/background-clip-001.html": [ "9c677e547ff0311519e5ab29f1cccee93c33a9e4", "testharness" @@ -541939,6 +542217,10 @@ "3f39fb8d850d7561703f791135ea7dd4b3aa9fe8", "reftest" ], + "css/css-backgrounds/background-image-table-cells-zoomed.html": [ + "4683e5b4b65b76f4e0f542d8a284bc4d160c566d", + "reftest" + ], "css/css-backgrounds/background-origin-001.html": [ "a951bdd370a0127270a873b3c9fb8f26755216cf", "testharness" @@ -544479,6 +544761,10 @@ "2b568109db28719bc2973d350874f0685a630185", "support" ], + "css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html": [ + "6e09d46cbc5078181661663eb13fbb371b7ac007", + "support" + ], "css/css-backgrounds/reference/background-clip-002-ref.html": [ "a03d6e202091f4ea0d1a62948b60e4e12ef2ccef", "support" @@ -544527,6 +544813,10 @@ "7bad169e3aa61b072efa73bb3327857ecd2dcc23", "support" ], + "css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html": [ + "6f4261ecf45443c0d1d38f4599f2946492a570bb", + "support" + ], "css/css-backgrounds/reference/background-origin-002-ref.html": [ "88d61225a623d112e5f54505899a21dd4d929a5b", "support" @@ -572591,6 +572881,10 @@ "fa95069dbf0083b0dc7095d2bb3acf20a6ccf898", "reftest" ], + "css/css-sizing/percentage-height-in-flexbox.html": [ + "f5d9d528a15b4ed445808ebd74de2c3814cb5ee1", + "testharness" + ], "css/css-sizing/percentage-height-replaced-content-in-auto-cb.html": [ "c63c490c370cc2dfe9ffe041229869d67775ac5a", "testharness" @@ -576539,6 +576833,134 @@ "74e8aa2312416f165550b08ab7351ec18ca956f1", "testharness" ], + "css/css-text/parsing/hanging-punctuation-invalid.html": [ + "50ed22f1b745bb334b75533692851e63aba0a541", + "testharness" + ], + "css/css-text/parsing/hanging-punctuation-valid.html": [ + "3523a791b847b1b0bad9e655afc0ecafe5d860cf", + "testharness" + ], + "css/css-text/parsing/hyphens-invalid.html": [ + "521600f7138b1a0c97b14d80a6cdb9a144aad7db", + "testharness" + ], + "css/css-text/parsing/hyphens-valid.html": [ + "0ad72094c705ed5daffc0058014d0aa1b7d79623", + "testharness" + ], + "css/css-text/parsing/letter-spacing-invalid.html": [ + "e9ad4e56a5bb71188535bdbf4fee96e8918c4dcc", + "testharness" + ], + "css/css-text/parsing/letter-spacing-valid.html": [ + "740d1fc39884de8adcf0b29aacd34ff6c4ff2cb3", + "testharness" + ], + "css/css-text/parsing/line-break-invalid.html": [ + "aca16649360766eed8a2b91d1692890cd03a5e4b", + "testharness" + ], + "css/css-text/parsing/line-break-valid.html": [ + "caaae9a5a0150a35563662a8c917046fb08e79fb", + "testharness" + ], + "css/css-text/parsing/overflow-wrap-invalid.html": [ + "1a467d5f1882fe1d5ede656bd91008499b49367a", + "testharness" + ], + "css/css-text/parsing/overflow-wrap-valid.html": [ + "8ab907c570288a397249fb7b14cc795049283227", + "testharness" + ], + "css/css-text/parsing/tab-size-invalid.html": [ + "c95c0462f23683d339519fb737a5b245e2b7ff6e", + "testharness" + ], + "css/css-text/parsing/tab-size-valid.html": [ + "ced5a3660985f1594b6bec353746f95c3ecaed0e", + "testharness" + ], + "css/css-text/parsing/text-align-all-invalid.html": [ + "70cbadf588bd5c22ab1297055039d496cdef2d72", + "testharness" + ], + "css/css-text/parsing/text-align-all-valid.html": [ + "f65b15afde028fc9c6a34376817b68b449ccd00c", + "testharness" + ], + "css/css-text/parsing/text-align-invalid.html": [ + "38a56d914cdaa3a5f17b12717b992ab056de4391", + "testharness" + ], + "css/css-text/parsing/text-align-last-invalid.html": [ + "c16e9a6c13365408c7f6049bdc687e11f23a7319", + "testharness" + ], + "css/css-text/parsing/text-align-last-valid.html": [ + "c64e7d8a39e0eaee49e456b56bcb44e14216030c", + "testharness" + ], + "css/css-text/parsing/text-align-valid.html": [ + "e67f4f6f1679baa83d5fd034acafb6b353eb755d", + "testharness" + ], + "css/css-text/parsing/text-indent-invalid.html": [ + "9b5d7754b101051c4cf94f5113354b16ef4b93f9", + "testharness" + ], + "css/css-text/parsing/text-indent-valid.html": [ + "9433ba3d9d353260fc468d66da07dc36d762f1cf", + "testharness" + ], + "css/css-text/parsing/text-justify-invalid.html": [ + "a009ef08eb535ccbfbdf48438beaa0d9c05997ae", + "testharness" + ], + "css/css-text/parsing/text-justify-valid.html": [ + "0991409da15f4e7c0491218f6c889eb27d4cfcca", + "testharness" + ], + "css/css-text/parsing/text-transform-invalid.html": [ + "41482ab5f2c53da2c45bc1bc732ab143a67c05fd", + "testharness" + ], + "css/css-text/parsing/text-transform-valid.html": [ + "a40166c37ef69074b00de8662fe250dbd7877693", + "testharness" + ], + "css/css-text/parsing/white-space-invalid.html": [ + "12c34fb5378308c564b3d01b493cbad5ff75138c", + "testharness" + ], + "css/css-text/parsing/white-space-valid.html": [ + "d872c0b6fbc3324836e7565d1b623e64032db1ab", + "testharness" + ], + "css/css-text/parsing/word-break-invalid.html": [ + "6d544de8bfa2084213ecd46d5cf189a0fc4966b2", + "testharness" + ], + "css/css-text/parsing/word-break-valid.html": [ + "9cd917b488a0e1f62103ced9e886d9584b134f4b", + "testharness" + ], + "css/css-text/parsing/word-spacing-invalid.html": [ + "3a1c4ca487c43256e2bb04dfae89f623be95783d", + "testharness" + ], + "css/css-text/parsing/word-spacing-valid.html": [ + "217b2488f53128b8475ce4a3f4ca2aa84570b743", + "testharness" + ], + "css/css-text/parsing/word-wrap-invalid.html": [ + "40890775ca563101f4ebcb4d46ecd439bececb61", + "testharness" + ], + "css/css-text/parsing/word-wrap-valid.html": [ + "ce5731551aec95f08df44f15ea6491045d14b235", + "testharness" + ], "css/css-text/support/1x1-green.png": [ "b98ca0ba0a03c580ac339e4a3653539cfa8edc71", "support" @@ -586419,6 +586841,10 @@ "e78564bcc0d50add555e6767a596662e3c303c6e", "support" ], + "css/css-ui/appearance-cssom-001.html": [ + "2d439ba615f30f348128a3d94c6ea6563993e09b", + "testharness" + ], "css/css-ui/box-sizing-001.html": [ "545403f535d2f33993558bde9086e8798c04c11f", "reftest" @@ -650840,7 +651266,7 @@ "testharness" ], "payment-request/MerchantValidationEvent/constructor.https.html": [ - "ec8a4ff1ed0925a354f2631d8459337e47ab079d", + "2978226f3cc31cc7433d3fb94927a04eb5b83f0d", "testharness" ], "payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html": [ @@ -650860,31 +651286,31 @@ "testharness" ], "payment-request/PaymentRequestUpdateEvent/constructor.https.html": [ - "fd66493bf4f2aa006e99198094d1b7afd34f4543", + "e8df7b35a94280a6c71d7d8ac6f1452904535df2", "testharness" ], "payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html": [ - "cd928d4be1d8609a34d06e0a960306fc95b84e32", + "28dfe1e448baea444698f38a20c70ff38e9d312a", "manual" ], "payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html": [ - "40ba3057e0cb10412df759516ee19392ae70f1c3", + "fbf97d855ab82d8ee661f3deed9f1198698362ad", "manual" ], "payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html": [ - "3d1bfb41b84d6b0ecc2d4bde25eab2dead465e34", + "c1ed1b5f6850c7f26566ffb6e98b06ea51739e15", "manual" ], "payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html": [ - "0ff7f23b6479695907aee3e479436b5ff13e165a", + "cf0bb289d73bf7168b93a19b81144d66349f5e95", "manual" ], "payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html": [ - "4d4ef73949dd1dd271521c5005ca4e93108ab844", + "c5737aa8c31e31f5312135d9de84f82277806c50", "manual" ], "payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html": [ - "adacdf3f06d1c1adb50a65585b64441c5e00de63", + "17a4741cdf97bd6dca6716c80a890af283f4a68a", "testharness" ], "payment-request/PaymentValidationErrors/retry-shows-error-member-manual.https.html": [ @@ -650900,7 +651326,7 @@ "manual" ], "payment-request/algorithms-manual.https.html": [ - "5494353c6bceb4ed0d388852bd7f426e5715186d", + "6744649612576cb5006b76ee34182bd00eed754e", "manual" ], "payment-request/allowpaymentrequest/active-document-cross-origin.https.sub.html": [ @@ -650952,7 +651378,7 @@ "testharness" ], "payment-request/billing-address-changed-manual.https.html": [ - "cb9acf6eb6a20df5ddd03ef734796cefb6195467", + "ccfeb6fd364c759131022c96576c9289adb0c0ee", "manual" ], "payment-request/blank.html": [ @@ -650960,11 +651386,11 @@ "support" ], "payment-request/change-shipping-option-manual.https.html": [ - "a33365bac73ed51b6873215d0f54d79a73422163", + "438001804acdaca21410ce0d367a8208cac60aff", "manual" ], "payment-request/change-shipping-option-select-last-manual.https.html": [ - "f08491150ac7ee6d69520a936eb2868d60393c57", + "4ad31d65317338f0474c24e6e35688eb8f2b4cbe", "manual" ], "payment-request/constructor_convert_method_data.https.html": [ @@ -650980,11 +651406,11 @@ "testharness" ], "payment-request/onmerchantvalidation-attribute.https.html": [ - "c0ed23167ed9378ec32e769bd4f3e3afaef5040c", + "d31ac2dd72abcf51a28ecec850400f5f0c6b9bb5", "testharness" ], "payment-request/onpaymentmenthodchange-attribute.https.html": [ - "0484eb868f983e3cdb0efceab5fe2b3c6084b4ab", + "f641bec4aa91d8be4f1801869eb699ca4bad03a0", "testharness" ], "payment-request/payment-is-showing.https.html": [ @@ -650992,19 +651418,19 @@ "testharness" ], "payment-request/payment-request-abort-method.https.html": [ - "8e561b288d15fa30971dd1f88b930671c83a5887", + "75e39a011c390fb8c3bbbeba2dbe8826ea6291e1", "testharness" ], "payment-request/payment-request-canmakepayment-method-protection.https.html": [ - "b0582d520d306760d75754779de1ceef1d064a92", + "e221034dd4ebd05c5bd701e05a81895b8457c3b7", "testharness" ], "payment-request/payment-request-canmakepayment-method.https.html": [ - "f38caa00b9313dc80f5ab5180dc10e850eb57147", + "672e5ce1571435e9f16b8010456e859f12d2c9c4", "testharness" ], "payment-request/payment-request-constructor-crash.https.html": [ - "1325681a4acf6841b67b2dd40d20cf0dcc449d8f", + "9763615bdd186d0a8a656af8a89bfdf8bbfac186", "testharness" ], "payment-request/payment-request-constructor.https.html": [ @@ -651032,11 +651458,11 @@ "testharness" ], "payment-request/payment-request-onshippingaddresschange-attribute.https.html": [ - "5c54d48568a40781df857986bcda5fc8ab08189b", + "5b2538992f76c774259f52b734bc844468fc14f7", "testharness" ], "payment-request/payment-request-onshippingoptionchange-attribute.https.html": [ - "a4d8fbc4825f8e797f9478d8bdd089e4391491a9", + "43ea5dcce87afe9dff0387891d57c3265be303f5", "testharness" ], "payment-request/payment-request-shippingAddress-attribute.https.html": [ @@ -651048,11 +651474,11 @@ "testharness" ], "payment-request/payment-request-shippingType-attribute.https.html": [ - "b1ed0d028860ea9c98dd1a61ba239db75a7e3864", + "11f75b1c862224b5655cb724d8c8f5b25ab1af00", "testharness" ], "payment-request/payment-request-show-method.https.html": [ - "c6e69d4c587602d51602aea41224731e692af2ae", + "3d362596c41c6f6ac7058e752c6c6f0e4f6b3781", "testharness" ], "payment-request/payment-response/complete-method-manual.https.html": [ @@ -651060,7 +651486,7 @@ "manual" ], "payment-request/payment-response/helpers.js": [ - "807f794e71efb35f8622eb0aa478ae6a6039c260", + "3e4f5cfd36f898c116717c1151806f966511a945", "support" ], "payment-request/payment-response/methodName-attribute-manual.https.html": [ @@ -651088,7 +651514,7 @@ "manual" ], "payment-request/payment-response/rejects_if_not_active-manual.https.html": [ - "60dd9655dd5bafcdb7768b929696cb9104214b29", + "516573c581a0a047a2f9b9a89d027568f8567c05", "manual" ], "payment-request/payment-response/requestId-attribute-manual.https.html": [ @@ -651108,7 +651534,7 @@ "manual" ], "payment-request/rejects_if_not_active.https.html": [ - "f585e836f8d30e41bd33c7a8d8760ecf64f7a80d", + "06c1f7383a045d7ffd386cb6aec57d6010843d31", "testharness" ], "payment-request/resources/page1.html": [ @@ -651120,35 +651546,35 @@ "support" ], "payment-request/shipping-address-changed-manual.https.html": [ - "07b530657c339434aa924d1dfe96814fad2dbf3b", + "711ba2743601348594efd129f74f79fd89b4432a", "manual" ], "payment-request/show-method-optional-promise-rejects-manual.https.html": [ - "5c1028eec667c8573df890d201d1f1b9136dde57", + "172413ff59811ec38c2a7b23629fe3f4afa53785", "manual" ], "payment-request/show-method-optional-promise-resolves-manual.https.html": [ - "70c97faaf7a4496982a382a415e3a85e9a17c465", + "d41b1b39c988d68f26ee419c94dd549895ccbf13", "manual" ], "payment-request/show-method-postmessage-iframe.html": [ - "12a1e0cef82886f0514cae56eb9f4e11321ab5de", + "b50f18ecce3ac62d3193a86d668f457c1e9629ab", "support" ], "payment-request/show-method-postmessage-manual.https.html": [ - "e4ab550e4189e1518a4b601aa4c9e249df4c5ecd", + "05fce4f248e8ff116065988d1d4d3d2875967ce5", "manual" ], "payment-request/updateWith-method-pmi-handling-manual.https.html": [ - "06852bf8c47cb9e720190b9b0e2f81d9e7ddd335", + "8bab88212bab51ea771a0fc2a81a1a9e7ee6e0d1", "manual" ], "payment-request/user-abort-algorithm-manual.https.html": [ - "0ba0405c52fbd5805a36d2707618dc84a7111351", + "007fb681cebb494de5fb8ed5acf6c4c82920f1fe", "manual" ], "payment-request/user-accepts-payment-request-algo-manual.https.html": [ - "abaf6cb4e8580df5c6034e8b137ae8fc343067a6", + "3d7b8a08ebb34b2517e4bef4b746762b024d56e9", "manual" ], "performance-timeline/META.yml": [ @@ -667472,19 +667898,27 @@ "support" ], "signed-exchange/resources/generate-test-sxgs.sh": [ - "b351a4296de57ada97411808cdaa7b0e4d8463da", + "7c953940cb308b669a647a4a2d5c5bbc83c60200", "support" ], "signed-exchange/resources/inner-url.html": [ - "628a18afa3f77569662dbb04017c0d0925daf30d", + "5b247bbfe99a5e502f8d775c37c5d543dfea3fe3", "support" ], "signed-exchange/resources/sxg-location.html": [ - "39a475ebd070a5fa0c87de6805759e11f76a400d", + "b3ebd2bde7acd2d1885838a37ab9cfc91c250551", "support" ], "signed-exchange/resources/sxg-util.js": [ - "b31bf98c9b1acce6428331452eefe66e06aa5dc6", + "0d0e263fd620584b64b059fef1d11f315f4c2423", + "support" + ], + "signed-exchange/resources/sxg-version1b2.sxg": [ + "092eb9d38ffecf173d353b5ac59744a5893bfa75", + "support" + ], + "signed-exchange/resources/sxg-version1b2.sxg.headers": [ + "ca41178420c5b2adf70c439435d40b6370535330", "support" ], "signed-exchange/resources/sxg/__dir__.headers": [ @@ -667492,43 +667926,59 @@ "support" ], "signed-exchange/resources/sxg/check-cert-request.sxg": [ - "d412f463822481c9ed5f6798fb3e45d4dd3fc969", + "8129b5479c3d606ae89ea6c9ece9223a13fc0f4f", "support" ], "signed-exchange/resources/sxg/fallback-to-another-sxg.sxg": [ - "784b44abde996747a36e2177cf6f77325d7102df", + "b5dcb6b86de1d58d7bbfbee4fc4ffc21ed5888e6", + "support" + ], + "signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg": [ + "db08ad072ca4bb81cd381d881d9252219af1f283", + "support" + ], + "signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg": [ + "5057e9ddf4336d7cdff80a881008db290ca6b609", "support" ], "signed-exchange/resources/sxg/nested-sxg.sxg": [ - "c4eaf771c21ae7b54181a157ad602764cd51b4f9", + "6d8538882d27c40b0ffcf0845c090844aaec87b7", "support" ], "signed-exchange/resources/sxg/sxg-hsts.sxg": [ - "68650b8c3686a33c19234d18af78375b7a9cdb07", + "8f57c63dfab73eb5d05600f7563bb0a4ae938834", "support" ], "signed-exchange/resources/sxg/sxg-inner-url-bom.sxg": [ - "88e617d5fbb61a0e5a4abc6e881188c7eb23f60b", + "0093eb1d37d0df6e9a63569bab16133ead012d52", "support" ], "signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg": [ - "d045d5b88293c093e07b281a4e4aa9d8177d7a15", + "65357e14ac671610935693d409da9c58c1fa75c7", "support" ], "signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg": [ - "628f6ccf28371c8b09166a15201f6a86482c1e51", + "62e88d638641ed4ed026319b27a53c6d04351076", "support" ], "signed-exchange/resources/sxg/sxg-location.sxg": [ - "3540bfea63c2735fc243b4ffe148980fe8a790db", + "1678b751bcba390d35687730bb24e13232e33eda", "support" ], "signed-exchange/resources/sxg/sxg-noncacheable.sxg": [ - "38aa45980ca261ad33b3bc23354dd4ae7634a70f", + "88439982f6044b3ddbd1a1e0198bebb6409b0837", + "support" + ], + "signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg": [ + "00aa755efc3cc0f3eec462c7fac553e299a7375f", + "support" + ], + "signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg": [ + "cc7793efa287b21d10c8c92dcd371a7938b31686", "support" ], "signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg": [ - "914a8458b0a7d71d1409a96a3c6d50f906504979", + "3edf285f1bd5affc5c575ca258a8cd3cfa546e35", "support" ], "signed-exchange/sxg-double-prefetch.tentative.html": [ @@ -667575,10 +668025,18 @@ "5b60ab9e1a12e2b169c4972c422ddbe3ebc5f581", "testharness" ], + "signed-exchange/sxg-referrer.tentative.https.html": [ + "3be9b1ff9b430e986dc8784a680b11659ab480fa", + "testharness" + ], "signed-exchange/sxg-utf8-inner-url.tentative.html": [ "85670a786af33c5dbfe19a018dba76847fa649cf", "testharness" ], + "signed-exchange/sxg-version1b2.tentative.html": [ + "43b340dbb79f2585ef4acc4361ee94c6f22003f0", + "testharness" + ], "speech-api/META.yml": [ "4d1b42a44d2a6a447f8a47bc079d7e28436843e0", "support" @@ -680943,8 +681401,8 @@ "88ffdb7f810d6d3e698a507da97220684ad3ecfe", "testharness" ], - "web-locks/query-order.tentative.https.any.js": [ - "3317cd02eb9a152f9a7be35b7052fcd082b752e9", + "web-locks/query-ordering.tentative.https.html": [ + "bbbee3880b7cc78db163ded436a627a798aee674", "testharness" ], "web-locks/query.tentative.https.any.js": [ @@ -680956,11 +681414,11 @@ "testharness" ], "web-locks/resources/helpers.js": [ - "d6a4af45fa7199ea3b9ff8ff863eed6c848a4043", + "9723ff4f1d8545fd73abc929d9e0a8d82303ecbf", "support" ], "web-locks/resources/iframe.html": [ - "d3799f44f96b3456c2e42a3b791c12dbe4817c5d", + "ba63c77bae50d7e61bb1c071799aa235ac1836c1", "support" ], "web-locks/resources/service-worker.js": [ @@ -680980,7 +681438,7 @@ "testharness" ], "web-locks/signal.tentative.https.any.js": [ - "5b8acbbbebc52aa5da651a28dc57a1f0222be109", + "e0b6e4eabd6138fd05784d0e52cc416d62f811d0", "testharness" ], "web-locks/steal.tentative.https.any.js": [ diff --git a/tests/wpt/metadata/css/css-text/parsing/hanging-punctuation-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/hanging-punctuation-valid.html.ini new file mode 100644 index 00000000000..3d74b5a3efa --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/hanging-punctuation-valid.html.ini @@ -0,0 +1,52 @@ +[hanging-punctuation-valid.html] + [e.style['hanging-punctuation'\] = "allow-end last first" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "force-end" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "force-end last" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "none" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "first force-end" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "allow-end" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "last first force-end" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "last first" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "first allow-end last" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "allow-end first" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "last" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "first" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "first last force-end" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "last allow-end" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "last allow-end first" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "first last" should set the property value] + expected: FAIL + + [e.style['hanging-punctuation'\] = "force-end first last" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/hyphens-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/hyphens-valid.html.ini new file mode 100644 index 00000000000..8afe7d26869 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/hyphens-valid.html.ini @@ -0,0 +1,10 @@ +[hyphens-valid.html] + [e.style['hyphens'\] = "manual" should set the property value] + expected: FAIL + + [e.style['hyphens'\] = "auto" should set the property value] + expected: FAIL + + [e.style['hyphens'\] = "none" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/line-break-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/line-break-valid.html.ini new file mode 100644 index 00000000000..6ff20f08110 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/line-break-valid.html.ini @@ -0,0 +1,16 @@ +[line-break-valid.html] + [e.style['line-break'\] = "loose" should set the property value] + expected: FAIL + + [e.style['line-break'\] = "normal" should set the property value] + expected: FAIL + + [e.style['line-break'\] = "anywhere" should set the property value] + expected: FAIL + + [e.style['line-break'\] = "auto" should set the property value] + expected: FAIL + + [e.style['line-break'\] = "strict" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/tab-size-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/tab-size-valid.html.ini new file mode 100644 index 00000000000..289b9e8e4e1 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/tab-size-valid.html.ini @@ -0,0 +1,16 @@ +[tab-size-valid.html] + [e.style['tab-size'\] = "0px" should set the property value] + expected: FAIL + + [e.style['tab-size'\] = "10px" should set the property value] + expected: FAIL + + [e.style['tab-size'\] = "0" should set the property value] + expected: FAIL + + [e.style['tab-size'\] = "calc(2em + 3ex)" should set the property value] + expected: FAIL + + [e.style['tab-size'\] = "2.5" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-align-all-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-align-all-valid.html.ini new file mode 100644 index 00000000000..e08690369fc --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/text-align-all-valid.html.ini @@ -0,0 +1,22 @@ +[text-align-all-valid.html] + [e.style['text-align-all'\] = "match-parent" should set the property value] + expected: FAIL + + [e.style['text-align-all'\] = "left" should set the property value] + expected: FAIL + + [e.style['text-align-all'\] = "center" should set the property value] + expected: FAIL + + [e.style['text-align-all'\] = "start" should set the property value] + expected: FAIL + + [e.style['text-align-all'\] = "end" should set the property value] + expected: FAIL + + [e.style['text-align-all'\] = "right" should set the property value] + expected: FAIL + + [e.style['text-align-all'\] = "justify" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-align-last-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-align-last-valid.html.ini new file mode 100644 index 00000000000..c3cc42fa761 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/text-align-last-valid.html.ini @@ -0,0 +1,25 @@ +[text-align-last-valid.html] + [e.style['text-align-last'\] = "match-parent" should set the property value] + expected: FAIL + + [e.style['text-align-last'\] = "right" should set the property value] + expected: FAIL + + [e.style['text-align-last'\] = "center" should set the property value] + expected: FAIL + + [e.style['text-align-last'\] = "auto" should set the property value] + expected: FAIL + + [e.style['text-align-last'\] = "left" should set the property value] + expected: FAIL + + [e.style['text-align-last'\] = "justify" should set the property value] + expected: FAIL + + [e.style['text-align-last'\] = "end" should set the property value] + expected: FAIL + + [e.style['text-align-last'\] = "start" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-align-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-align-valid.html.ini new file mode 100644 index 00000000000..b9a29184571 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/text-align-valid.html.ini @@ -0,0 +1,7 @@ +[text-align-valid.html] + [e.style['text-align'\] = "match-parent" should set the property value] + expected: FAIL + + [e.style['text-align'\] = "justify-all" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-indent-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-indent-valid.html.ini new file mode 100644 index 00000000000..97f8781bd76 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/text-indent-valid.html.ini @@ -0,0 +1,25 @@ +[text-indent-valid.html] + [e.style['text-indent'\] = "calc(2em + 3ex) hanging each-line" should set the property value] + expected: FAIL + + [e.style['text-indent'\] = "calc(50% + 60px) each-line hanging" should set the property value] + expected: FAIL + + [e.style['text-indent'\] = "10px hanging" should set the property value] + expected: FAIL + + [e.style['text-indent'\] = "20% each-line" should set the property value] + expected: FAIL + + [e.style['text-indent'\] = "hanging 20% each-line" should set the property value] + expected: FAIL + + [e.style['text-indent'\] = "each-line hanging calc(2em + 3ex)" should set the property value] + expected: FAIL + + [e.style['text-indent'\] = "each-line 10px" should set the property value] + expected: FAIL + + [e.style['text-indent'\] = "hanging calc(50% + 60px)" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-justify-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-justify-valid.html.ini new file mode 100644 index 00000000000..96b9e419553 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/text-justify-valid.html.ini @@ -0,0 +1,4 @@ +[text-justify-valid.html] + [e.style['text-justify'\] = "inter-character" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/text-transform-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/text-transform-valid.html.ini new file mode 100644 index 00000000000..c9e0f5c67db --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/text-transform-valid.html.ini @@ -0,0 +1,43 @@ +[text-transform-valid.html] + [e.style['text-transform'\] = "full-size-kana full-width capitalize" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-width" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "capitalize full-width" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-size-kana full-width" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "capitalize full-width full-size-kana" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-width full-size-kana" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-size-kana lowercase full-width" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-size-kana capitalize" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "lowercase full-size-kana full-width" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-width lowercase" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-size-kana" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-width full-size-kana uppercase" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "uppercase full-size-kana" should set the property value] + expected: FAIL + + [e.style['text-transform'\] = "full-width uppercase full-size-kana" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/white-space-valid.html.ini b/tests/wpt/metadata/css/css-text/parsing/white-space-valid.html.ini new file mode 100644 index 00000000000..1ad73fcbb72 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/white-space-valid.html.ini @@ -0,0 +1,4 @@ +[white-space-valid.html] + [e.style['white-space'\] = "break-spaces" should set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/parsing/word-spacing-invalid.html.ini b/tests/wpt/metadata/css/css-text/parsing/word-spacing-invalid.html.ini new file mode 100644 index 00000000000..ff76e8dbd13 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/parsing/word-spacing-invalid.html.ini @@ -0,0 +1,4 @@ +[word-spacing-invalid.html] + [e.style['word-spacing'\] = "20%" should not set the property value] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/appearance-cssom-001.html.ini b/tests/wpt/metadata/css/css-ui/appearance-cssom-001.html.ini new file mode 100644 index 00000000000..5a23a5ee85d --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/appearance-cssom-001.html.ini @@ -0,0 +1,985 @@ +[appearance-cssom-001.html] + [appearance: menulist-button] + expected: FAIL + + [appearance: continuous-capacity-level-indicator (invalid)] + expected: FAIL + + [appearance: toolbarbutton-dropdown (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-window-frame-bottom (invalid)] + expected: FAIL + + [appearance: statusbar (invalid)] + expected: FAIL + + [-webkit-appearance: menuseparator (invalid)] + expected: FAIL + + [appearance: button-arrow-next (invalid)] + expected: FAIL + + [appearance: meterchunk (invalid)] + expected: FAIL + + [appearance: resizerpanel (invalid)] + expected: FAIL + + [-webkit-appearance: media-volume-slider-container (invalid)] + expected: FAIL + + [-webkit-appearance: attachment (invalid)] + expected: FAIL + + [appearance: media-volume-slider (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-win-borderless-glass (invalid)] + expected: FAIL + + [appearance: scrollbarbutton-left (invalid)] + expected: FAIL + + [appearance: scale-vertical (invalid)] + expected: FAIL + + [-webkit-appearance: media-exit-fullscreen-button (invalid)] + expected: FAIL + + [-webkit-appearance: sliderthumb-horizontal (invalid)] + expected: FAIL + + [-webkit-appearance: menulist-text] + expected: FAIL + + [-webkit-appearance: button-arrow-previous (invalid)] + expected: FAIL + + [-webkit-appearance: statusbar (invalid)] + expected: FAIL + + [appearance: menucheckbox (invalid)] + expected: FAIL + + [-webkit-appearance: square-button] + expected: FAIL + + [appearance: -moz-window-button-restore (invalid)] + expected: FAIL + + [appearance: media-time-remaining-display (invalid)] + expected: FAIL + + [-webkit-appearance: progressbar (invalid)] + expected: FAIL + + [-webkit-appearance: list-button (invalid)] + expected: FAIL + + [appearance: radio-container (invalid)] + expected: FAIL + + [appearance: media-seek-back-button (invalid)] + expected: FAIL + + [-webkit-appearance: radio-container (invalid)] + expected: FAIL + + [appearance: media-seek-forward-button (invalid)] + expected: FAIL + + [-webkit-appearance: auto] + expected: FAIL + + [-webkit-appearance: menupopup (invalid)] + expected: FAIL + + [appearance: relevancy-level-indicator (invalid)] + expected: FAIL + + [-webkit-appearance: discrete-capacity-level-indicator (invalid)] + expected: FAIL + + [appearance: listitem (invalid)] + expected: FAIL + + [appearance: scrollbarbutton-down (invalid)] + expected: FAIL + + [appearance: scalethumb-vertical (invalid)] + expected: FAIL + + [-webkit-appearance: button] + expected: FAIL + + [appearance: scrollbarbutton-up (invalid)] + expected: FAIL + + [-webkit-appearance: scrollbarbutton-left (invalid)] + expected: FAIL + + [-webkit-appearance: checkmenuitem (invalid)] + expected: FAIL + + [-webkit-appearance: toolbox (invalid)] + expected: FAIL + + [-webkit-appearance: scalethumbend (invalid)] + expected: FAIL + + [appearance: tabpanel (invalid)] + expected: FAIL + + [appearance: sliderthumb-vertical (invalid)] + expected: FAIL + + [appearance: button-arrow-down (invalid)] + expected: FAIL + + [appearance: textarea] + expected: FAIL + + [-webkit-appearance: toolbarbutton (invalid)] + expected: FAIL + + [-webkit-appearance: tab-scroll-arrow-back (invalid)] + expected: FAIL + + [appearance: menulist-textfield] + expected: FAIL + + [-webkit-appearance: tab (invalid)] + expected: FAIL + + [appearance: number-input (invalid)] + expected: FAIL + + [appearance: tabpanels (invalid)] + expected: FAIL + + [-webkit-appearance: color-well (invalid)] + expected: FAIL + + [-webkit-appearance: treeheader (invalid)] + expected: FAIL + + [-webkit-appearance: range-thumb (invalid)] + expected: FAIL + + [-webkit-appearance: splitter (invalid)] + expected: FAIL + + [-webkit-appearance: listbox] + expected: FAIL + + [-webkit-appearance: image-controls-button (invalid)] + expected: FAIL + + [-webkit-appearance: inner-spin-button (invalid)] + expected: FAIL + + [appearance: -moz-win-communicationstext (invalid)] + expected: FAIL + + [appearance: treeheadercell (invalid)] + expected: FAIL + + [appearance: inner-spin-button (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-win-exclude-glass (invalid)] + expected: FAIL + + [-webkit-appearance: -apple-pay-button (invalid)] + expected: FAIL + + [appearance: tab (invalid)] + expected: FAIL + + [appearance: scrollbarthumb-vertical (invalid)] + expected: FAIL + + [-webkit-appearance: button-bevel] + expected: FAIL + + [-webkit-appearance: -moz-window-button-minimize (invalid)] + expected: FAIL + + [appearance: scalethumb-horizontal (invalid)] + expected: FAIL + + [-webkit-appearance: treeheadersortarrow (invalid)] + expected: FAIL + + [-webkit-appearance: snapshotted-plugin-overlay (invalid)] + expected: FAIL + + [-webkit-appearance: spinner-textfield (invalid)] + expected: FAIL + + [appearance: media-exit-fullscreen-button (invalid)] + expected: FAIL + + [appearance: color-well (invalid)] + expected: FAIL + + [-webkit-appearance: sheet (invalid)] + expected: FAIL + + [-webkit-appearance: treeline (invalid)] + expected: FAIL + + [-webkit-appearance: media-controls-background (invalid)] + expected: FAIL + + [appearance: media-sliderthumb (invalid)] + expected: FAIL + + [appearance: media-fullscreen-volume-slider (invalid)] + expected: FAIL + + [-webkit-appearance: searchfield-decoration (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-window-frame-left (invalid)] + expected: FAIL + + [appearance: media-current-time-display (invalid)] + expected: FAIL + + [-webkit-appearance: listitem (invalid)] + expected: FAIL + + [appearance: separator (invalid)] + expected: FAIL + + [-webkit-appearance: toolbar (invalid)] + expected: FAIL + + [appearance: dualbutton (invalid)] + expected: FAIL + + [appearance: bogus-button (invalid)] + expected: FAIL + + [appearance: searchfield-decoration (invalid)] + expected: FAIL + + [-webkit-appearance: spinner-upbutton (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-win-communicationstext (invalid)] + expected: FAIL + + [appearance: scalethumbend (invalid)] + expected: FAIL + + [appearance: -moz-win-browsertabbar-toolbox (invalid)] + expected: FAIL + + [appearance: menupopup (invalid)] + expected: FAIL + + [-webkit-appearance: checkbox] + expected: FAIL + + [-webkit-appearance: -moz-window-button-close (invalid)] + expected: FAIL + + [appearance: checkmenuitem (invalid)] + expected: FAIL + + [-webkit-appearance: media-rewind-button (invalid)] + expected: FAIL + + [appearance: caret] + expected: FAIL + + [appearance: radio-label (invalid)] + expected: FAIL + + [-webkit-appearance: progresschunk (invalid)] + expected: FAIL + + [appearance: progress-bar] + expected: FAIL + + [-webkit-appearance: rating-level-indicator (invalid)] + expected: FAIL + + [appearance: menulist-text] + expected: FAIL + + [-webkit-appearance: bogus-button (invalid)] + expected: FAIL + + [appearance: button-focus (invalid)] + expected: FAIL + + [appearance: -moz-window-button-close (invalid)] + expected: FAIL + + [appearance: listbox] + expected: FAIL + + [-webkit-appearance: media-controls-fullscreen-background (invalid)] + expected: FAIL + + [appearance: media-volume-slider-mute-button (invalid)] + expected: FAIL + + [-webkit-appearance: treeheadercell (invalid)] + expected: FAIL + + [-webkit-appearance: scrollbarbutton-up (invalid)] + expected: FAIL + + [-webkit-appearance: media-seek-forward-button (invalid)] + expected: FAIL + + [-webkit-appearance: caret] + expected: FAIL + + [appearance: checkbox-container (invalid)] + expected: FAIL + + [appearance: button] + expected: FAIL + + [-webkit-appearance: relevancy-level-indicator (invalid)] + expected: FAIL + + [appearance: progresschunk-vertical (invalid)] + expected: FAIL + + [appearance: treetwisty (invalid)] + expected: FAIL + + [-webkit-appearance: scrollbartrack-horizontal (invalid)] + expected: FAIL + + [-webkit-appearance: media-current-time-display (invalid)] + expected: FAIL + + [-webkit-appearance: scalethumbtick (invalid)] + expected: FAIL + + [-webkit-appearance: treetwistyopen (invalid)] + expected: FAIL + + [-webkit-appearance: push-button] + expected: FAIL + + [appearance: menuarrow (invalid)] + expected: FAIL + + [-webkit-appearance: radiomenuitem (invalid)] + expected: FAIL + + [appearance: scrollbartrack-vertical (invalid)] + expected: FAIL + + [-webkit-appearance: meterchunk (invalid)] + expected: FAIL + + [appearance: treeitem (invalid)] + expected: FAIL + + [-webkit-appearance: toolbarbutton-dropdown (invalid)] + expected: FAIL + + [appearance: media-play-button (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-window-titlebar (invalid)] + expected: FAIL + + [-webkit-appearance: default-button (invalid)] + expected: FAIL + + [-webkit-appearance: media-sliderthumb (invalid)] + expected: FAIL + + [-webkit-appearance: menulist] + expected: FAIL + + [appearance: searchfield] + expected: FAIL + + [-webkit-appearance: button-arrow-down (invalid)] + expected: FAIL + + [-webkit-appearance: media-controls-light-bar-background (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-win-communications-toolbox (invalid)] + expected: FAIL + + [appearance: rating-level-indicator (invalid)] + expected: FAIL + + [appearance: -moz-window-frame-right (invalid)] + expected: FAIL + + [appearance: spinner-downbutton (invalid)] + expected: FAIL + + [-webkit-appearance: caps-lock-indicator (invalid)] + expected: FAIL + + [appearance: splitter (invalid)] + expected: FAIL + + [appearance: media-controls-background (invalid)] + expected: FAIL + + [appearance: square-button] + expected: FAIL + + [-webkit-appearance: listitem] + expected: FAIL + + [appearance: resizer (invalid)] + expected: FAIL + + [appearance: -moz-win-borderless-glass (invalid)] + expected: FAIL + + [appearance: toolbox (invalid)] + expected: FAIL + + [-webkit-appearance: resizer (invalid)] + expected: FAIL + + [-webkit-appearance: resizerpanel (invalid)] + expected: FAIL + + [-webkit-appearance: dualbutton (invalid)] + expected: FAIL + + [appearance: media-enter-fullscreen-button (invalid)] + expected: FAIL + + [-webkit-appearance: searchfield-cancel-button (invalid)] + expected: FAIL + + [-webkit-appearance: textarea] + expected: FAIL + + [appearance: statusbarpanel (invalid)] + expected: FAIL + + [appearance: -moz-window-titlebar-maximized (invalid)] + expected: FAIL + + [appearance: media-controls-light-bar-background (invalid)] + expected: FAIL + + [-webkit-appearance: tab-scroll-arrow-forward (invalid)] + expected: FAIL + + [appearance: push-button] + expected: FAIL + + [appearance: treetwistyopen (invalid)] + expected: FAIL + + [-webkit-appearance: treetwisty (invalid)] + expected: FAIL + + [appearance: progress-bar-value (invalid)] + expected: FAIL + + [appearance: scrollbarbutton-right (invalid)] + expected: FAIL + + [appearance: borderless-attachment (invalid)] + expected: FAIL + + [appearance: media-controls-fullscreen-background (invalid)] + expected: FAIL + + [appearance: treeheader (invalid)] + expected: FAIL + + [appearance: slider-horizontal] + expected: FAIL + + [-webkit-appearance: radio-label (invalid)] + expected: FAIL + + [-webkit-appearance: none] + expected: FAIL + + [-webkit-appearance: -moz-window-button-box (invalid)] + expected: FAIL + + [-webkit-appearance: tabpanel (invalid)] + expected: FAIL + + [appearance: checkbox-label (invalid)] + expected: FAIL + + [appearance: -apple-pay-button (invalid)] + expected: FAIL + + [-webkit-appearance: progressbar-vertical (invalid)] + expected: FAIL + + [appearance: -moz-window-button-box (invalid)] + expected: FAIL + + [appearance: spinner-upbutton (invalid)] + expected: FAIL + + [appearance: groupbox (invalid)] + expected: FAIL + + [-webkit-appearance: menuitemtext (invalid)] + expected: FAIL + + [appearance: snapshotted-plugin-overlay (invalid)] + expected: FAIL + + [appearance: discrete-capacity-level-indicator (invalid)] + expected: FAIL + + [-webkit-appearance: button-arrow-up (invalid)] + expected: FAIL + + [appearance: media-volume-slider-container (invalid)] + expected: FAIL + + [-webkit-appearance: searchfield] + expected: FAIL + + [appearance: caps-lock-indicator (invalid)] + expected: FAIL + + [-webkit-appearance: toolbargripper (invalid)] + expected: FAIL + + [-webkit-appearance: scrollbarthumb-horizontal (invalid)] + expected: FAIL + + [appearance: auto] + expected: FAIL + + [-webkit-appearance: media-seek-back-button (invalid)] + expected: FAIL + + [-webkit-appearance: button-focus (invalid)] + expected: FAIL + + [appearance: progressbar-vertical (invalid)] + expected: FAIL + + [appearance: tooltip (invalid)] + expected: FAIL + + [-webkit-appearance: media-volume-slider-mute-button (invalid)] + expected: FAIL + + [appearance: button-arrow-previous (invalid)] + expected: FAIL + + [-webkit-appearance: media-fullscreen-volume-slider (invalid)] + expected: FAIL + + [-webkit-appearance: scrollbarbutton-right (invalid)] + expected: FAIL + + [appearance: toolbarbutton (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-win-glass (invalid)] + expected: FAIL + + [-webkit-appearance: textfield] + expected: FAIL + + [appearance: searchfield-cancel-button (invalid)] + expected: FAIL + + [-webkit-appearance: spinner (invalid)] + expected: FAIL + + [appearance: -moz-win-exclude-glass (invalid)] + expected: FAIL + + [appearance: media-return-to-realtime-button (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-window-button-restore (invalid)] + expected: FAIL + + [-webkit-appearance: spinner-downbutton (invalid)] + expected: FAIL + + [-webkit-appearance: progresschunk-vertical (invalid)] + expected: FAIL + + [-webkit-appearance: radio] + expected: FAIL + + [-webkit-appearance: meterbar (invalid)] + expected: FAIL + + [-webkit-appearance: slider-horizontal] + expected: FAIL + + [appearance: -moz-window-frame-left (invalid)] + expected: FAIL + + [-webkit-appearance: scalethumb-vertical (invalid)] + expected: FAIL + + [appearance: media-toggle-closed-captions-button (invalid)] + expected: FAIL + + [appearance: checkbox] + expected: FAIL + + [appearance: textfield-multiline (invalid)] + expected: FAIL + + [appearance: treeline (invalid)] + expected: FAIL + + [-webkit-appearance: media-time-remaining-display (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-window-button-maximize (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-win-browsertabbar-toolbox (invalid)] + expected: FAIL + + [appearance: attachment (invalid)] + expected: FAIL + + [-webkit-appearance: separator (invalid)] + expected: FAIL + + [appearance: none] + expected: FAIL + + [-webkit-appearance: -moz-win-media-toolbox (invalid)] + expected: FAIL + + [appearance: searchfield-results-button (invalid)] + expected: FAIL + + [appearance: searchfield-results-decoration (invalid)] + expected: FAIL + + [appearance: radiomenuitem (invalid)] + expected: FAIL + + [appearance: progresschunk (invalid)] + expected: FAIL + + [-webkit-appearance: sliderthumb-vertical (invalid)] + expected: FAIL + + [appearance: toolbar (invalid)] + expected: FAIL + + [appearance: menulist] + expected: FAIL + + [-webkit-appearance: scalethumbstart (invalid)] + expected: FAIL + + [-webkit-appearance: tooltip (invalid)] + expected: FAIL + + [-webkit-appearance: button-arrow-next (invalid)] + expected: FAIL + + [appearance: treeview (invalid)] + expected: FAIL + + [-webkit-appearance: media-volume-slider (invalid)] + expected: FAIL + + [-webkit-appearance: media-return-to-realtime-button (invalid)] + expected: FAIL + + [appearance: toolbargripper (invalid)] + expected: FAIL + + [appearance: slider-vertical (invalid)] + expected: FAIL + + [-webkit-appearance: scale-vertical (invalid)] + expected: FAIL + + [-webkit-appearance: scrollbarbutton-down (invalid)] + expected: FAIL + + [-webkit-appearance: checkbox-container (invalid)] + expected: FAIL + + [appearance: sheet (invalid)] + expected: FAIL + + [appearance: menuimage (invalid)] + expected: FAIL + + [-webkit-appearance: media-toggle-closed-captions-button (invalid)] + expected: FAIL + + [-webkit-appearance: searchfield-results-button (invalid)] + expected: FAIL + + [appearance: media-rewind-button (invalid)] + expected: FAIL + + [-webkit-appearance: media-overlay-play-button (invalid)] + expected: FAIL + + [appearance: menuseparator (invalid)] + expected: FAIL + + [appearance: list-button (invalid)] + expected: FAIL + + [-webkit-appearance: progress-bar-value (invalid)] + expected: FAIL + + [appearance: listitem] + expected: FAIL + + [-webkit-appearance: scalethumb-horizontal (invalid)] + expected: FAIL + + [-webkit-appearance: number-input (invalid)] + expected: FAIL + + [-webkit-appearance: scrollbarthumb-vertical (invalid)] + expected: FAIL + + [appearance: -moz-window-button-maximize (invalid)] + expected: FAIL + + [appearance: scale-horizontal (invalid)] + expected: FAIL + + [-webkit-appearance: checkbox-label (invalid)] + expected: FAIL + + [appearance: button-arrow-up (invalid)] + expected: FAIL + + [-webkit-appearance: borderless-attachment (invalid)] + expected: FAIL + + [appearance: media-controls-dark-bar-background (invalid)] + expected: FAIL + + [-webkit-appearance: menubar (invalid)] + expected: FAIL + + [-webkit-appearance: menuimage (invalid)] + expected: FAIL + + [appearance: menuitemtext (invalid)] + expected: FAIL + + [appearance: -moz-window-titlebar (invalid)] + expected: FAIL + + [-webkit-appearance: menuarrow (invalid)] + expected: FAIL + + [appearance: menubar (invalid)] + expected: FAIL + + [-webkit-appearance: statusbarpanel (invalid)] + expected: FAIL + + [-webkit-appearance: tabpanels (invalid)] + expected: FAIL + + [-webkit-appearance: media-controls-dark-bar-background (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-window-frame-right (invalid)] + expected: FAIL + + [appearance: tab-scroll-arrow-back (invalid)] + expected: FAIL + + [-webkit-appearance: media-mute-button (invalid)] + expected: FAIL + + [appearance: menuradio (invalid)] + expected: FAIL + + [appearance: range-thumb (invalid)] + expected: FAIL + + [-webkit-appearance: treeview (invalid)] + expected: FAIL + + [appearance: -moz-window-button-box-maximized (invalid)] + expected: FAIL + + [appearance: media-mute-button (invalid)] + expected: FAIL + + [-webkit-appearance: treeitem (invalid)] + expected: FAIL + + [appearance: textfield] + expected: FAIL + + [appearance: meterbar (invalid)] + expected: FAIL + + [-webkit-appearance: menulist-button] + expected: FAIL + + [-webkit-appearance: media-enter-fullscreen-button (invalid)] + expected: FAIL + + [appearance: default-button (invalid)] + expected: FAIL + + [appearance: media-fullscreen-volume-slider-thumb (invalid)] + expected: FAIL + + [-webkit-appearance: media-fullscreen-volume-slider-thumb (invalid)] + expected: FAIL + + [-webkit-appearance: continuous-capacity-level-indicator (invalid)] + expected: FAIL + + [-webkit-appearance: menulist-textfield] + expected: FAIL + + [-webkit-appearance: groupbox (invalid)] + expected: FAIL + + [appearance: media-overlay-play-button (invalid)] + expected: FAIL + + [appearance: button-bevel] + expected: FAIL + + [-webkit-appearance: meter] + expected: FAIL + + [appearance: scalethumbtick (invalid)] + expected: FAIL + + [-webkit-appearance: menucheckbox (invalid)] + expected: FAIL + + [appearance: radio] + expected: FAIL + + [-webkit-appearance: searchfield-results-decoration (invalid)] + expected: FAIL + + [appearance: -moz-win-media-toolbox (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-window-titlebar-maximized (invalid)] + expected: FAIL + + [appearance: progressbar (invalid)] + expected: FAIL + + [appearance: media-slider (invalid)] + expected: FAIL + + [appearance: scalethumbstart (invalid)] + expected: FAIL + + [-webkit-appearance: range (invalid)] + expected: FAIL + + [-webkit-appearance: menuradio (invalid)] + expected: FAIL + + [appearance: spinner-textfield (invalid)] + expected: FAIL + + [appearance: spinner (invalid)] + expected: FAIL + + [-webkit-appearance: -moz-window-button-box-maximized (invalid)] + expected: FAIL + + [appearance: treeheadersortarrow (invalid)] + expected: FAIL + + [appearance: -moz-win-glass (invalid)] + expected: FAIL + + [appearance: meter] + expected: FAIL + + [appearance: image-controls-button (invalid)] + expected: FAIL + + [-webkit-appearance: slider-vertical (invalid)] + expected: FAIL + + [-webkit-appearance: progress-bar] + expected: FAIL + + [appearance: -moz-window-button-minimize (invalid)] + expected: FAIL + + [-webkit-appearance: media-slider (invalid)] + expected: FAIL + + [-webkit-appearance: media-volume-sliderthumb (invalid)] + expected: FAIL + + [appearance: scrollbartrack-horizontal (invalid)] + expected: FAIL + + [appearance: sliderthumb-horizontal (invalid)] + expected: FAIL + + [-webkit-appearance: menuitem (invalid)] + expected: FAIL + + [appearance: menuitem (invalid)] + expected: FAIL + + [appearance: scrollbarthumb-horizontal (invalid)] + expected: FAIL + + [-webkit-appearance: scrollbartrack-vertical (invalid)] + expected: FAIL + + [appearance: range (invalid)] + expected: FAIL + + [appearance: media-volume-sliderthumb (invalid)] + expected: FAIL + + [-webkit-appearance: media-play-button (invalid)] + expected: FAIL + + [-webkit-appearance: textfield-multiline (invalid)] + expected: FAIL + + [appearance: -moz-window-frame-bottom (invalid)] + expected: FAIL + + [appearance: -moz-win-communications-toolbox (invalid)] + expected: FAIL + + [appearance: tab-scroll-arrow-forward (invalid)] + expected: FAIL + + [-webkit-appearance: scale-horizontal (invalid)] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini index 8e2ceeddfbe..bcd187f508c 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini @@ -6,6 +6,3 @@ [Instant scrolling while doing history navigation.] expected: FAIL - [Smooth scrolling while doing history navigation.] - expected: FAIL - diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini index 0db3e87a719..95b74e19aec 100644 --- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini +++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini @@ -32,7 +32,7 @@ [single-byte-decoder.html?XMLHttpRequest] - expected: CRASH + expected: TIMEOUT [ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)] expected: FAIL @@ -58,7 +58,73 @@ expected: FAIL [windows-1254: iso_8859-9:1989 (XMLHttpRequest)] - expected: FAIL + expected: TIMEOUT + + [windows-1258: cp1258 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1256: cp1256 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: iso_8859-9 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: iso88599 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: iso-8859-9 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1258: x-cp1258 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1257: windows-1257 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: windows-1254 (XMLHttpRequest)] + expected: TIMEOUT + + [x-mac-cyrillic: x-mac-ukrainian (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: csisolatin5 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1257: cp1257 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1257: x-cp1257 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: cp1254 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: iso8859-9 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1253: cp1253 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: l5 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: x-cp1254 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: latin5 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1254: iso-ir-148 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1258: windows-1258 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1256: x-cp1256 (XMLHttpRequest)] + expected: TIMEOUT + + [x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)] + expected: TIMEOUT [single-byte-decoder.html?TextDecoder] diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 02a6e56df1c..c0a9a81dbe6 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,6 +312,15 @@ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" text/plain] + [<iframe>: combined response Content-Type: text/html */*] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] + expected: FAIL + + [<iframe>: separate response Content-Type: */* text/html] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html;x=" text/plain] expected: FAIL diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini index d4ba399b762..b7052af5b5c 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,6 +11,6 @@ [X-Content-Type-Options%3A%20nosniff%0C] expected: FAIL - [X-Content-Type-Options%3A%20'NosniFF'] + [X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini deleted file mode 100644 index 87b07c3e670..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_1.html] - [Multiple history traversals from the same task] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini deleted file mode 100644 index 8cc42056d34..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini +++ /dev/null @@ -1,10 +0,0 @@ -[non-active-document.html] - [DOMParser] - expected: FAIL - - [createHTMLDocument] - expected: FAIL - - [<template>] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini deleted file mode 100644 index 9e522297c94..00000000000 --- a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[toggleEvent.html] - [Calling open twice on 'details' fires only one toggle event] - expected: FAIL - - [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini new file mode 100644 index 00000000000..178680e5d14 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini @@ -0,0 +1,2 @@ +[script-onerror-insertion-point-2.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini new file mode 100644 index 00000000000..63682614c4f --- /dev/null +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini @@ -0,0 +1,5 @@ +[promise-rejection-events.html] + expected: TIMEOUT + [rejectionhandled is dispatched from a queued task, and not immediately] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini index 333edb3a26e..650c91da4a6 100644 --- a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini +++ b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini @@ -1,4 +1,5 @@ [sharedworker-in-worker.html] + expected: ERROR [Base URL in workers: new SharedWorker()] expected: FAIL diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml index 773ff6cc5f9..387c55a5ec4 100644 --- a/tests/wpt/web-platform-tests/.azure-pipelines.yml +++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml @@ -21,7 +21,7 @@ jobs: steps: - template: tools/ci/azure/affected_tests.yml parameters: - artifactName: 'results' + artifactName: 'affected-tests' - job: affected_without_changes_macOS displayName: 'affected tests without changes (Safari Technology Preview)' @@ -33,7 +33,7 @@ jobs: parameters: checkoutCommit: 'HEAD^1' affectedRange: 'HEAD@{1}' - artifactName: 'results-without-changes' + artifactName: 'affected-tests-without-changes' # The decision jobs runs `./wpt test-jobs` to determine which jobs to run, # and all following jobs wait for it to finish and depend on its output. diff --git a/tests/wpt/web-platform-tests/compat/webkit-appearance.html b/tests/wpt/web-platform-tests/compat/webkit-appearance.html deleted file mode 100644 index 210944522a9..00000000000 --- a/tests/wpt/web-platform-tests/compat/webkit-appearance.html +++ /dev/null @@ -1,57 +0,0 @@ -<!doctype html> -<title>-webkit-appearance</title> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<button id=button>Test</button> -<script> - const button = document.getElementById('button'); - // values from https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-appearance - // intersection of Firefox and Chrome. - const values = ["none", - "button", - "button-bevel", - "caret", - "checkbox", - "listbox", - "listitem", - "menulist", - "menulist-button", - "menulist-text", - "menulist-textfield", - "radio", - "searchfield", - "textfield", - ]; - for (const value of values) { - test(() => { - button.removeAttribute('style'); - button.style.setProperty('-webkit-appearance', value); - assert_equals(button.style.WebkitAppearance, value); - assert_equals(button.style.webkitAppearance, value); // lowercase w - const style = getComputedStyle(button); - assert_equals(style.WebkitAppearance, value); - assert_equals(style.webkitAppearance, value); // lowercase w - }, `-webkit-appearance: ${value}`); - } - - const invalidValues = ["bogus-button"]; - for (const invalidValue of invalidValues) { - test(() => { - button.removeAttribute('style'); - button.style.setProperty('-webkit-appearance', invalidValue); - assert_equals(button.style.WebkitAppearance, ""); - assert_equals(button.style.webkitAppearance, ""); // lowercase w - const style = getComputedStyle(button); - assert_equals(style.WebkitAppearance, "button"); - assert_equals(style.webkitAppearance, "button"); // lowercase w - }, `-webkit-appearance: ${invalidValue} (invalid)`); - } - - test(() => { - button.removeAttribute('style'); - button.style.setProperty('appearance', 'auto'); - assert_equals(button.style.appearance, undefined); - const style = getComputedStyle(button); - assert_equals(style.appearance, undefined); - }, 'appearance'); -</script> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html new file mode 100644 index 00000000000..594fee03f48 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/clear-on-child-with-margins-2.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<title>Child of block with clear</title> +<link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#flow-control" title="9.5.2 Controlling flow next to floats: the 'clear' property"> +<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html"> +<p>Test passes if there is a filled green square.</p> +<div style="width: 100px;background: red;overflow: hidden;"> + <div style="float: right; height: 20px; width: 50%; background: green;"></div> + <div> + <div style="float: left; height:100px; width: 50%; background: green;"></div> + <div> + <div style="clear: right; height: 80px; margin-top: 16px; background: green;"></div> + </div> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/background-border-collapsed-gradient.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-border-collapsed-gradient.html new file mode 100644 index 00000000000..73b097cf9a8 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-border-collapsed-gradient.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Background Test: There should be no gap between border-collapsed backgrounds</title> + <link rel="author" title="schenney" href="mailto:schenney@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/css3-background"> + <link rel="match" href="reference/background-border-collapsed-gradient-ref.html"> + <style> + div { + background: linear-gradient(to bottom,#222,#666); + float: left; + padding: 32px; + color: white; + border-collapse: collapse; + } + </style> +</head> +<body> + <div style="height:18px;width:11.5625px;"></div> + <div style="height:18px;width:11.4375px;"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-table-cells-zoomed.html b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-table-cells-zoomed.html new file mode 100644 index 00000000000..4683e5b4b65 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/background-image-table-cells-zoomed.html @@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Background Test: A background image on table cells with collapsed borders should fill the table</title> + <link rel="author" title="schenney" href="mailto:schenney@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/css3-background"> + <link rel="match" href="reference/background-image-table-cells-zoomed-ref.html"> + <style> + body { + zoom: 121%; + } + .test-table { + display: table; + width: 600px; + border-collapse: collapse; + border-spacing: 0; + background-color: red; + } + .test-row { + padding: 0px; + border: 0px; + display: table-row; + } + .test-cell { + display: table-cell; + padding: 0px; + height: 50px; + border: 0px; + background: url("support/50x50-green.png"); + background-size: 100% 100%; + } + + </style> +</head> + +<body> + <div class="test-table"> + <div class="test-row"> + <div class="test-cell"></div> + <div class="test-cell"></div> + </div> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html b/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html new file mode 100644 index 00000000000..6e09d46cbc5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-border-collapsed-gradient-ref.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Background Test Reference</title> + <link rel="author" title="schenney" href="mailto:schenney@chromium.org"> + <style> + div { + background: linear-gradient(to bottom,#222,#666); + float: left; + padding: 32px 64px; + color: white; + border-collapse: collapse; + } + </style> +</head> +<body> + <div style="height:18px;width:23px;"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html b/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html new file mode 100644 index 00000000000..6f4261ecf45 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/reference/background-image-table-cells-zoomed-ref.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Background Test Reference</title> + <link rel="author" title="schenney" href="mailto:schenney@chromium.org"> + <style> + body { + zoom: 121%; + } + .test-table { + display: table; + width: 600px; + border-collapse: collapse; + border-spacing: 0; + background-color: green; + } + .test-row { + display: table-row; + padding: 0px; + } + .test-cell { + display: table-cell; + padding: 0px; + height: 50px; + border: 0; + } + + </style> +</head> + +<body> + <div class="test-table"> + <div class="test-row"> + <div class="test-cell"></div> + <div class="test-cell"></div> + </div> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html b/tests/wpt/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html new file mode 100644 index 00000000000..f5d9d528a15 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html @@ -0,0 +1,45 @@ +<!DOCTYPE html> +<title>Percentage height in flexbox: css-sizing-3</title> +<link rel="author" title="mailto:atotic@google.com"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#percentage-sizing"> +<link rel="help" href="https://crbug.com/907911"> +<meta name="assert" content="Percentage height resolves correctly inside flexbox."> +<style> +#outer { + width: 100px; + height: 100px; + background: red; +} +#container { + display: inline-flex; + height: 50px; + background: green; +} +#target { + height:100%; + display:block; +} +</style> +<div id="outer"> + <div id="container"> + <img id="target" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"> + </div> +</div> +<script> +test(() => { + let target = document.querySelector("#target"); + assert_equals(target.offsetWidth, target.offsetHeight); + assert_equals(target.offsetWidth, target.parentNode.offsetWidth); + assert_equals(target.offsetHeight, target.parentNode.offsetHeight); +}, '#target offsetSize matches #container offsetSize' ); +test(() => { + document.querySelector("#container").style.height = "100px"; + let target = document.querySelector("#target"); + assert_equals(target.offsetWidth, target.offsetHeight); + assert_equals(target.offsetWidth, target.parentNode.offsetWidth); + assert_equals(target.offsetHeight, target.parentNode.offsetHeight); +}, '#target offsetSize matches #container offsetSize after resize' ); + +</script> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid.html new file mode 100644 index 00000000000..50ed22f1b74 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-invalid.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing hanging-punctuation with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hanging-punctuation"> +<meta name="assert" content="hanging-punctuation supports only the grammar 'none | [ first || [ force-end | allow-end ] || last ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("hanging-punctuation", "none first"); +test_invalid_value("hanging-punctuation", "last none"); +test_invalid_value("hanging-punctuation", "first first"); +test_invalid_value("hanging-punctuation", "force-end allow-end"); +test_invalid_value("hanging-punctuation", "allow-end last force-end"); +test_invalid_value("hanging-punctuation", "first allow-end last allow-end"); +test_invalid_value("hanging-punctuation", "last force-end last"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-valid.html new file mode 100644 index 00000000000..3523a791b84 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/hanging-punctuation-valid.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing hanging-punctuation with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hanging-punctuation"> +<meta name="assert" content="hanging-punctuation supports the full grammar 'none | [ first || [ force-end | allow-end ] || last ]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("hanging-punctuation", "none"); + +test_valid_value("hanging-punctuation", "first"); +test_valid_value("hanging-punctuation", "force-end"); +test_valid_value("hanging-punctuation", "allow-end"); +test_valid_value("hanging-punctuation", "last"); + +test_valid_value("hanging-punctuation", "first force-end"); +test_valid_value("hanging-punctuation", "first last"); +test_valid_value("hanging-punctuation", "allow-end first"); +test_valid_value("hanging-punctuation", "force-end last"); +test_valid_value("hanging-punctuation", "last first"); +test_valid_value("hanging-punctuation", "last allow-end"); + +test_valid_value("hanging-punctuation", "first allow-end last"); +test_valid_value("hanging-punctuation", "first last force-end"); +test_valid_value("hanging-punctuation", "force-end first last"); +test_valid_value("hanging-punctuation", "allow-end last first"); +test_valid_value("hanging-punctuation", "last first force-end"); +test_valid_value("hanging-punctuation", "last allow-end first"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-invalid.html new file mode 100644 index 00000000000..521600f7138 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-invalid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing hyphens with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hyphens"> +<meta name="assert" content="hyphens supports only the grammar 'none | manual | auto'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("hyphens", "normal"); +test_invalid_value("hyphens", "none manual"); +test_invalid_value("hyphens", "auto auto"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-valid.html new file mode 100644 index 00000000000..0ad72094c70 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/hyphens-valid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing hyphens with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hyphens"> +<meta name="assert" content="hyphens supports the full grammar 'none | manual | auto'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("hyphens", "none"); +test_valid_value("hyphens", "manual"); +test_valid_value("hyphens", "auto"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-invalid.html new file mode 100644 index 00000000000..e9ad4e56a5b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-invalid.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing letter-spacing with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-letter-spacing"> +<meta name="assert" content="letter-spacing supports only the grammar 'normal | <length>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("letter-spacing", "auto"); +test_invalid_value("letter-spacing", "20"); +test_invalid_value("letter-spacing", "30%"); +test_invalid_value("letter-spacing", "calc(40% + 50px)"); + +test_invalid_value("letter-spacing", "normal 10px"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-valid.html new file mode 100644 index 00000000000..740d1fc3988 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/letter-spacing-valid.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing letter-spacing with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-letter-spacing"> +<meta name="assert" content="letter-spacing supports the full grammar 'normal | <length>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("letter-spacing", "normal"); + +test_valid_value("letter-spacing", "0", "0px"); +test_valid_value("letter-spacing", "-10px"); +test_valid_value("letter-spacing", "calc(2em + 3ex)"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-invalid.html new file mode 100644 index 00000000000..aca16649360 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-invalid.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing line-break with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-line-break"> +<meta name="assert" content="line-break supports only the grammar 'auto | loose | normal | strict | anywhere'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("line-break", "none"); +test_invalid_value("line-break", "auto loose"); +test_invalid_value("line-break", "strict normal"); +test_invalid_value("line-break", "anywhere anywhere"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-valid.html new file mode 100644 index 00000000000..caaae9a5a01 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/line-break-valid.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing line-break with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-line-break"> +<meta name="assert" content="line-break supports the full grammar 'auto | loose | normal | strict | anywhere'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("line-break", "auto"); +test_valid_value("line-break", "loose"); +test_valid_value("line-break", "normal"); +test_valid_value("line-break", "strict"); +test_valid_value("line-break", "anywhere"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-invalid.html new file mode 100644 index 00000000000..1a467d5f188 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-invalid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing overflow-wrap with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-overflow-wrap"> +<meta name="assert" content="overflow-wrap supports only the grammar 'normal | break-word | anywhere'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("overflow-wrap", "auto"); +test_invalid_value("overflow-wrap", "normal break-word"); +test_invalid_value("overflow-wrap", "anywhere anywhere"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-valid.html new file mode 100644 index 00000000000..8ab907c5702 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/overflow-wrap-valid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing overflow-wrap with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-overflow-wrap"> +<meta name="assert" content="overflow-wrap supports the full grammar 'normal | break-word | anywhere'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("overflow-wrap", "normal"); +test_valid_value("overflow-wrap", "break-word"); +test_valid_value("overflow-wrap", "anywhere"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-invalid.html new file mode 100644 index 00000000000..c95c0462f23 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-invalid.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing tab-size with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-tab-size"> +<meta name="assert" content="tab-size supports only the grammar '<number> | <length>'."> +<meta name="assert" content="Negative tab-size values are not allowed."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("tab-size", "-10px"); +test_invalid_value("tab-size", "-20"); +test_invalid_value("tab-size", "30%"); +test_invalid_value("tab-size", "calc(40% + 50px)"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-valid.html new file mode 100644 index 00000000000..ced5a366098 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/tab-size-valid.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing tab-size with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-tab-size"> +<meta name="assert" content="tab-size supports the full grammar '<number> | <length>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("tab-size", "0"); +test_valid_value("tab-size", "2.5"); + +test_valid_value("tab-size", "0px"); +test_valid_value("tab-size", "10px"); +test_valid_value("tab-size", "calc(2em + 3ex)"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-invalid.html new file mode 100644 index 00000000000..70cbadf588b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-invalid.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-align-all with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-all"> +<meta name="assert" content="text-align-all supports only the grammar 'start | end | left | right | center | justify | match-parent'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("text-align-all", "auto"); +test_invalid_value("text-align-all", "start end"); +test_invalid_value("text-align-all", "left right"); +test_invalid_value("text-align-all", "center justify"); +test_invalid_value("text-align-all", "match-parent match-parent"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-valid.html new file mode 100644 index 00000000000..f65b15afde0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-all-valid.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-align-all with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-all"> +<meta name="assert" content="text-align-all supports the full grammar 'start | end | left | right | center | justify | match-parent'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("text-align-all", "start"); +test_valid_value("text-align-all", "end"); +test_valid_value("text-align-all", "left"); +test_valid_value("text-align-all", "right"); +test_valid_value("text-align-all", "center"); +test_valid_value("text-align-all", "justify"); +test_valid_value("text-align-all", "match-parent"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-invalid.html new file mode 100644 index 00000000000..38a56d914cd --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-invalid.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-align with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align"> +<meta name="assert" content="text-align supports only the grammar 'start | end | left | right | center | justify | match-parent | justify-all'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("text-align", "auto"); +test_invalid_value("text-align", "start end"); +test_invalid_value("text-align", "left right"); +test_invalid_value("text-align", "center justify"); +test_invalid_value("text-align", "justify-all match-parent"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-invalid.html new file mode 100644 index 00000000000..c16e9a6c133 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-invalid.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-align-last with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-last"> +<meta name="assert" content="text-align-last supports only the grammar 'auto | start | end | left | right | center | justify | match-parent'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("text-align-last", "none"); +test_invalid_value("text-align-last", "auto start"); +test_invalid_value("text-align-last", "end left"); +test_invalid_value("text-align-last", "right center"); +test_invalid_value("text-align-last", "justify match-parent"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-valid.html new file mode 100644 index 00000000000..c64e7d8a39e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-last-valid.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-align-last with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-last"> +<meta name="assert" content="text-align-last supports the full grammar 'auto | start | end | left | right | center | justify | match-parent'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("text-align-last", "auto"); +test_valid_value("text-align-last", "start"); +test_valid_value("text-align-last", "end"); +test_valid_value("text-align-last", "left"); +test_valid_value("text-align-last", "right"); +test_valid_value("text-align-last", "center"); +test_valid_value("text-align-last", "justify"); +test_valid_value("text-align-last", "match-parent"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-valid.html new file mode 100644 index 00000000000..e67f4f6f167 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-align-valid.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-align with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align"> +<meta name="assert" content="text-align supports the full grammar 'start | end | left | right | center | justify | match-parent | justify-all'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("text-align", "start"); +test_valid_value("text-align", "end"); +test_valid_value("text-align", "left"); +test_valid_value("text-align", "right"); +test_valid_value("text-align", "center"); +test_valid_value("text-align", "justify"); +test_valid_value("text-align", "match-parent"); +test_valid_value("text-align", "justify-all"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-invalid.html new file mode 100644 index 00000000000..9b5d7754b10 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-invalid.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-indent with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-indent"> +<meta name="assert" content="text-indent supports only the grammar '[ <length-percentage> ] && hanging? && each-line?'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("text-indent", "auto"); +test_invalid_value("text-indent", "hanging"); +test_invalid_value("text-indent", "each-line"); +test_invalid_value("text-indent", "10"); + +test_invalid_value("text-indent", "10px hanging 20px"); +test_invalid_value("text-indent", "hanging 20% hanging"); +test_invalid_value("text-indent", "each-line each-line"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-valid.html new file mode 100644 index 00000000000..9433ba3d9d3 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-indent-valid.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-indent with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-indent"> +<meta name="assert" content="text-indent supports the full grammar '[ <length-percentage> ] && hanging? && each-line?'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("text-indent", "10px"); +test_valid_value("text-indent", "20%"); +test_valid_value("text-indent", "calc(2em + 3ex)"); +test_valid_value("text-indent", "calc(50% + 60px)"); +test_valid_value("text-indent", "-30px"); +test_valid_value("text-indent", "-40%"); + +test_valid_value("text-indent", "10px hanging"); +test_valid_value("text-indent", "20% each-line"); +test_valid_value("text-indent", "calc(2em + 3ex) hanging each-line"); + +test_valid_value("text-indent", "hanging calc(50% + 60px)", "calc(50% + 60px) hanging"); +test_valid_value("text-indent", "each-line 10px", "10px each-line"); +test_valid_value("text-indent", "hanging 20% each-line", "20% hanging each-line"); +test_valid_value("text-indent", "each-line hanging calc(2em + 3ex)", "calc(2em + 3ex) hanging each-line"); +test_valid_value("text-indent", "calc(50% + 60px) each-line hanging", "calc(50% + 60px) hanging each-line"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-invalid.html new file mode 100644 index 00000000000..a009ef08eb5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-invalid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-justify with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-justify"> +<meta name="assert" content="text-justify supports only the grammar 'auto | none | inter-word | inter-character'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("text-justify", "normal"); +test_invalid_value("text-justify", "auto none"); +test_invalid_value("text-justify", "inter-character inter-word"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-valid.html new file mode 100644 index 00000000000..0991409da15 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-justify-valid.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-justify with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-justify"> +<meta name="assert" content="text-justify supports the full grammar 'auto | none | inter-word | inter-character'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("text-justify", "auto"); +test_valid_value("text-justify", "none"); +test_valid_value("text-justify", "inter-word"); +test_valid_value("text-justify", "inter-character"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-invalid.html new file mode 100644 index 00000000000..41482ab5f2c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-invalid.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-transform with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-transform"> +<meta name="assert" content="text-transform supports only the grammar 'none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("text-transform", "none full-width"); +test_invalid_value("text-transform", "capitalize none"); + +test_invalid_value("text-transform", "capitalize full-width lowercase"); +test_invalid_value("text-transform", "uppercase full-size-kana uppercase"); +test_invalid_value("text-transform", "full-width full-size-kana full-width"); +test_invalid_value("text-transform", "full-size-kana capitalize full-size-kana"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-valid.html new file mode 100644 index 00000000000..a40166c37ef --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/text-transform-valid.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing text-transform with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-transform"> +<meta name="assert" content="text-transform supports the full grammar 'none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("text-transform", "none"); + +test_valid_value("text-transform", "capitalize"); +test_valid_value("text-transform", "uppercase"); +test_valid_value("text-transform", "lowercase"); +test_valid_value("text-transform", "full-width"); +test_valid_value("text-transform", "full-size-kana"); + +test_valid_value("text-transform", "capitalize full-width"); +test_valid_value("text-transform", "uppercase full-size-kana"); +test_valid_value("text-transform", "full-width full-size-kana"); +test_valid_value("text-transform", "full-width lowercase"); +test_valid_value("text-transform", "full-size-kana capitalize"); +test_valid_value("text-transform", "full-size-kana full-width"); + +test_valid_value("text-transform", "capitalize full-width full-size-kana"); +test_valid_value("text-transform", "full-width full-size-kana uppercase"); +test_valid_value("text-transform", "full-size-kana lowercase full-width"); +test_valid_value("text-transform", "lowercase full-size-kana full-width"); +test_valid_value("text-transform", "full-width uppercase full-size-kana"); +test_valid_value("text-transform", "full-size-kana full-width capitalize"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-invalid.html new file mode 100644 index 00000000000..12c34fb5378 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-invalid.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing white-space with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-white-space"> +<meta name="assert" content="white-space supports only the grammar 'normal | pre | nowrap | pre-wrap | break-spaces | pre-line'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("white-space", "auto"); +test_invalid_value("white-space", "normal pre"); +test_invalid_value("white-space", "nowrap pre-wrap"); +test_invalid_value("white-space", "pre-line break-spaces"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-valid.html new file mode 100644 index 00000000000..d872c0b6fbc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/white-space-valid.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing white-space with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-white-space"> +<meta name="assert" content="white-space supports the full grammar 'normal | pre | nowrap | pre-wrap | break-spaces | pre-line'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("white-space", "normal"); +test_valid_value("white-space", "pre"); +test_valid_value("white-space", "nowrap"); +test_valid_value("white-space", "pre-wrap"); +test_valid_value("white-space", "break-spaces"); +test_valid_value("white-space", "pre-line"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-invalid.html new file mode 100644 index 00000000000..6d544de8bfa --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-invalid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing word-break with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-break"> +<meta name="assert" content="word-break supports only the grammar 'normal | keep-all | break-all'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("word-break", "auto"); +test_invalid_value("word-break", "normal keep-all"); +test_invalid_value("word-break", "break-all break-all"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-valid.html new file mode 100644 index 00000000000..9cd917b488a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-break-valid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing word-break with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-break"> +<meta name="assert" content="word-break supports the full grammar 'normal | keep-all | break-all'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("word-break", "normal"); +test_valid_value("word-break", "keep-all"); +test_valid_value("word-break", "break-all"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-invalid.html new file mode 100644 index 00000000000..3a1c4ca487c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-invalid.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing word-spacing with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-spacing"> +<meta name="assert" content="word-spacing supports only the grammar 'normal | <length>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("word-spacing", "auto"); +test_invalid_value("word-spacing", "20%"); + +test_invalid_value("word-spacing", "normal 10px"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-valid.html new file mode 100644 index 00000000000..217b2488f53 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-spacing-valid.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing word-spacing with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-spacing"> +<meta name="assert" content="word-spacing supports the full grammar 'normal | <length>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("word-spacing", "normal"); + +test_valid_value("word-spacing", "10px"); +test_valid_value("word-spacing", "-20px"); +test_valid_value("word-spacing", "calc(2em + 3ex)"); +test_valid_value("word-spacing", "0", "0px"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-invalid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-invalid.html new file mode 100644 index 00000000000..40890775ca5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-invalid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing word-wrap with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-wrap"> +<meta name="assert" content="word-wrap supports only the grammar 'normal | break-word | anywhere'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("word-wrap", "auto"); +test_invalid_value("word-wrap", "normal break-word"); +test_invalid_value("word-wrap", "anywhere anywhere"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-valid.html b/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-valid.html new file mode 100644 index 00000000000..ce5731551ae --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/parsing/word-wrap-valid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Text Module Test: parsing word-wrap with valid values</title> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-wrap"> +<meta name="assert" content="word-wrap supports the full grammar 'normal | break-word | anywhere'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("word-wrap", "normal"); +test_valid_value("word-wrap", "break-word"); +test_valid_value("word-wrap", "anywhere"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-ui/appearance-cssom-001.html b/tests/wpt/web-platform-tests/css/css-ui/appearance-cssom-001.html new file mode 100644 index 00000000000..2d439ba615f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-ui/appearance-cssom-001.html @@ -0,0 +1,233 @@ +<!doctype html> +<title>CSS Basic User Interface Test: appearance CSSOM</title> +<link rel="help" href="https://drafts.csswg.org/css-ui-4/#appearance-switching"> +<meta name="assert" content="CSSOM for the appearance/-webkit-appearance property is correct."> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<button id=button>Test</button> +<script> + const button = document.getElementById('button'); + const values = ["none", + "auto", + "button", + "button-bevel", + "caret", + "checkbox", + "listbox", + "listitem", + "menulist", + "menulist-button", + "menulist-text", + "menulist-textfield", + "meter", + "progress-bar", + "push-button", + "radio", + "searchfield", + "slider-horizontal", + "square-button", + "textarea", + "textfield", + ]; + function assert_style_for_prop(style, prop, value) { + if (prop === '-webkit-appearance') { + assert_equals(style.WebkitAppearance, value, 'style.WebkitAppearance (uppercase W)'); + assert_equals(style.webkitAppearance, value, 'style.webkitAppearance (lowercase w)'); + } else { + assert_equals(style.appearance, value, 'style.appearance'); + } + assert_equals(style.getPropertyValue(prop), value, `getPropertyValue(${prop})`); + } + for (const prop of ["-webkit-appearance", "appearance"]) { + for (const value of values) { + test(() => { + button.removeAttribute('style'); + button.style.setProperty(prop, value); + assert_style_for_prop(button.style, prop, value); + const style = getComputedStyle(button); + assert_style_for_prop(style, prop, value); + }, `${prop}: ${value}`); + } + + const invalidValues = ["bogus-button", + "attachment", + "borderless-attachment", + "button-arrow-down", + "button-arrow-next", + "button-arrow-previous", + "button-arrow-up", + "button-focus", + "caps-lock-indicator", + "checkbox-container", + "checkbox-label", + "checkmenuitem", + "color-well", + "continuous-capacity-level-indicator", + "default-button", + "discrete-capacity-level-indicator", + "dualbutton", + "groupbox", + "inner-spin-button", + "image-controls-button", + "list-button", + "listitem", + "media-enter-fullscreen-button", + "media-exit-fullscreen-button", + "media-fullscreen-volume-slider", + "media-fullscreen-volume-slider-thumb", + "media-mute-button", + "media-play-button", + "media-overlay-play-button", + "media-return-to-realtime-button", + "media-rewind-button", + "media-seek-back-button", + "media-seek-forward-button", + "media-toggle-closed-captions-button", + "media-slider", + "media-sliderthumb", + "media-volume-slider-container", + "media-volume-slider-mute-button", + "media-volume-slider", + "media-volume-sliderthumb", + "media-controls-background", + "media-controls-dark-bar-background", + "media-controls-fullscreen-background", + "media-controls-light-bar-background", + "media-current-time-display", + "media-time-remaining-display", + "menuarrow", + "menubar", + "menucheckbox", + "menuimage", + "menuitem", + "menuitemtext", + "menupopup", + "menuradio", + "menuseparator", + "meterbar", + "meterchunk", + "number-input", + "progress-bar-value", + "progressbar", + "progressbar-vertical", + "progresschunk", + "progresschunk-vertical", + "radio-container", + "radio-label", + "radiomenuitem", + "range", + "range-thumb", + "rating-level-indicator", + "resizer", + "resizerpanel", + "scale-horizontal", + "scalethumbend", + "scalethumb-horizontal", + "scalethumbstart", + "scalethumbtick", + "scalethumb-vertical", + "scale-vertical", + "scrollbarbutton-down", + "scrollbarbutton-left", + "scrollbarbutton-right", + "scrollbarbutton-up", + "scrollbarthumb-horizontal", + "scrollbarthumb-vertical", + "scrollbartrack-horizontal", + "scrollbartrack-vertical", + "searchfield-decoration", + "searchfield-results-decoration", + "searchfield-results-button", + "searchfield-cancel-button", + "snapshotted-plugin-overlay", + "separator", + "sheet", + "slider-vertical", + "sliderthumb-horizontal", + "sliderthumb-vertical", + "spinner", + "spinner-downbutton", + "spinner-textfield", + "spinner-upbutton", + "splitter", + "statusbar", + "statusbarpanel", + "tab", + "tabpanel", + "tabpanels", + "tab-scroll-arrow-back", + "tab-scroll-arrow-forward ", + "textfield-multiline", + "toolbar", + "toolbarbutton", + "toolbarbutton-dropdown", + "toolbargripper", + "toolbox", + "tooltip", + "treeheader", + "treeheadercell", + "treeheadersortarrow", + "treeitem", + "treeline", + "treetwisty", + "treetwistyopen", + "treeview", + "relevancy-level-indicator", + "-moz-win-borderless-glass", + "-moz-win-browsertabbar-toolbox", + "-moz-win-communicationstext", + "-moz-win-communications-toolbox", + "-moz-win-exclude-glass", + "-moz-win-glass", + "-moz-win-media-toolbox", + "-moz-window-button-box", + "-moz-window-button-box-maximized", + "-moz-window-button-close", + "-moz-window-button-maximize", + "-moz-window-button-minimize", + "-moz-window-button-restore", + "-moz-window-frame-bottom", + "-moz-window-frame-left", + "-moz-window-frame-right", + "-moz-window-titlebar", + "-moz-window-titlebar-maximized", + "-apple-pay-button", + ]; + for (const invalidValue of invalidValues) { + test(() => { + button.removeAttribute('style'); + button.style.setProperty(prop, invalidValue); + assert_style_for_prop(button.style, prop, ""); + const style = getComputedStyle(button); + assert_style_for_prop(style, prop, "button"); + }, `${prop}: ${invalidValue} (invalid)`); + } + } + + for (const prefix of ["-ms-", + "mso-", + "-moz-", + "-o-", + "-xv-", + "-atsc-", + "-wap-", + "-khtml-", + "-konq-", + "-apple-", + "prince-", + "-ah-", + "-hp-", + "-ro-", + "-rim-", + "-tc-", + ]) { + const prop = `${prefix}appearance`; + test(() => { + button.removeAttribute('style'); + button.style.setProperty(prop, 'none'); + assert_equals(button.style.getPropertyValue(prop), ''); + const style = getComputedStyle(button); + assert_equals(style.getPropertyValue(prop), ''); + }, `${prop} (should not be supported)`); + } +</script> diff --git a/tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html b/tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html index ec8a4ff1ed0..2978226f3cc 100644 --- a/tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html +++ b/tests/wpt/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html @@ -8,6 +8,13 @@ <script> const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } }); const basicCard = Object.freeze({ supportedMethods: "basic-card" }); const defaultMethods = Object.freeze([basicCard, applePay]); diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html index fd66493bf4f..e8df7b35a94 100644 --- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html +++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html @@ -6,8 +6,18 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const basicCard = Object.freeze({ supportedMethods: "basic-card" }); -const defaultMethods = Object.freeze([basicCard]); +const defaultMethods = Object.freeze([basicCard, applePay]); const defaultDetails = Object.freeze({ total: { label: "Total", diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html index cd928d4be1d..28dfe1e448b 100644 --- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html @@ -9,8 +9,18 @@ <script src="/resources/testharnessreport.js"></script> <script> setup({ explicit_done: true, explicit_timeout: true }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const validMethod = Object.freeze({ supportedMethods: "basic-card" }); -const validMethods = Object.freeze([validMethod]); +const validMethods = Object.freeze([validMethod, applePay]); const validAmount = Object.freeze({ currency: "USD", value: "5.00" }); const validTotal = Object.freeze({ label: "label", diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html index 40ba3057e0c..fbf97d855ab 100644 --- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html @@ -8,9 +8,18 @@ <script src="/resources/testharnessreport.js"></script> <script> setup({ explicit_done: true, explicit_timeout: true }); - +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const validMethod = Object.freeze({ supportedMethods: "basic-card" }); -const validMethods = [validMethod]; +const validMethods = [validMethod, applePay]; const validAmount = Object.freeze({ currency: "USD", value: "5.00", diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html index 3d1bfb41b84..c1ed1b5f685 100644 --- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html @@ -14,6 +14,15 @@ setup({ const methods = [{ supportedMethods: "basic-card", +}, { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } }]; const options = { diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html index 0ff7f23b647..cf0bb289d73 100644 --- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html @@ -18,8 +18,19 @@ const validMethodBasicCard = Object.freeze({ supportedMethods: "basic-card", }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); + // Methods -const validMethods = Object.freeze([validMethodBasicCard, validMethod]); +const validMethods = Object.freeze([validMethodBasicCard, validMethod, applePay]); // Amounts const validAmount = Object.freeze({ diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html index 4d4ef73949d..c5737aa8c31 100644 --- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html @@ -6,8 +6,18 @@ <script src="/resources/testharnessreport.js"></script> <script> setup({ explicit_done: true, explicit_timeout: true }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const validMethod = Object.freeze({ supportedMethods: "basic-card" }); -const validMethods = Object.freeze([validMethod]); +const validMethods = Object.freeze([validMethod, applePay]); const validAmount = Object.freeze({ currency: "USD", value: "5.00" }); const validTotal = Object.freeze({ label: "label", diff --git a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html index adacdf3f06d..17a4741cdf9 100644 --- a/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html +++ b/tests/wpt/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html @@ -6,8 +6,18 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const basicCard = Object.freeze({ supportedMethods: "basic-card" }); -const defaultMethods = Object.freeze([basicCard]); +const defaultMethods = Object.freeze([basicCard, applePay]); const defaultDetails = Object.freeze({ total: { label: "Total", diff --git a/tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html b/tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html index 5494353c6bc..67446496125 100644 --- a/tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/algorithms-manual.https.html @@ -15,6 +15,16 @@ const methods = [ { supportedMethods: "basic-card", }, + { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + }, + } ]; const shippingOptions = { shippingOptions: [ diff --git a/tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html b/tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html index cb9acf6eb6a..ccfeb6fd364 100644 --- a/tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/billing-address-changed-manual.https.html @@ -10,7 +10,16 @@ const methods = [ { supportedMethods: "basic-card" }, - { supportedMethods: "https://apple.com/apple-pay" }, + { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + }, + }, ]; const details = { diff --git a/tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html b/tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html index a33365bac73..438001804ac 100644 --- a/tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/change-shipping-option-manual.https.html @@ -9,7 +9,17 @@ <script> setup({ explicit_done: true, explicit_timeout: true }); const validMethod = Object.freeze({ supportedMethods: "basic-card" }); -const validMethods = Object.freeze([validMethod]); +const applePayMethod = { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + }, +}; +const validMethods = Object.freeze([validMethod, applePayMethod]); const validAmount = Object.freeze({ currency: "USD", value: "5.00" }); const validTotal = Object.freeze({ label: "label", diff --git a/tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html b/tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html index f08491150ac..4ad31d65317 100644 --- a/tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html @@ -8,7 +8,16 @@ setup({ explicit_done: true, explicit_timeout: true }); const validMethods = Object.freeze([ { supportedMethods: "basic-card" }, - { supportedMethods: "https://apple.com/apple-pay" }, + { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + }, + }, ]); const validAmount = Object.freeze({ currency: "USD", value: "5.00" }); const validTotal = Object.freeze({ diff --git a/tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html index c0ed23167ed..d31ac2dd72a 100644 --- a/tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html +++ b/tests/wpt/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html @@ -7,7 +7,16 @@ <script> "use strict"; const testMethod = Object.freeze({ supportedMethods: "not-a-real-method" }); -const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + }, +}); const defaultMethods = Object.freeze([testMethod, applePay]); const defaultDetails = Object.freeze({ total: { diff --git a/tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html index 0484eb868f9..f641bec4aa9 100644 --- a/tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html +++ b/tests/wpt/web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https.html @@ -7,7 +7,16 @@ <script> "use strict"; const testMethod = Object.freeze({ supportedMethods: "not-a-real-method" }); -const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const defaultMethods = Object.freeze([testMethod, applePay]); const defaultDetails = Object.freeze({ total: { diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html index 8e561b288d1..75e39a011c3 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html @@ -17,6 +17,13 @@ setup({ const basicCard = Object.freeze({ supportedMethods: "basic-card" }); const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } }); const defaultMethods = Object.freeze([basicCard, applePay]); const defaultDetails = Object.freeze({ diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html index b0582d520d3..e221034dd4e 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-protection.https.html @@ -8,7 +8,16 @@ <script src="/resources/testdriver.js"></script> <script> const basicCard = Object.freeze({ supportedMethods: "basic-card" }); -const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay" }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const defaultMethods = Object.freeze([basicCard, applePay]); const defaultDetails = Object.freeze({ total: { diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html index f38caa00b93..672e5ce1571 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html @@ -10,6 +10,13 @@ const basicCard = Object.freeze({ supportedMethods: "basic-card" }); const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } }); const defaultMethods = Object.freeze([basicCard, applePay]); const defaultDetails = Object.freeze({ diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html index 1325681a4ac..9763615bdd1 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-constructor-crash.https.html @@ -28,6 +28,17 @@ "use strict"; const ABUSIVE_AMOUNT = 100000; +const applePay = { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}; + const basicCard = Object.freeze({ supportedMethods: "basic-card", }); @@ -42,7 +53,7 @@ const evilAmount = Object.freeze({ value: "1".repeat(ABUSIVE_AMOUNT), }); -const defaultMethods = Object.freeze([basicCard]); +const defaultMethods = Object.freeze([basicCard, applePay]); const defaultTotal = Object.freeze({ label: "label", diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html index 5c54d48568a..5b2538992f7 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingaddresschange-attribute.https.html @@ -7,8 +7,18 @@ <script src="/resources/testharnessreport.js"></script> <script> "use strict"; +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const basicCard = Object.freeze({ supportedMethods: "basic-card" }); -const defaultMethods = Object.freeze([basicCard]); +const defaultMethods = Object.freeze([basicCard, applePay]); const defaultDetails = Object.freeze({ total: { label: "Total", diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html index a4d8fbc4825..43ea5dcce87 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-onshippingoptionchange-attribute.https.html @@ -7,8 +7,18 @@ <script src="/resources/testharnessreport.js"></script> <script> "use strict"; +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const basicCard = Object.freeze({ supportedMethods: "basic-card" }); -const defaultMethods = Object.freeze([basicCard]); +const defaultMethods = Object.freeze([basicCard, applePay]); const defaultDetails = Object.freeze({ total: { label: "Total", diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html index b1ed0d02886..11f75b1c862 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-shippingType-attribute.https.html @@ -8,8 +8,18 @@ <script> "use strict"; const paymentShipingTypes = Object.freeze(["delivery", "pickup", "shipping"]); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const basicCard = Object.freeze({ supportedMethods: "basic-card" }); -const defaultMethods = Object.freeze([basicCard]); +const defaultMethods = Object.freeze([basicCard, applePay]); const defaultDetails = Object.freeze({ total: { label: "", diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html index c6e69d4c587..3d362596c41 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-show-method.https.html @@ -10,7 +10,16 @@ "use strict"; const defaultMethods = Object.freeze([ { supportedMethods: "basic-card" }, - { supportedMethods: "https://apple.com/apple-pay" }, + { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } + }, ]); const defaultDetails = Object.freeze({ diff --git a/tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js b/tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js index 807f794e71e..3e4f5cfd36f 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js +++ b/tests/wpt/web-platform-tests/payment-request/payment-response/helpers.js @@ -1,10 +1,21 @@ setup({ explicit_done: true, explicit_timeout: true }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); + const validMethod = Object.freeze({ supportedMethods: "basic-card", }); -const validMethods = Object.freeze([validMethod]); +const validMethods = Object.freeze([validMethod, applePay]); const validAmount = Object.freeze({ currency: "USD", diff --git a/tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html b/tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html index 60dd9655dd5..516573c581a 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-response/rejects_if_not_active-manual.https.html @@ -11,7 +11,17 @@ setup({ explicit_done: true, explicit_timeout: true }); const validMethod = Object.freeze({ supportedMethods: "basic-card", }); -const validMethods = Object.freeze([validMethod]); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); +const validMethods = Object.freeze([validMethod, applePay]); const validAmount = Object.freeze({ currency: "USD", value: "5.00", diff --git a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html index f585e836f8d..06c1f7383a0 100644 --- a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html +++ b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html @@ -9,10 +9,20 @@ <link rel="help" href="https://w3c.github.io/payment-request/#dom-paymentrequest-show()"> <body> <script> +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const validMethod = Object.freeze({ supportedMethods: "basic-card", }); -const validMethods = Object.freeze([validMethod]); +const validMethods = Object.freeze([validMethod, applePay]); const validAmount = Object.freeze({ currency: "USD", value: "5.00", diff --git a/tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html b/tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html index 07b530657c3..711ba274360 100644 --- a/tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/shipping-address-changed-manual.https.html @@ -8,8 +8,18 @@ <script src="/resources/testharnessreport.js"></script> <script> setup({ explicit_done: true, explicit_timeout: true }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const validMethod = Object.freeze({ supportedMethods: "basic-card" }); -const validMethods = Object.freeze([validMethod]); +const validMethods = Object.freeze([validMethod, applePay]); const validAmount = Object.freeze({ currency: "USD", value: "5.00" }); const validTotal = Object.freeze({ label: "label", diff --git a/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html b/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html index 5c1028eec66..172413ff598 100644 --- a/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-rejects-manual.https.html @@ -24,6 +24,13 @@ const validMethodApplePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } }); // Methods diff --git a/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html b/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html index 70c97faaf7a..d41b1b39c98 100644 --- a/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/show-method-optional-promise-resolves-manual.https.html @@ -23,6 +23,13 @@ const validMethods = Object.freeze([ }, { supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } }, ]); diff --git a/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html b/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html index 12a1e0cef82..b50f18ecce3 100644 --- a/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html +++ b/tests/wpt/web-platform-tests/payment-request/show-method-postmessage-iframe.html @@ -3,7 +3,16 @@ "use strict"; const defaultMethods = Object.freeze([ { supportedMethods: "basic-card" }, - { supportedMethods: "https://apple.com/apple-pay" }, + { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } + }, ]); const defaultDetails = Object.freeze({ 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 e4ab550e418..05fce4f248e 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 @@ -14,7 +14,16 @@ setup({ const defaultMethods = Object.freeze([ { supportedMethods: "basic-card" }, - { supportedMethods: "https://apple.com/apple-pay" }, + { + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } + }, ]); const defaultDetails = Object.freeze({ diff --git a/tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html b/tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html index 06852bf8c47..8bab88212ba 100644 --- a/tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/updateWith-method-pmi-handling-manual.https.html @@ -8,11 +8,21 @@ <script> "use strict"; setup({ explicit_done: true, explicit_timeout: true }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const validMethod = Object.freeze({ supportedMethods: "https://:@wpt.fyi:443/payment-request", }); -const validMethods = Object.freeze([validMethod]); +const validMethods = Object.freeze([validMethod, applePay]); const validAmount = Object.freeze({ currency: "USD", diff --git a/tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html b/tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html index 0ba0405c52f..007fb681ceb 100644 --- a/tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/user-abort-algorithm-manual.https.html @@ -17,10 +17,20 @@ const validTotal = Object.freeze({ label: "Total due", amount: validAmount, }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const validMethod = Object.freeze({ supportedMethods: "basic-card", }); -const validMethods = Object.freeze([validMethod]); +const validMethods = Object.freeze([validMethod, applePay]); const validDetails = Object.freeze({ total: validTotal, }); diff --git a/tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html b/tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html index abaf6cb4e85..3d7b8a08ebb 100644 --- a/tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/user-accepts-payment-request-algo-manual.https.html @@ -8,13 +8,23 @@ <script src="/resources/testharnessreport.js"></script> <script> setup({ explicit_done: true, explicit_timeout: true }); +const applePay = Object.freeze({ + supportedMethods: "https://apple.com/apple-pay", + data: { + version: 3, + merchantIdentifier: "merchant.com.example", + countryCode: "US", + merchantCapabilities: ["supports3DS"], + supportedNetworks: ["visa"], + } +}); const basicCardMethod = Object.freeze({ supportedMethods: "basic-card", }); const validMethod = Object.freeze({ supportedMethods: "this-is-just-for-testings-will-never-match", }); -const methods = Object.freeze([basicCardMethod, validMethod]); +const methods = Object.freeze([basicCardMethod, validMethod, applePay]); const validAmount = Object.freeze({ currency: "USD", value: "5.00", diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh b/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh index b351a4296de..7c953940cb3 100755 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh @@ -3,10 +3,12 @@ sxg_version=1b3 certfile=127.0.0.1.sxg.pem keyfile=127.0.0.1.sxg.key inner_url_origin=https://127.0.0.1:8444 -# TODO: Stop hard-coding "web-platform.test" in certUrl when generating -# Signed Exchanges on the fly. -cert_url_origin=https://web-platform.test:8444 -sxg_content_type='content-type: application/signed-exchange;v=b2' +# TODO: Stop hard-coding "web-platform.test" when generating Signed Exchanges on +# the fly. +wpt_test_origin=https://web-platform.test:8444 +wpt_test_remote_origin=https://www1.web-platform.test:8444 +cert_url_origin=$wpt_test_origin +sxg_content_type='content-type: application/signed-exchange;v=b3' set -e @@ -38,6 +40,89 @@ gen-signedexchange \ -o sxg/sxg-location.sxg \ -miRecordSize 100 +# A signed exchange of unsupported version. +gen-signedexchange \ + -version 1b2 \ + -uri $inner_url_origin/signed-exchange/resources/inner-url.html \ + -status 200 \ + -content sxg-location.html \ + -certificate $certfile \ + -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \ + -validityUrl $inner_url_origin/signed-exchange/resources/resource.validity.msg \ + -privateKey $keyfile \ + -date 2018-04-01T00:00:00Z \ + -expire 168h \ + -o sxg-version1b2.sxg \ + -miRecordSize 100 + +# A valid Signed Exchange for testing referrer which logical origin is the wpt +# test origin. +gen-signedexchange \ + -version $sxg_version \ + -uri $wpt_test_origin/signed-exchange/resources/inner-url.html \ + -status 200 \ + -content sxg-location.html \ + -certificate $certfile \ + -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \ + -validityUrl $wpt_test_origin/resource.validity.msg \ + -privateKey $keyfile \ + -date 2018-04-01T00:00:00Z \ + -expire 168h \ + -o sxg/sxg-referrer-same-origin.sxg \ + -miRecordSize 100 + +# A valid Signed Exchange for testing referrer which logical origin is the wpt +# test remote origin. +gen-signedexchange \ + -version $sxg_version \ + -uri $wpt_test_remote_origin/signed-exchange/resources/inner-url.html \ + -status 200 \ + -content sxg-location.html \ + -certificate $certfile \ + -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \ + -validityUrl $wpt_test_remote_origin/resource.validity.msg \ + -privateKey $keyfile \ + -date 2018-04-01T00:00:00Z \ + -expire 168h \ + -o sxg/sxg-referrer-remote-origin.sxg \ + -miRecordSize 100 + +# A invalid Signed Exchange for testing referrer which logical origin is the wpt +# test origin. Response has Cache-Control: no-store header. +gen-signedexchange \ + -version $sxg_version \ + -uri $wpt_test_origin/signed-exchange/resources/inner-url.html \ + -status 200 \ + -responseHeader "Cache-Control: no-store" \ + -content sxg-location.html \ + -certificate $certfile \ + -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \ + -validityUrl $wpt_test_origin/resource.validity.msg \ + -privateKey $keyfile \ + -date 2018-04-01T00:00:00Z \ + -expire 168h \ + -o sxg/invalid-sxg-referrer-same-origin.sxg \ + -miRecordSize 100 \ + -ignoreErrors true + +# A invalid Signed Exchange for testing referrer which logical origin is the wpt +# test remote origin. Response has Cache-Control: no-store header. +gen-signedexchange \ + -version $sxg_version \ + -uri $wpt_test_remote_origin/signed-exchange/resources/inner-url.html \ + -status 200 \ + -responseHeader "Cache-Control: no-store" \ + -content sxg-location.html \ + -certificate $certfile \ + -certUrl $cert_url_origin/signed-exchange/resources/$certfile.cbor \ + -validityUrl $wpt_test_remote_origin/resource.validity.msg \ + -privateKey $keyfile \ + -date 2018-04-01T00:00:00Z \ + -expire 168h \ + -o sxg/invalid-sxg-referrer-remote-origin.sxg \ + -miRecordSize 100 \ + -ignoreErrors true + # For check-cert-request.tentative.html gen-signedexchange \ -version $sxg_version \ @@ -66,7 +151,8 @@ gen-signedexchange \ -date 2018-04-01T00:00:00Z \ -expire 168h \ -o sxg/sxg-invalid-validity-url.sxg \ - -miRecordSize 100 + -miRecordSize 100 \ + -ignoreErrors true # certUrl is 404 and fallback URL is another signed exchange. gen-signedexchange \ @@ -81,7 +167,8 @@ gen-signedexchange \ -date 2018-04-01T00:00:00Z \ -expire 168h \ -o sxg/fallback-to-another-sxg.sxg \ - -miRecordSize 100 + -miRecordSize 100 \ + -ignoreErrors true # Nested signed exchange. gen-signedexchange \ @@ -97,7 +184,8 @@ gen-signedexchange \ -date 2018-04-01T00:00:00Z \ -expire 168h \ -o sxg/nested-sxg.sxg \ - -miRecordSize 100 + -miRecordSize 100 \ + -ignoreErrors true # Fallback URL has non-ASCII UTF-8 characters. gen-signedexchange \ @@ -113,7 +201,8 @@ gen-signedexchange \ -date 2018-04-01T00:00:00Z \ -expire 168h \ -o sxg/sxg-utf8-inner-url.sxg \ - -miRecordSize 100 + -miRecordSize 100 \ + -ignoreErrors true # Fallback URL has invalid UTF-8 sequence. gen-signedexchange \ @@ -129,7 +218,8 @@ gen-signedexchange \ -date 2018-04-01T00:00:00Z \ -expire 168h \ -o sxg/sxg-invalid-utf8-inner-url.sxg \ - -miRecordSize 100 + -miRecordSize 100 \ + -ignoreErrors true # Fallback URL has UTF-8 BOM. gen-signedexchange \ @@ -145,7 +235,8 @@ gen-signedexchange \ -date 2018-04-01T00:00:00Z \ -expire 168h \ -o sxg/sxg-inner-url-bom.sxg \ - -miRecordSize 100 + -miRecordSize 100 \ + -ignoreErrors true # Response has Cache-Control: no-store header. gen-signedexchange \ @@ -161,7 +252,8 @@ gen-signedexchange \ -date 2018-04-01T00:00:00Z \ -expire 168h \ -o sxg/sxg-noncacheable.sxg \ - -miRecordSize 100 + -miRecordSize 100 \ + -ignoreErrors true # Response has a strict-transport-security header. gen-signedexchange \ diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html b/tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html index 628a18afa3f..5b247bbfe99 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/inner-url.html @@ -2,6 +2,9 @@ <title>Content of fallback URL</title> <script> window.addEventListener('message', (event) => { - event.data.port.postMessage({location: document.location.href, is_fallback: true}); + event.data.port.postMessage({ + location: document.location.href, + referrer: document.referrer, + is_fallback: true}); }, false); </script> diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html index 39a475ebd07..b3ebd2bde7a 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-location.html @@ -2,6 +2,9 @@ <title>Content of SignedHTTPExchange</title> <script> window.addEventListener('message', (event) => { - event.data.port.postMessage({location: document.location.href, is_fallback: false}); + event.data.port.postMessage({ + location: document.location.href, + referrer: document.referrer, + is_fallback: false}); }, false); </script> diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js index b31bf98c9b1..0d0e263fd62 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js @@ -1,12 +1,12 @@ // Opens |url| in an iframe, establish a message channel with it, and waits for // a message from the frame content. Returns a promise that resolves with the // data of the message, or rejects on 2000ms timeout. -function openSXGInIframeAndWaitForMessage(test_object, url) { +function openSXGInIframeAndWaitForMessage(test_object, url, referrerPolicy) { return new Promise(async (resolve, reject) => { // We can't catch the network error on iframe. So we use the timer. test_object.step_timeout(() => reject('timeout'), 2000); - const frame = await withIframe(url, 'sxg_iframe'); + const frame = await withIframe(url, 'sxg_iframe', referrerPolicy); const channel = new MessageChannel(); channel.port1.onmessage = (event) => resolve(event.data); frame.contentWindow.postMessage( @@ -14,11 +14,14 @@ function openSXGInIframeAndWaitForMessage(test_object, url) { }); } -function withIframe(url, name) { +function withIframe(url, name, referrerPolicy) { return new Promise((resolve, reject) => { const frame = document.createElement('iframe'); frame.src = url; frame.name = name; + if (referrerPolicy !== undefined) { + frame.referrerPolicy = referrerPolicy; + } frame.onload = () => resolve(frame); frame.onerror = () => reject('failed to load ' + url); document.body.appendChild(frame); diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg Binary files differnew file mode 100644 index 00000000000..092eb9d38ff --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg.headers b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg.headers new file mode 100644 index 00000000000..ca41178420c --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-version1b2.sxg.headers @@ -0,0 +1,2 @@ +Content-Type: application/signed-exchange;v=b2 +X-Content-Type-Options: nosniff diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxg Binary files differindex d412f463822..8129b5479c3 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/check-cert-request.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxg Binary files differindex 784b44abde9..b5dcb6b86de 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/fallback-to-another-sxg.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg Binary files differnew file mode 100644 index 00000000000..db08ad072ca --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-remote-origin.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg Binary files differnew file mode 100644 index 00000000000..5057e9ddf43 --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/invalid-sxg-referrer-same-origin.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxg Binary files differindex c4eaf771c21..6d8538882d2 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/nested-sxg.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxg Binary files differindex 68650b8c368..8f57c63dfab 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-hsts.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxg Binary files differindex 88e617d5fbb..0093eb1d37d 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-inner-url-bom.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg Binary files differindex d045d5b8829..65357e14ac6 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-utf8-inner-url.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg Binary files differindex 628f6ccf283..62e88d63864 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-invalid-validity-url.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxg Binary files differindex 3540bfea63c..1678b751bcb 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-location.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxg Binary files differindex 38aa45980ca..88439982f60 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-noncacheable.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg Binary files differnew file mode 100644 index 00000000000..00aa755efc3 --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-remote-origin.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg Binary files differnew file mode 100644 index 00000000000..cc7793efa28 --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-referrer-same-origin.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg Binary files differindex 914a8458b0a..3edf285f1bd 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-utf8-inner-url.sxg diff --git a/tests/wpt/web-platform-tests/signed-exchange/sxg-referrer.tentative.https.html b/tests/wpt/web-platform-tests/signed-exchange/sxg-referrer.tentative.https.html new file mode 100644 index 00000000000..3be9b1ff9b4 --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/sxg-referrer.tentative.https.html @@ -0,0 +1,284 @@ +<!DOCTYPE html> +<title>Referrer of SignedHTTPExchange</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="./resources/sxg-util.js"></script> +<body> +<script> +(() => { + const SAME_ORIGIN = get_host_info().HTTPS_ORIGIN; + const REMOTE_ORIGIN = get_host_info().HTTPS_REMOTE_ORIGIN; + const SAME_ORIGIN_SXG = 'sxg-referrer-same-origin.sxg'; + const REMOTE_ORIGIN_SXG = 'sxg-referrer-remote-origin.sxg'; + const TEST_CASES = [ + // Physical origin = same origin. Logical origin = same origin. + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: undefined, + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'no-referrer', + expectedReferrer: '' + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'no-referrer-when-downgrade', + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'same-origin', + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'strict-origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'strict-origin-when-cross-origin', + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'unsafe-url', + expectedReferrer: document.location.href + }, + + // Physical origin = same origin. Logical origin = remote origin. + { + origin: SAME_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: undefined, + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'no-referrer', + expectedReferrer: '' + }, + { + origin: SAME_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'no-referrer-when-downgrade', + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: SAME_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'same-origin', + expectedReferrer: '' + }, + { + origin: SAME_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'strict-origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: SAME_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'strict-origin-when-cross-origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: SAME_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'unsafe-url', + expectedReferrer: document.location.href + }, + + // Physical origin = remote origin. Logical origin = same origin. + { + origin: REMOTE_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: undefined, + expectedReferrer: document.location.href + }, + { + origin: REMOTE_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'no-referrer', + expectedReferrer: '' + }, + { + origin: REMOTE_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'no-referrer-when-downgrade', + expectedReferrer: document.location.href + }, + { + origin: REMOTE_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: REMOTE_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'same-origin', + expectedReferrer: '' + }, + { + origin: REMOTE_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'strict-origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: REMOTE_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'strict-origin-when-cross-origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: REMOTE_ORIGIN, + sxg: SAME_ORIGIN_SXG, + referrerPolicy: 'unsafe-url', + expectedReferrer: document.location.href + }, + + // Physical origin = remote origin. Logical origin = remote origin. + { + origin: REMOTE_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: undefined, + expectedReferrer: document.location.href + }, + { + origin: REMOTE_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'no-referrer', + expectedReferrer: '' + }, + { + origin: REMOTE_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'no-referrer-when-downgrade', + expectedReferrer: document.location.href + }, + { + origin: REMOTE_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: REMOTE_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'same-origin', + expectedReferrer: '' + }, + { + origin: REMOTE_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'strict-origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: REMOTE_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'strict-origin-when-cross-origin', + expectedReferrer: document.location.origin + '/' + }, + { + origin: REMOTE_ORIGIN, + sxg: REMOTE_ORIGIN_SXG, + referrerPolicy: 'unsafe-url', + expectedReferrer: document.location.href + }, + + // Referrer-Policy header in outer SXG response. + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,no-referrer)', + referrerPolicy: undefined, + expectedReferrer: '' + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG + + '?pipe=header(Referrer-Policy,no-referrer-when-downgrade)', + referrerPolicy: undefined, + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,origin)', + referrerPolicy: undefined, + expectedReferrer: document.location.origin + '/' + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,same-origin)', + referrerPolicy: undefined, + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,strict-origin)', + referrerPolicy: undefined, + expectedReferrer: document.location.origin + '/' + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG + + '?pipe=header(Referrer-Policy,strict-origin-when-cross-origin)', + referrerPolicy: undefined, + expectedReferrer: document.location.href + }, + { + origin: SAME_ORIGIN, + sxg: SAME_ORIGIN_SXG + '?pipe=header(Referrer-Policy,unsafe-url)', + referrerPolicy: undefined, + expectedReferrer: document.location.href + }, + ]; + for (const i in TEST_CASES) { + const test_case = TEST_CASES[i]; + promise_test(async (t) => { + const sxgUrl = test_case.origin + '/signed-exchange/resources/sxg/' + + test_case.sxg; + const message = + await openSXGInIframeAndWaitForMessage( + t, sxgUrl, test_case.referrerPolicy); + assert_false(message.is_fallback); + assert_equals(message.referrer, test_case.expectedReferrer); + + const invalidSxgUrl = + test_case.origin + '/signed-exchange/resources/sxg/invalid-' + + test_case.sxg; + const fallbackMessage = + await openSXGInIframeAndWaitForMessage( + t, invalidSxgUrl, test_case.referrerPolicy); + assert_true(fallbackMessage.is_fallback); + assert_equals(fallbackMessage.referrer, test_case.expectedReferrer); + }, 'Referrer of SignedHTTPExchange test : ' + JSON.stringify(test_case)); + } +})(); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/signed-exchange/sxg-version1b2.tentative.html b/tests/wpt/web-platform-tests/signed-exchange/sxg-version1b2.tentative.html new file mode 100644 index 00000000000..43b340dbb79 --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/sxg-version1b2.tentative.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<title>Loading SignedHTTPExchange of unsupported version must fail</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> +<script src="./resources/sxg-util.js"></script> +<body> +<p>Note: This test FAILs if your browser supports Signed Exchange version 1b2.</p> +<script> +promise_test(async (t) => { + const sxgUrl = get_host_info().HTTPS_ORIGIN + + '/signed-exchange/resources/sxg-version1b2.sxg'; + const message = await openSXGInIframeAndWaitForMessage(t, sxgUrl); + const innerURL = innerURLOrigin() + + '/signed-exchange/resources/inner-url.html'; + assert_equals(message.location, innerURL); + assert_true(message.is_fallback); +}, 'Loading SignedHTTPExchange of unsupported version must fail and fallback redirect.'); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/web-locks/query-order.tentative.https.any.js b/tests/wpt/web-platform-tests/web-locks/query-order.tentative.https.any.js deleted file mode 100644 index 3317cd02eb9..00000000000 --- a/tests/wpt/web-platform-tests/web-locks/query-order.tentative.https.any.js +++ /dev/null @@ -1,110 +0,0 @@ -// META: title=Web Locks API: navigator.locks.query ordering -// META: script=resources/helpers.js -// META: global=window,dedicatedworker,sharedworker,serviceworker - -'use strict'; - -// Grab a lock and hold until a release function is called. Resolves -// to a release function. -function getLockAndHoldUntilReleased(name, options) { - let release; - const promise = new Promise(resolve => { release = resolve; }); - return new Promise(resolve => { - navigator.locks.request(name, options || {}, lock => { - resolve(release); - return promise; - }).catch(_ => {}); - }); -} - -promise_test(async t => { - const res1 = uniqueName(t); - const res2 = uniqueName(t); - const res3 = uniqueName(t); - - // These will never be released. - await Promise.all([ - getLockAndHoldUntilReleased(res1), - getLockAndHoldUntilReleased(res2), - getLockAndHoldUntilReleased(res3) - ]); - - // These requests should be blocked. - navigator.locks.request(res3, {mode: 'shared'}, lock => {}); - navigator.locks.request(res2, {mode: 'shared'}, lock => {}); - navigator.locks.request(res1, {mode: 'shared'}, lock => {}); - - const state = await navigator.locks.query(); - - const relevant_pending_names = state.pending.map(lock => lock.name) - .filter(name => [res1, res2, res3].includes(name)); - - assert_array_equals(relevant_pending_names, [res3, res2, res1], - 'Pending locks should appear in order.'); -}, 'Requests appear in state in order made'); - -promise_test(async t => { - const res1 = uniqueName(t); - const res2 = uniqueName(t); - const res3 = uniqueName(t); - - // These should be granted, and will be held until released. - const [release1, release2, release3] = await Promise.all([ - getLockAndHoldUntilReleased(res1), - getLockAndHoldUntilReleased(res2), - getLockAndHoldUntilReleased(res3) - ]); - - // These requests should be blocked. - const requests = [ - getLockAndHoldUntilReleased(res1), - getLockAndHoldUntilReleased(res2), - getLockAndHoldUntilReleased(res3) - ]; - - // Ensure the requests have had a chance to get queued by - // waiting for something else to make it through the queue. - await navigator.locks.request(uniqueName(t), lock => {}); - - // Now release the previous holders. - release2(); - release3(); - release1(); - - // Wait until the subsequent requests make it through. - await Promise.all(requests); - - const state = await navigator.locks.query(); - const relevant_held_names = state.held.map(lock => lock.name) - .filter(name => [res1, res2, res3].includes(name)); - - assert_array_equals(relevant_held_names, [res2, res3, res1], - 'Held locks should appear in granted order.'); -}, 'Held locks appear in state in order granted'); - -promise_test(async t => { - const res1 = uniqueName(t); - const res2 = uniqueName(t); - const res3 = uniqueName(t); - - // These should be granted, and will be held until stolen. - await Promise.all([ - getLockAndHoldUntilReleased(res1), - getLockAndHoldUntilReleased(res2), - getLockAndHoldUntilReleased(res3) - ]); - - // Steal in a different order. - await Promise.all([ - getLockAndHoldUntilReleased(res3, {steal: true}), - getLockAndHoldUntilReleased(res1, {steal: true}), - getLockAndHoldUntilReleased(res2, {steal: true}) - ]); - - const state = await navigator.locks.query(); - const relevant_held_names = state.held.map(lock => lock.name) - .filter(name => [res1, res2, res3].includes(name)); - - assert_array_equals(relevant_held_names, [res3, res1, res2], - 'Held locks should appear in granted order.'); -}, 'Held locks appear in state in order granted, including when stolen'); diff --git a/tests/wpt/web-platform-tests/web-locks/query-ordering.tentative.https.html b/tests/wpt/web-platform-tests/web-locks/query-ordering.tentative.https.html new file mode 100644 index 00000000000..bbbee3880b7 --- /dev/null +++ b/tests/wpt/web-platform-tests/web-locks/query-ordering.tentative.https.html @@ -0,0 +1,130 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Web Locks API: navigator.locks.query ordering</title> +<link rel=help href="https://wicg.github.io/web-locks/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/helpers.js"></script> +<style>iframe { display: none; }</style> +<script> +'use strict'; + +// Grab a lock and hold until a release function is called. Resolves +// to a release function. +function getLockAndHoldUntilReleased(name, options) { + let release; + const promise = new Promise(resolve => { release = resolve; }); + return new Promise(resolve => { + navigator.locks.request(name, options || {}, lock => { + resolve(release); + return promise; + }).catch(_ => {}); + }); +} + +// Returns a promise resolved by the next message event. +function nextMessage() { + return new Promise(resolve => { + window.addEventListener('message', event => { + resolve(event.data); + }, {once: true}); + }); +} + +// Tests the ordering constraints on the requested lock state returned by +// navigator.locks.query(). Three separate iframes are instantiated to make +// lock requests on the same resource, first in one order and then in another, +// different order. For each set of requests, it is verified that the requests +// appear in the result of navigator.locks.query() in the same order in which +// they were made. +// +// It is necessary to use separate iframes here so that the lock requests have +// distinguishable client_ids (otherwise it would not be possible to +// distinguish the requests and thus impossible to verify ordering). +promise_test(async testCase => { + const resourceName = uniqueName(testCase); + + // Set up clients. + const frame1 = await iframe('resources/iframe.html'); + const frame2 = await iframe('resources/iframe.html'); + const frame3 = await iframe('resources/iframe.html'); + testCase.add_cleanup(() => { frame1.remove(); }); + testCase.add_cleanup(() => { frame2.remove(); }); + testCase.add_cleanup(() => { frame3.remove(); }); + + // Collect the client ids. + const clientId1 = + (await postToFrameAndWait(frame1, {op: 'client_id', + name: resourceName})).client_id; + const clientId2 = + (await postToFrameAndWait(frame2, {op: 'client_id', + name: resourceName})).client_id; + const clientId3 = + (await postToFrameAndWait(frame3, {op: 'client_id', + name: resourceName})).client_id; + + // Preemptively take the lock. + const firstRequestGroupReleaseFunction = + await getLockAndHoldUntilReleased(resourceName); + + // Queue the first group of lock requests from the different clients. These + // will be blocked until firstRequestGroupReleaseFunction() is called. + let lockId1; + let lockId2; + const lockPromise1 = + postToFrameAndWait(frame1, {op: 'request', name: resourceName}) + .then(val => {lockId1 = val.lock_id;}); + const lockPromise2 = + postToFrameAndWait(frame2, {op: 'request', name: resourceName}) + .then(val => {lockId2 = val.lock_id;}); + + // This third request will later be granted and held in order to block a + // second group of requests to test a different client ordering. It is not + // meant to be released. + postToFrameAndWait(frame3, {op: 'request', name: resourceName}); + + // Request and wait for the release of a separate lock to ensure all previous + // requests are processed. + const checkpointName = uniqueName(testCase, 'checkpoint'); + const checkpointId = (await postToFrameAndWait( + frame3, + {op: 'request', name: checkpointName})).lock_id; + await postToFrameAndWait(frame3, {op: 'release', lock_id: checkpointId}); + + // Query the state and test the ordering of requested locks. + const state = await navigator.locks.query(); + const relevant_pending_ids = state.pending + .filter(lock => [clientId1, clientId2, clientId3].includes(lock.clientId)) + .map(lock => lock.clientId); + assert_array_equals( + [clientId1, clientId2, clientId3], + relevant_pending_ids, + 'Querying the state should return requested locks in the order they were ' + + 'requested.'); + + // Add the second group of requests from the clients in a new order. + postToFrameAndWait(frame3, {op: 'request', name: resourceName}); + postToFrameAndWait(frame1, {op: 'request', name: resourceName}); + postToFrameAndWait(frame2, {op: 'request', name: resourceName}); + + // Release locks such that only the newly added locks are requested. This + // acts like a checkpoint for the newly queued requests. + firstRequestGroupReleaseFunction(); + await lockPromise1; + await postToFrameAndWait(frame1, {op: 'release', lock_id: lockId1}); + await lockPromise2; + await postToFrameAndWait(frame2, {op: 'release', lock_id: lockId2}); + + // Query the state and test the new ordering. + const state2 = await navigator.locks.query(); + const relevant_pending_ids2 = state2.pending + .filter(lock => [clientId1, clientId2, clientId3].includes(lock.clientId)) + .map(lock => lock.clientId); + assert_array_equals( + [clientId3, clientId1, clientId2], + relevant_pending_ids2, + 'Querying the state should return requested locks in the order they were ' + + 'requested.'); + +}, 'Requests appear in state in order made.'); +</script> diff --git a/tests/wpt/web-platform-tests/web-locks/resources/helpers.js b/tests/wpt/web-platform-tests/web-locks/resources/helpers.js index d6a4af45fa7..9723ff4f1d8 100644 --- a/tests/wpt/web-platform-tests/web-locks/resources/helpers.js +++ b/tests/wpt/web-platform-tests/web-locks/resources/helpers.js @@ -5,8 +5,8 @@ // test case name. This is useful to avoid lock interference between // test cases. let res_num = 0; - self.uniqueName = testCase => { - return `${self.location.pathname}-${testCase.name}-${++res_num}`; + self.uniqueName = (testCase, prefix) => { + return `${self.location.pathname}-${prefix}-${testCase.name}-${++res_num}`; }; // Inject an iframe showing the given url into the page, and resolve diff --git a/tests/wpt/web-platform-tests/web-locks/resources/iframe.html b/tests/wpt/web-platform-tests/web-locks/resources/iframe.html index d3799f44f96..ba63c77bae5 100644 --- a/tests/wpt/web-platform-tests/web-locks/resources/iframe.html +++ b/tests/wpt/web-platform-tests/web-locks/resources/iframe.html @@ -38,6 +38,15 @@ self.addEventListener('message', e => { held.delete(e.data.lock_id); respond({ack: 'release', lock_id: e.data.lock_id}); break; + + case 'client_id': + navigator.locks.request(e.data.name, async lock => { + const lock_state = await navigator.locks.query(); + const held_lock = + lock_state.held.filter(l => l.name === lock.name)[0]; + respond({ack: 'client_id', client_id: held_lock.clientId}); + }); + break; } }); </script> diff --git a/tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js b/tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js index 5b8acbbbebc..e0b6e4eabd6 100644 --- a/tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js +++ b/tests/wpt/web-platform-tests/web-locks/signal.tentative.https.any.js @@ -50,8 +50,10 @@ promise_test(async t => { // Verify the request is enqueued: const state = await navigator.locks.query(); - assert_equals(state.held.filter(lock => lock.name === res).length, 1); - assert_equals(state.pending.filter(lock => lock.name === res).length, 1); + assert_equals(state.held.filter(lock => lock.name === res).length, 1, + 'Number of held locks'); + assert_equals(state.pending.filter(lock => lock.name === res).length, 1, + 'Number of pending locks'); const rejected = promise_rejects( t, 'AbortError', promise, 'Request should reject with AbortError'); @@ -76,8 +78,10 @@ promise_test(async t => { // Verify the request is enqueued: const state = await navigator.locks.query(); - assert_equals(state.held.filter(lock => lock.name === res).length, 1); - assert_equals(state.pending.filter(lock => lock.name === res).length, 1); + assert_equals(state.held.filter(lock => lock.name === res).length, 1, + 'Number of held locks'); + assert_equals(state.pending.filter(lock => lock.name === res).length, 1, + 'Number of pending locks'); const rejected = promise_rejects( t, 'AbortError', promise, 'Request should reject with AbortError'); |