diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-02-20 23:53:12 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-20 23:53:12 -0500 |
commit | 0dda1156094dae5ff47ab6fcf316cdc5547fff4c (patch) | |
tree | 91b60b184a9bec41767c53517ff80e777eb33f46 | |
parent | 6bb98ad17a617ffda66ba063082d2e8ad5a5d12f (diff) | |
parent | 7680aab7252e55815b75685746c783744e0ac783 (diff) | |
download | servo-0dda1156094dae5ff47ab6fcf316cdc5547fff4c.tar.gz servo-0dda1156094dae5ff47ab6fcf316cdc5547fff4c.zip |
Auto merge of #22919 - servo-wpt-sync:wpt_update_20-02-2019, r=jdm
Sync WPT with upstream (20-02-2019)
Automated downstream sync of changes from upstream as of 20-02-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/22919)
<!-- Reviewable:end -->
60 files changed, 1584 insertions, 116 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index fffdafa6a89..ca67f6af07f 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -137677,6 +137677,42 @@ {} ] ], + "css/css-tables/subpixel-collapsed-borders-001.html": [ + [ + "/css/css-tables/subpixel-collapsed-borders-001.html", + [ + [ + "/css/css-tables/subpixel-collapsed-borders-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-tables/subpixel-collapsed-borders-002.html": [ + [ + "/css/css-tables/subpixel-collapsed-borders-002.html", + [ + [ + "/css/css-tables/subpixel-collapsed-borders-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-tables/subpixel-collapsed-borders-003.html": [ + [ + "/css/css-tables/subpixel-collapsed-borders-003.html", + [ + [ + "/css/css-tables/subpixel-collapsed-borders-003-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-tables/subpixel-table-cell-height-001.html": [ [ "/css/css-tables/subpixel-table-cell-height-001.html", @@ -193089,6 +193125,18 @@ {} ] ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html": [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html", + [ + [ + "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html", + "==" + ] + ], + {} + ] + ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html": [ [ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html", @@ -194305,6 +194353,114 @@ {} ] ], + "mathml/presentation-markup/fractions/frac-bar-001.html": [ + [ + "/mathml/presentation-markup/fractions/frac-bar-001.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-bar-001-ref.html", + "==" + ] + ], + {} + ] + ], + "mathml/presentation-markup/fractions/frac-color-001.html": [ + [ + "/mathml/presentation-markup/fractions/frac-color-001.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-color-001-notref.html", + "!=" + ] + ], + {} + ] + ], + "mathml/presentation-markup/fractions/frac-color-002.html": [ + [ + "/mathml/presentation-markup/fractions/frac-color-002.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-color-002-ref.html", + "==" + ] + ], + {} + ] + ], + "mathml/presentation-markup/fractions/frac-linethickness-001.html": [ + [ + "/mathml/presentation-markup/fractions/frac-linethickness-001.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html", + "==" + ] + ], + {} + ] + ], + "mathml/presentation-markup/fractions/frac-linethickness-002.html": [ + [ + "/mathml/presentation-markup/fractions/frac-linethickness-002.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html", + "==" + ] + ], + {} + ] + ], + "mathml/presentation-markup/fractions/frac-linethickness-003.html": [ + [ + "/mathml/presentation-markup/fractions/frac-linethickness-003.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html", + "!=" + ] + ], + {} + ] + ], + "mathml/presentation-markup/fractions/frac-mrow-001.html": [ + [ + "/mathml/presentation-markup/fractions/frac-mrow-001.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-mrow-001-ref.html", + "==" + ] + ], + {} + ] + ], + "mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html": [ + [ + "/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html", + "==" + ] + ], + {} + ] + ], + "mathml/presentation-markup/fractions/frac-visibility-001.html": [ + [ + "/mathml/presentation-markup/fractions/frac-visibility-001.html", + [ + [ + "/mathml/presentation-markup/fractions/frac-visibility-001-ref.html", + "==" + ] + ], + {} + ] + ], "mathml/presentation-markup/spaces/space-2.html": [ [ "/mathml/presentation-markup/spaces/space-2.html", @@ -205742,6 +205898,11 @@ {} ] ], + "client-hints/resources/sec-ch-ua.py": [ + [ + {} + ] + ], "client-hints/resources/square.png": [ [ {} @@ -271047,6 +271208,16 @@ {} ] ], + "css/css-tables/subpixel-collapsed-borders-003-ref.html": [ + [ + {} + ] + ], + "css/css-tables/subpixel-collapsed-borders-ref.html": [ + [ + {} + ] + ], "css/css-tables/subpixel-table-cell-height-001-ref.html": [ [ {} @@ -298787,6 +298958,11 @@ {} ] ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html": [ + [ + {} + ] + ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html": [ [ {} @@ -303112,6 +303288,51 @@ {} ] ], + "mathml/presentation-markup/fractions/frac-bar-001-ref.html": [ + [ + {} + ] + ], + "mathml/presentation-markup/fractions/frac-color-001-notref.html": [ + [ + {} + ] + ], + "mathml/presentation-markup/fractions/frac-color-002-ref.html": [ + [ + {} + ] + ], + "mathml/presentation-markup/fractions/frac-linethickness-001-ref.html": [ + [ + {} + ] + ], + "mathml/presentation-markup/fractions/frac-linethickness-002-ref.html": [ + [ + {} + ] + ], + "mathml/presentation-markup/fractions/frac-linethickness-003-notref.html": [ + [ + {} + ] + ], + "mathml/presentation-markup/fractions/frac-mrow-001-ref.html": [ + [ + {} + ] + ], + "mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html": [ + [ + {} + ] + ], + "mathml/presentation-markup/fractions/frac-visibility-001-ref.html": [ + [ + {} + ] + ], "mathml/presentation-markup/spaces/space-2-ref.html": [ [ {} @@ -323982,6 +324203,11 @@ {} ] ], + "webdriver/tests/send_alert_text/conftest.py": [ + [ + {} + ] + ], "webdriver/tests/set_timeouts/__init__.py": [ [ {} @@ -338580,6 +338806,18 @@ {} ] ], + "client-hints/sec-ch-ua.http.html": [ + [ + "/client-hints/sec-ch-ua.http.html", + {} + ] + ], + "client-hints/sec-ch-ua.https.html": [ + [ + "/client-hints/sec-ch-ua.https.html", + {} + ] + ], "clipboard-apis/async-interfaces.https.html": [ [ "/clipboard-apis/async-interfaces.https.html", @@ -376652,12 +376890,6 @@ {} ] ], - "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html": [ - [ - "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html", - {} - ] - ], "html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html": [ [ "/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html", @@ -411214,12 +411446,52 @@ {} ] ], + "reporting/bufferSize.html": [ + [ + "/reporting/bufferSize.html", + { + "testdriver": true + } + ] + ], + "reporting/disconnect.html": [ + [ + "/reporting/disconnect.html", + { + "testdriver": true + } + ] + ], + "reporting/generateTestReport.html": [ + [ + "/reporting/generateTestReport.html", + { + "testdriver": true + } + ] + ], "reporting/idlharness.window.js": [ [ "/reporting/idlharness.window.html", {} ] ], + "reporting/nestedReport.html": [ + [ + "/reporting/nestedReport.html", + { + "testdriver": true + } + ] + ], + "reporting/order.html": [ + [ + "/reporting/order.html", + { + "testdriver": true + } + ] + ], "requestidlecallback/basic.html": [ [ "/requestidlecallback/basic.html", @@ -425626,6 +425898,12 @@ {} ] ], + "webxr/xrFrame_lifetime.https.html": [ + [ + "/webxr/xrFrame_lifetime.https.html", + {} + ] + ], "webxr/xrSession_cancelAnimationFrame.https.html": [ [ "/webxr/xrSession_cancelAnimationFrame.https.html", @@ -449828,7 +450106,7 @@ }, "paths": { ".azure-pipelines.yml": [ - "5bd9fd67a1d5cdf1f929f1dd38e606d3e4f9fb99", + "cb204cabe288508280622c59b1d30bf18b74c1a1", "support" ], ".codecov.yml": [ @@ -461083,10 +461361,22 @@ "2dd18068427ccec7f75ecbdc7fa4e19c339f53a7", "support" ], + "client-hints/resources/sec-ch-ua.py": [ + "a14a27dadf9e333784a5c636c821634b387e475f", + "support" + ], "client-hints/resources/square.png": [ "01c9666a8de9d5535615aff830810e5df4b2156f", "support" ], + "client-hints/sec-ch-ua.http.html": [ + "e333c605301e621133ee5e6f3d01e2525d5c058a", + "testharness" + ], + "client-hints/sec-ch-ua.https.html": [ + "b293745365a611475697aaa7b66a8a809cad7b3c", + "testharness" + ], "clipboard-apis/META.yml": [ "ecbac54806cb0d3a915c551f0a684fdc84acdd5e", "support" @@ -577063,6 +577353,26 @@ "a24556aa0dedfab35ff7792f03b804f44c0f4160", "reftest" ], + "css/css-tables/subpixel-collapsed-borders-001.html": [ + "a71f5cc698b74a518411e57974577b4f4c4dccda", + "reftest" + ], + "css/css-tables/subpixel-collapsed-borders-002.html": [ + "8f8292cd22becd3ddba61f5205828596a8995e44", + "reftest" + ], + "css/css-tables/subpixel-collapsed-borders-003-ref.html": [ + "78e0be389393e235781549cd90ea961385ec5c68", + "support" + ], + "css/css-tables/subpixel-collapsed-borders-003.html": [ + "358562cbd7ff49f43c234db502513faabc8390d1", + "reftest" + ], + "css/css-tables/subpixel-collapsed-borders-ref.html": [ + "0a2e7a8d95b95dc21ad1c103fdfba65b8f5b1b86", + "support" + ], "css/css-tables/subpixel-table-cell-height-001-ref.html": [ "3b6297fc4ab06643b2910194479b571ca3a462f2", "support" @@ -601084,7 +601394,7 @@ "testharness" ], "css/cssom/CSSStyleSheet-constructable.html": [ - "e3083d283f35145ae7f2be1941ff930ae864b088", + "80189fe2f36e7c89f0445511460732fa77169108", "testharness" ], "css/cssom/CSSStyleSheet.html": [ @@ -616472,7 +616782,7 @@ "support" ], "domparsing/DOMParser-parseFromString-html.html": [ - "ec424423a1d28988d2b949b51e9467f0cf702290", + "ad65cc58618462591568dda622f35b68a64c1d63", "testharness" ], "domparsing/DOMParser-parseFromString-xml-doctype.html": [ @@ -634167,12 +634477,16 @@ "76019c9b41e4fd4c56f4252d399f088b7b3e4470", "reftest" ], + "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html": [ + "837c4fd7833d569f2949bf1c2a677836ac851597", + "support" + ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html": [ - "427189f6fc78074ae13c58e94ae3d02bc0e513b2", - "testharness" + "c2d300999eeaa207365b5c0b42f9b033e6b96446", + "reftest" ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html": [ - "8354041eb2a0aa57b283e12d9c0390f16327ac80", + "c4c14bc2a394ff19c14bfa76c4b59ad5d6ddb618", "support" ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html": [ @@ -634180,7 +634494,7 @@ "reftest" ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html": [ - "39461350b089b9041a71a6ca9aad7f1cfc078d68", + "c3ee804c485b762d8b69614136558bbf2ed833a8", "support" ], "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html": [ @@ -643460,7 +643774,7 @@ "support" ], "interfaces/webxr.idl": [ - "74466f856be208f091372c778c0c70ca8fa0e9a2", + "899bb0daa008ccb547d47b0a96c383c40e7e776e", "support" ], "interfaces/worklets.idl": [ @@ -644087,6 +644401,70 @@ "848eb5b144cef3740b794475f699229243c1287e", "testharness" ], + "mathml/presentation-markup/fractions/frac-bar-001-ref.html": [ + "5b7a8dff47e90cf2b0dc02688dd478deaf0a13fc", + "support" + ], + "mathml/presentation-markup/fractions/frac-bar-001.html": [ + "6688a587b1f25e2523ef5fd2535227381a1c263d", + "reftest" + ], + "mathml/presentation-markup/fractions/frac-color-001-notref.html": [ + "498d6277a3258c70882e7b2ec92e82e974bf9ab0", + "support" + ], + "mathml/presentation-markup/fractions/frac-color-001.html": [ + "bc61dbf51ffe487122859f189223b2ef43f88bb1", + "reftest" + ], + "mathml/presentation-markup/fractions/frac-color-002-ref.html": [ + "fe2f4fa7b1899e5d1114e3a89b14dc96843ef070", + "support" + ], + "mathml/presentation-markup/fractions/frac-color-002.html": [ + "d7cc88cb21bd9ed62d9a269e1029f113f9a27d13", + "reftest" + ], + "mathml/presentation-markup/fractions/frac-linethickness-001-ref.html": [ + "c703edb764fe883e05e47e26464149aa64af1070", + "support" + ], + "mathml/presentation-markup/fractions/frac-linethickness-001.html": [ + "94111174c6aa3ecf1fff4982bfc9ecbf4a10c2ee", + "reftest" + ], + "mathml/presentation-markup/fractions/frac-linethickness-002-ref.html": [ + "69663938c1951a34a1e1134d549b610ea00c15e8", + "support" + ], + "mathml/presentation-markup/fractions/frac-linethickness-002.html": [ + "5bb0d6bfb9d6113a04b9d3160ccc9db80aceaaa6", + "reftest" + ], + "mathml/presentation-markup/fractions/frac-linethickness-003-notref.html": [ + "934d66633397313175e98c4bda871bb0a95e5db0", + "support" + ], + "mathml/presentation-markup/fractions/frac-linethickness-003.html": [ + "e535e703b52c75800155b5b25995730b2a236287", + "reftest" + ], + "mathml/presentation-markup/fractions/frac-mrow-001-ref.html": [ + "e42cb96fe8383959bef2d778cfb29d0638f1de03", + "support" + ], + "mathml/presentation-markup/fractions/frac-mrow-001.html": [ + "e5c6f52529443e881b8235a67f3e8cc7aa10fb51", + "reftest" + ], + "mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html": [ + "2fa978624dc206c834f70d4cf620b565f8f3ac12", + "support" + ], + "mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html": [ + "61f49e2ff5381c9684e5b36d03a51daf7f8f3e74", + "reftest" + ], "mathml/presentation-markup/fractions/frac-parameters-1.html": [ "543017e19006377cac0c1a434bd43400467fac3b", "testharness" @@ -644095,6 +644473,14 @@ "75074875c9e6b1fa205fe76b85c4a0b36fadf274", "testharness" ], + "mathml/presentation-markup/fractions/frac-visibility-001-ref.html": [ + "41a262d511197edebb913cb68eb688eddf763ff2", + "support" + ], + "mathml/presentation-markup/fractions/frac-visibility-001.html": [ + "b98f68d2a585d340804b27120a89d8e71e4c9e51", + "reftest" + ], "mathml/presentation-markup/operators/mo-axis-height-1.html": [ "7b0031ac1ed63219130b69113ebbfdc28eec10d6", "testharness" @@ -666123,10 +666509,30 @@ "980823f59f7e3ac4f35a31ab6df37ce16e538f54", "support" ], + "reporting/bufferSize.html": [ + "b3512b3bc93b322e2015e71d70f01bc5986bc24d", + "testharness" + ], + "reporting/disconnect.html": [ + "2dc5e8fd2de724e41bc0c003b4e7036d1d954371", + "testharness" + ], + "reporting/generateTestReport.html": [ + "e3c2735686a05eefc9bbcfb107f76ec7275b8948", + "testharness" + ], "reporting/idlharness.window.js": [ "17cef8183596ae1d0b307fb8ddccc7455b955966", "testharness" ], + "reporting/nestedReport.html": [ + "156338ee74653bfdc843e6acceda073c02ca635b", + "testharness" + ], + "reporting/order.html": [ + "c43964220c981f4b91c7c5e7eac7fc67377b367b", + "testharness" + ], "requestidlecallback/META.yml": [ "9c829d3c8885bb9b594e7096a878166e07f3e278", "support" @@ -667140,7 +667546,7 @@ "support" ], "resources/testdriver.js": [ - "e328302e4f345114654eda323dbd09a5f650d419", + "031be1b7e5501658d412aecc6f0cba56b3444601", "support" ], "resources/testdriver.js.headers": [ @@ -682188,7 +682594,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/base.py": [ - "0e54eca778b3d6df8ae41da00f6acce129be82c1", + "41cf2c641d291b9fa573c3421e6fb61622a502fd", "support" ], "tools/wptrunner/wptrunner/executors/executorchrome.py": [ @@ -682216,7 +682622,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executorselenium.py": [ - "21868421712994e83eb317f281c6cf0ff69f5229", + "fa257e1296e9046425d88b99ce440b9e658edd2a", "support" ], "tools/wptrunner/wptrunner/executors/executorservo.py": [ @@ -682228,7 +682634,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executorwebdriver.py": [ - "3f8c2bb5a3f94a5230bf93e7e4192692df8f0ab3", + "817b2717cb71352955315497956065c72561050f", "support" ], "tools/wptrunner/wptrunner/executors/executorwebkit.py": [ @@ -682240,7 +682646,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/protocol.py": [ - "aa3565e5726a0662d10ed49cee85f153691c441f", + "d08b74bfc36ae97cebaa148741701dcc2a767399", "support" ], "tools/wptrunner/wptrunner/executors/pytestrunner/__init__.py": [ @@ -682300,7 +682706,7 @@ "support" ], "tools/wptrunner/wptrunner/metadata.py": [ - "3a92491aa22202e21041a258220afae6bda13a92", + "8699ac4fc734c1a45a4b7723b3dceea27590f8fa", "support" ], "tools/wptrunner/wptrunner/products.py": [ @@ -682312,7 +682718,7 @@ "support" ], "tools/wptrunner/wptrunner/testdriver-extra.js": [ - "6336d227db8d7d9f3e6c4276ad2f5c609e9f27e9", + "09d7c2908671228e625d0717e567d751470fe6cd", "support" ], "tools/wptrunner/wptrunner/testdriver-vendor.js": [ @@ -687959,6 +688365,10 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" ], + "webdriver/tests/send_alert_text/conftest.py": [ + "f34630c3cbc5de2700552e576bc7c797d2bd724f", + "support" + ], "webdriver/tests/send_alert_text/send.py": [ "6dbc03f94019abf6fc467ae2baf8fb9d21823e64", "wdspec" @@ -693559,6 +693969,10 @@ "69a35c2510983550993f630ea6f0a165c2e89369", "testharness" ], + "webxr/xrFrame_lifetime.https.html": [ + "971a6d78a1e1ee1c51141a475868185318680495", + "testharness" + ], "webxr/xrSession_cancelAnimationFrame.https.html": [ "9b08f93eead693c1c9aa6d7e2458988aa7dae442", "testharness" diff --git a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini index 8850ec200da..a100b281453 100644 --- a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini +++ b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini @@ -74,3 +74,6 @@ [opacity end] expected: FAIL + [border-bottom-width end] + 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 2a5ec608a33..4acc2e997de 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 @@ -60,12 +60,6 @@ [windows-1254: iso_8859-9:1989 (XMLHttpRequest)] expected: TIMEOUT - [windows-1258: cp1258 (XMLHttpRequest)] - expected: TIMEOUT - - [windows-1256: cp1256 (XMLHttpRequest)] - expected: TIMEOUT - [windows-1254: iso_8859-9 (XMLHttpRequest)] expected: TIMEOUT @@ -90,34 +84,31 @@ [windows-1256: x-cp1256 (XMLHttpRequest)] expected: TIMEOUT - [windows-1257: x-cp1257 (XMLHttpRequest)] - expected: TIMEOUT - [windows-1255: cp1255 (XMLHttpRequest)] expected: TIMEOUT - [windows-1256: windows-1256 (XMLHttpRequest)] - expected: TIMEOUT - [windows-1257: windows-1257 (XMLHttpRequest)] expected: TIMEOUT [windows-1254: iso88599 (XMLHttpRequest)] expected: TIMEOUT - [windows-1254: iso-8859-9 (XMLHttpRequest)] + [windows-1254: iso8859-9 (XMLHttpRequest)] expected: TIMEOUT - [windows-1254: iso8859-9 (XMLHttpRequest)] + [windows-1255: windows-1255 (XMLHttpRequest)] expected: TIMEOUT - [windows-1254: iso-ir-148 (XMLHttpRequest)] + [windows-1258: x-cp1258 (XMLHttpRequest)] expected: TIMEOUT - [windows-1254: csisolatin5 (XMLHttpRequest)] + [windows-1255: x-cp1255 (XMLHttpRequest)] expected: TIMEOUT - [windows-1255: windows-1255 (XMLHttpRequest)] + [windows-1258: windows-1258 (XMLHttpRequest)] + expected: TIMEOUT + + [x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)] expected: TIMEOUT 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 ff6b5fb487c..8a008d8b2b8 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,18 +312,9 @@ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" text/plain] - expected: FAIL - - [<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;x=" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html;" \\" 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..87c807a49ff 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,6 +11,3 @@ [X-Content-Type-Options%3A%20nosniff%0C] expected: FAIL - [X-Content-Type-Options%3A%20'NosniFF'] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini deleted file mode 100644 index dc2e45516de..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_5.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini index e8fe94b8878..cc781d0a782 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini @@ -1,4 +1,5 @@ [track-cue-rendering-empty-cue.html] + expected: TIMEOUT [Empty cues] 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/performance-timeline/webtiming-resolution.any.js.ini b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini index 7725b118e9d..99a24216c88 100644 --- a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini +++ b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini @@ -12,6 +12,3 @@ [Verifies the resolution of entry.startTime is at least 5 microseconds.] expected: TIMEOUT - [Verifies the resolution of performance.now() is at least 5 microseconds.] - expected: FAIL - diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini new file mode 100644 index 00000000000..dbea4f293ad --- /dev/null +++ b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini @@ -0,0 +1,2 @@ +[transition_calc_implicit.html] + expected: TIMEOUT diff --git a/tests/wpt/mozilla/meta/mozilla/paint_timing.html.ini b/tests/wpt/mozilla/meta/mozilla/paint_timing.html.ini deleted file mode 100644 index 14a9e778f39..00000000000 --- a/tests/wpt/mozilla/meta/mozilla/paint_timing.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[paint_timing.html] - [Performance entries observer] - expected: FAIL - diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml index 5bd9fd67a1d..cb204cabe28 100644 --- a/tests/wpt/web-platform-tests/.azure-pipelines.yml +++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml @@ -211,16 +211,3 @@ jobs: displayName: 'Publish results' inputs: artifactName: 'safari-preview-results' - -# The InvokeRESTAPI task can only run in a server job. -- job: results_post - displayName: 'all tests (wpt.fyi hook)' - dependsOn: results_safari_preview - pool: - vmImage: 'ubuntu-16.04' - steps: - - script: curl -s -S https://wpt.fyi/api/checks/azure/$(Build.BuildId) - displayName: 'Invoke wpt.fyi hook' - - script: curl -s -S https://staging.wpt.fyi/api/checks/azure/$(Build.BuildId) - displayName: 'Invoke staging.wpt.fyi hook' - condition: succeededOrFailed() diff --git a/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py b/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py new file mode 100644 index 00000000000..a14a27dadf9 --- /dev/null +++ b/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py @@ -0,0 +1,11 @@ +def main(request, response): + ua = request.headers.get('sec-ch-ua', '') + response.headers.set("Content-Type", "text/html") + response.headers.set("Accept-CH", "UA") + response.headers.set("Accept-CH-Lifetime", "10") + response.content = ''' +<script> + window.opener.postMessage({ header: "%s" }, "*"); +</script> +Sec-CH-UA: %s +''' % (ua, ua) diff --git a/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.http.html b/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.http.html new file mode 100644 index 00000000000..e333c605301 --- /dev/null +++ b/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.http.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script> + promise_test(t => { + return new Promise((resolve, reject) => { + var w; + window.onmessage = e => { + assert_equals(e.data.header, "", "The `Sec-CH-UA` header is not delivered."); + w.close(); + resolve(); + }; + w = window.open("./resources/sec-ch-ua.py"); + }); + }, "Open HTTP window: no `Sec-CH-UA` header.") +</script> diff --git a/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.https.html b/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.https.html new file mode 100644 index 00000000000..b293745365a --- /dev/null +++ b/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.https.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<head> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script> + var minor = ""; + promise_test(t => { + return new Promise((resolve, reject) => { + var w; + window.onmessage = e => { + try { + assert_not_equals(e.data.header, "", "The `Sec-CH-UA` header is delivered."); + minor = e.data.header; + } catch (ex) { + reject(ex); + } + w.close(); + resolve(); + }; + w = window.open("./resources/sec-ch-ua.py"); + }); + }, "Open HTTPS window prior to opt-in: `Sec-CH-UA` header with minor version.") + + promise_test(t => { + return new Promise((resolve, reject) => { + var w; + window.onmessage = e => { + try { + assert_not_equals(e.data.header, "", "The `Sec-CH-UA` header is delivered."); + assert_not_equals(e.data.header, minor, "The `Sec-CH-UA` header is different after the opt-in than before."); + } catch (ex) { + reject(ex); + } + w.close(); + resolve(); + }; + w = window.open("./resources/sec-ch-ua.py"); + }); + }, "Open HTTPS window post-opt-in: `Sec-CH-UA` header with minor version.") +</script> +</head> diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-001.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-001.html new file mode 100644 index 00000000000..a71f5cc698b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-001.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders"> +<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606"> +<link rel="match" href="subpixel-collapsed-borders-ref.html"> +<meta name="flags" content="" /> +<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins." /> + +<style> +table { + border: 5px solid green; + border-collapse: collapse; +} + +td { + width: 50px; + height: 50px; + border: 4.95px solid red; +} +</style> + +<p>There should be a square with a green border, not a red border. +</p> + +<table> + <tr> + <td></td> + </tr> +</table> diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-002.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-002.html new file mode 100644 index 00000000000..8f8292cd22b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-002.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders"> +<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606"> +<link rel="match" href="subpixel-collapsed-borders-ref.html"> +<meta name="flags" content="" /> +<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins even when the cell border is merely 0.01 pixels narrower" /> + +<style> +table { + border: 5px solid green; + border-collapse: collapse; +} + +td { + width: 50px; + height: 50px; + border: 4.99px solid red; +} +</style> + +<p>There should be a square with a green border, not a red border. +</p> + +<table> + <tr> + <td></td> + </tr> +</table> diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003-ref.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003-ref.html new file mode 100644 index 00000000000..78e0be38939 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003-ref.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<style> +table { + border: 5.95px solid green; + border-collapse: collapse; +} + +td { + width: 50px; + height: 50px; + border: 1px solid red; +} +</style> + +<p>There should be a square with a green border, not a red border. +</p> + +<table> + <tr> + <td></td> + </tr> +</table> diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003.html new file mode 100644 index 00000000000..358562cbd7f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders"> +<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606"> +<link rel="match" href="subpixel-collapsed-borders-003-ref.html"> +<meta name="flags" content="" /> +<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins even when the floored table border is the same size as the cell's." /> + +<style> +table { + border: 5.95px solid green; + border-collapse: collapse; +} + +td { + width: 50px; + height: 50px; + border: 5px solid red; +} +</style> + +<p>There should be a square with a green border, not a red border. +</p> + +<table> + <tr> + <td></td> + </tr> +</table> diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-ref.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-ref.html new file mode 100644 index 00000000000..0a2e7a8d95b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-ref.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<style> +table { + border: 5px solid green; + border-collapse: collapse; +} + +td { + width: 50px; + height: 50px; + border: 1px solid red; +} +</style> + +<p>There should be a square with a green border, not a red border. +</p> + +<table> + <tr> + <td></td> + </tr> +</table> diff --git a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html index e3083d283f3..80189fe2f36 100644 --- a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html +++ b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html @@ -14,7 +14,7 @@ <span class="yellow"></span> </div> </section> -<section id="secondSection"></section> +<section id="shadowHost"></section> <section id="thirdSection"></section> <script> @@ -27,7 +27,8 @@ const yellowStyleText = ".yellow { color: yellow; }"; const firstDiv = document.querySelector('#firstSection > div'); const secondDiv = firstDiv.cloneNode(true); -const shadowRoot = document.querySelector('#secondSection').attachShadow({mode: 'open'}); +const shadowHost = document.querySelector('#shadowHost'); +const shadowRoot = shadowHost.attachShadow({mode: 'open'}); shadowRoot.appendChild(secondDiv); const greenSpan = firstDiv.children[0]; @@ -210,6 +211,24 @@ promise_test(() => { }, 'Constructed style sheets can be applied on shadow root'); promise_test(() => { + return Promise.all(createAllSheetsPromise()).then(values => { + const greenStyleSheet = values[0]; + const redStyleSheet = values[1]; + shadowRoot.adoptedStyleSheets = [greenStyleSheet]; + assert_equals(getComputedStyle(greenShadowSpan).color, "rgb(0, 128, 0)", "Style applies connected"); + assert_equals(getComputedStyle(redShadowSpan).color, "rgb(0, 0, 0)", "Style applies when connected"); + let hostParent = shadowHost.parentNode; + hostParent.removeChild(shadowHost); + assert_equals(getComputedStyle(greenShadowSpan).color, "", "Style doesn't apply when detached"); + assert_equals(getComputedStyle(redShadowSpan).color, "", "Style doesn't apply when detached"); + shadowRoot.adoptedStyleSheets = [redStyleSheet, greenStyleSheet]; + hostParent.appendChild(shadowHost); + assert_equals(getComputedStyle(greenShadowSpan).color, "rgb(0, 128, 0)", "Style applies after reattach"); + assert_equals(getComputedStyle(redShadowSpan).color, "rgb(255, 0, 0)", "Style applies after reattach"); + }); +}, 'Re-attaching shadow host with adopted stylesheets work'); + +promise_test(() => { const plainSheet = new CSSStyleSheet(); const redStyleSheetPromise = plainSheet.replace(redStyleTexts[0]); return redStyleSheetPromise.then(function(redStyleSheet) { diff --git a/tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html b/tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html index ec424423a1d..ad65cc58618 100644 --- a/tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html +++ b/tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html @@ -67,6 +67,11 @@ test(function() { }, "DOMParser parses HTML tag soup with no problems"); test(function() { + const doc = new DOMParser().parseFromString('<noembed><a></noembed>', 'text/html'); + assert_equals(doc.querySelector('noembed').textContent, '<a>'); +}, 'DOMParser should handle the content of <noembed> as raw text'); + +test(function() { assert_throws(new TypeError(), function() { new DOMParser().parseFromString("", "text/foo-this-is-invalid"); }) diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html new file mode 100644 index 00000000000..837c4fd7833 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<title>Reference for track rendering with empty cue</title> +<script src="/common/reftest-wait.js"></script> +<style> +html { overflow:hidden } +body { margin:0 } +.container { + display: inline-block; + position: relative; +} +</style> +<div class="container"> + <video width="320" height="180"> + <source src="/media/white.webm" type="video/webm"> + <source src="/media/white.mp4" type="video/mp4"> + <script> + var video = document.querySelector("video"); + video.addEventListener('playing', () => { + video.pause(); + takeScreenshot(); + }, { once: true}); + video.play(); + </script> + </video> +</div> +</html>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html index 427189f6fc7..c2d300999ee 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html @@ -1,16 +1,26 @@ <!DOCTYPE html> -<title>Empty cues</title> -<script src="/common/media.js"></script> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> -async_test(function(t) { - var video = document.createElement("video"); - video.src = getVideoURI("/media/test"); - video.addTextTrack("captions", "regular captions track", "en"); - video.textTracks[0].addCue(new VTTCue(0, 4, "")); +<html class="reftest-wait"> +<title>Track rendering with empty cue</title> +<link rel="match" href="track-cue-rendering-empty-cue-ref.html"> +<style> +html { overflow:hidden } +body { margin:0 } +</style> +<script src="/common/reftest-wait.js"></script> +<video width="320" height="180"> + <source src="/media/white.webm" type="video/webm"> + <source src="/media/white.mp4" type="video/mp4"> + <script> + var video = document.querySelector("video"); + var track = video.addTextTrack("captions", "regular captions track", "en"); + track.addCue(new VTTCue(0, 4, "")); + track.mode = "showing"; - video.onplaying = t.step_func_done(); + video.addEventListener('playing', () => { + video.pause(); + takeScreenshot(); + }, { once: true}); video.play(); -}); -</script>
\ No newline at end of file + </script> +</video> +</html>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html index 8354041eb2a..c4c14bc2a39 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html @@ -20,7 +20,6 @@ background: green; color: green; font-size: 120px; - padding: 2px; } </style> <div class="container"> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html index 39461350b08..c3ee804c485 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html @@ -22,7 +22,6 @@ background: green; color: green; font-size: 50px; - padding: 2px; } </style> <div class="container"> diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl index 74466f856be..899bb0daa00 100644 --- a/tests/wpt/web-platform-tests/interfaces/webxr.idl +++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl @@ -170,7 +170,7 @@ interface XRRay { }; enum XRHandedness { - "", + "none", "left", "right" }; diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001-ref.html new file mode 100644 index 00000000000..5b7a8dff47e --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001-ref.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions bar</title> + <style type="text/css"> + #container { + position: absolute; + left: 10px; + top: 50px; + width: 150px; + height: 150px; + background: green; + } + </style> + </head> + <body> + <p>This test passes if you see a green square.</p> + <div id="container"></div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html new file mode 100644 index 00000000000..6688a587b1f --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html class="reftest-wait"> + <head> + <meta charset="utf-8"> + <title>fractions bar</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="Verifies painting of the fraction bar"> + <link rel="match" href="frac-bar-001-ref.html"> + <style type="text/css"> + @font-face { + font-family: TestFont; + src: url("/fonts/math/fraction-rulethickness10000.woff"); + } + math { + /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */ + /* The gap / shift / axisheight parameters are set to 0. */ + font-family: "TestFont"; + font-size: 1px; + } + #container { + position: absolute; + left: 0; + top: 0; + } + </style> + <script src="/common/reftest-wait.js"></script> + <script> + window.addEventListener("load", () => { + // Delay the check to workaround WebKit's bug https://webkit.org/b/174030. + requestAnimationFrame(() => { document.fonts.ready.then(adjustPositionOfFraction); }); + }); + function adjustPositionOfFraction() + { + requestAnimationFrame(() => { + var container = document.getElementById("container"); + var numeratorBox = document.getElementById("numerator").getBoundingClientRect(); + container.style.left = (10 - numeratorBox.left) + "px"; + container.style.top = (50 - numeratorBox.top) + "px"; + requestAnimationFrame(takeScreenshot); + }); + } + </script> + </head> + <body> + <p>This test passes if you see a green square.</p> + <div id="container"> + <math> + <mfrac style="color: green; font-size: 15em"> + <mspace id="numerator" width="150px"></mspace> + <mspace></mspace> + </mfrac> + </math> + </div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-notref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-notref.html new file mode 100644 index 00000000000..498d6277a32 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-notref.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Fraction bar color</title> + </head> + <body style="font-size: 20pt;"> + <p>This test passes if you see a fraction with a blue fraction bar.</p> + <math> + <mfrac> + <mspace width="200px" height="20px" style="background: black"></mspace> + <mspace width="200px" height="20px" style="background: black"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html new file mode 100644 index 00000000000..bc61dbf51ff --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Fraction bar color</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="The CSS color property has an effect on the fraction bar."> + <link rel="mismatch" href="frac-color-001-notref.html"> + </head> + <body style="font-size: 20pt;"> + <p>This test passes if you see a fraction with a blue fraction bar.</p> + <math> + <mfrac style="color: blue;"> + <mspace width="200px" height="20px" style="background: black"></mspace> + <mspace width="200px" height="20px" style="background: black"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002-ref.html new file mode 100644 index 00000000000..fe2f4fa7b18 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002-ref.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions color</title> + </head> + <body> + <p>This test passes if you see a green square and a blue square.</p> + <div style="background: green; width: 200px; height: 200px;"> + </div> + <div style="background: blue; width: 200px; height: 200px;"> + </div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html new file mode 100644 index 00000000000..d7cc88cb21b --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions color</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="Verifies the color attribute affects the fraction bar"> + <link rel="match" href="frac-color-002-ref.html"> + </head> + <body> + <p>This test passes if you see a green square and a blue square.</p> + <div style="background: green; width: 200px; height: 200px;"> + <math> + <mspace width="10px"></mspace> + <mfrac style="color: green"> + <mspace width="150px" height="20px"></mspace> + <mspace width="150px" height="20px"></mspace> + </mfrac> + </math> + </div> + <div style="background: blue; width: 200px; height: 200px;"> + <math> + <mspace width="10px"></mspace> + <mfrac style="color: blue"> + <mspace width="150px" height="20px"></mspace> + <mspace width="150px" height="20px"></mspace> + </mfrac> + </math> + </div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html new file mode 100644 index 00000000000..c703edb764f --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions linethickness</title> + <style type="text/css"> + @font-face { + font-family: TestFont; + src: url("/fonts/math/fraction-rulethickness10000.woff"); + } + math { + /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */ + font-family: "TestFont"; + font-size: 1px; + } + </style> + </head> + <body> + <p>This test passes if you see fractions with line thickness equal to the height of their blue numerator and cyan denominator.</p> + <math> + <mfrac linethickness="5px"> + <mspace width="20px" height="5px" style="background: blue"></mspace> + <mspace width="20px" height="5px" style="background: cyan"></mspace> + </mfrac> + <mfrac linethickness="10px"> + <mspace width="20px" height="10px" style="background: blue"></mspace> + <mspace width="20px" height="10px" style="background: cyan"></mspace> + </mfrac> + <mfrac linethickness="20px"> + <mspace width="20px" height="20px" style="background: blue"></mspace> + <mspace width="20px" height="20px" style="background: cyan"></mspace> + </mfrac> + <mfrac linethickness="50px"> + <mspace width="20px" height="50px" style="background: blue"></mspace> + <mspace width="20px" height="50px" style="background: cyan"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html new file mode 100644 index 00000000000..94111174c6a --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html @@ -0,0 +1,42 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions linethickness</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="Verifies 'thin', 'medium', 'thick' and unitless values for the linethickness attribute of the mfrac element"> + <link rel="match" href="frac-linethickness-001-ref.html"> + <style type="text/css"> + @font-face { + font-family: TestFont; + src: url("/fonts/math/fraction-rulethickness10000.woff"); + } + math { + /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */ + font-family: "TestFont"; + font-size: 1px; + } + </style> + </head> + <body> + <p>This test passes if you see fractions with line thickness equal to the height of their blue numerator and cyan denominator.</p> + <math> + <mfrac linethickness="thin"> + <mspace width="20px" height="5px" style="background: blue"></mspace> + <mspace width="20px" height="5px" style="background: cyan"></mspace> + </mfrac> + <mfrac linethickness="medium"> + <mspace width="20px" height="10px" style="background: blue"></mspace> + <mspace width="20px" height="10px" style="background: cyan"></mspace> + </mfrac> + <mfrac linethickness="thick"> + <mspace width="20px" height="20px" style="background: blue"></mspace> + <mspace width="20px" height="20px" style="background: cyan"></mspace> + </mfrac> + <mfrac linethickness="5"> + <mspace width="20px" height="50px" style="background: blue"></mspace> + <mspace width="20px" height="50px" style="background: cyan"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html new file mode 100644 index 00000000000..69663938c19 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions linethickness</title> + <style type="text/css"> + @font-face { + font-family: TestFont; + src: url("/fonts/math/fraction-rulethickness10000.woff"); + } + math { + /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */ + font-family: "TestFont"; + font-size: 1px; + } + </style> + </head> + <body> + <p>This test passes if you see fraction with a cyan denominator and + a blue numerator as tall as its black bar.</p> + <math> + <mfrac linethickness="0px"> + <mspace width="20px" height="0px" style="background: blue"></mspace> + <mspace width="20px" height="10px" style="background: cyan"></mspace> + </mfrac> + </math> + <math> + <mfrac linethickness="50px"> + <mspace width="20px" height="50px" style="background: blue"></mspace> + <mspace width="20px" height="10px" style="background: cyan"></mspace> + </mfrac> + </math> + <math style="font-size: 180px"> + <mfrac linethickness="0.3888888888888889em"> + <mspace width="20px" height="70px" style="background: blue"></mspace> + <mspace width="20px" height="10px" style="background: cyan"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html new file mode 100644 index 00000000000..5bb0d6bfb9d --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions linethickness</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="Verifies fraction with negative, percent and named space linethickness values."> + <link rel="match" href="frac-linethickness-002-ref.html"> + <style type="text/css"> + @font-face { + font-family: TestFont; + src: url("/fonts/math/fraction-rulethickness10000.woff"); + } + math { + /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */ + font-family: "TestFont"; + font-size: 1px; + } + </style> + </head> + <body> + <p>This test passes if you see fraction with a cyan denominator and + a blue numerator as tall as its black bar.</p> + <math> + <mfrac linethickness="-1.23em"> + <mspace width="20px" height="0px" style="background: blue"></mspace> + <mspace width="20px" height="10px" style="background: cyan"></mspace> + </mfrac> + </math> + <math> + <mfrac linethickness="500%"> + <mspace width="20px" height="50px" style="background: blue"></mspace> + <mspace width="20px" height="10px" style="background: cyan"></mspace> + </mfrac> + </math> + <math style="font-size: 180px"> + <mfrac linethickness="veryverythickmathspace"> + <mspace width="20px" height="70px" style="background: blue"></mspace> + <mspace width="20px" height="10px" style="background: cyan"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html new file mode 100644 index 00000000000..934d6663339 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions linethickness</title> + </head> + <body> + <p>This test passes if you see a fraction without fraction bar.</p> + <math> + <mfrac> + <mspace width="20px" height="5px" style="background: blue"></mspace> + <mspace width="20px" height="5px" style="background: cyan"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html new file mode 100644 index 00000000000..e535e703b52 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>fractions linethickness</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="Verifies fraction with 0px bar."> + <link rel="mismatch" href="frac-linethickness-003-notref.html"> + </head> + <body> + <p>This test passes if you see a fraction without fraction bar.</p> + <math> + <mfrac linethickness="0px"> + <mspace width="20px" height="5px" style="background: blue"></mspace> + <mspace width="20px" height="5px" style="background: cyan"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001-ref.html new file mode 100644 index 00000000000..e42cb96fe83 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001-ref.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Fraction mrow</title> + </head> + <body style="font-size: 20pt;"> + <p>This test passes if you see a fraction with a blue square as numerator and a cyan square as denominator.</p> + <math> + <mfrac> + <mspace width="60px" height="60px" style="background: blue"></mspace> + <mspace width="60px" height="60px" style="background: cyan"></mspace> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html new file mode 100644 index 00000000000..e5c6f525294 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Fraction mrow</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="This test that <mrow> elements can be used as numerator and denominator of fractions."> + <link rel="match" href="frac-mrow-001-ref.html"> + </head> + <body style="font-size: 20pt;"> + <p>This test passes if you see a fraction with a blue square as numerator and a cyan square as denominator.</p> + <math> + <mfrac> + <mrow> + <mspace width="30px" height="60px" style="background: blue"></mspace> + <mspace width="30px" height="60px" style="background: blue "></mspace> + </mrow> + <mrow> + <mspace width="30px" height="60px" style="background: cyan"></mspace> + <mspace width="30px" height="60px" style="background: cyan "></mspace> + </mrow> + </mfrac> + </math> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html new file mode 100644 index 00000000000..2fa978624dc --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html @@ -0,0 +1,73 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Fraction numalign denomalign</title> + </head> + <body> + <p>This test passes if you see 3 fractions with a numerator respectively + aligned left/center/right with respect to the denominator ; + followed by 3 fractions with a denominator respectively aligned + left/center/right with respect to the numerator.</p> + <p> + <math> + <mfrac> + <mrow> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + <mspace width="20px" height="20px"></mspace> + </mrow> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + </mfrac> + </math> + <math> + <mfrac> + <mrow> + <mspace width="10px" height="20px"></mspace> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + <mspace width="10px" height="20px"></mspace> + </mrow> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + </mfrac> + </math> + <math> + <mfrac> + <mrow> + <mspace width="20px" height="20px"></mspace> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + </mrow> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + </mfrac> + </math> + </p> + <p> + <math> + <mfrac> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + <mrow> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + <mspace width="20px" height="20px"></mspace> + </mrow> + </mfrac> + </math> + <math> + <mfrac> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + <mrow> + <mspace width="10px" height="20px"></mspace> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + <mspace width="10px" height="20px"></mspace> + </mrow> + </mfrac> + </math> + <math> + <mfrac> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + <mrow> + <mspace width="20px" height="20px"></mspace> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + </mrow> + </mfrac> + </math> + </p> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html new file mode 100644 index 00000000000..61f49e2ff53 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html @@ -0,0 +1,56 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Fraction numalign denomalign</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="This fraction alignment with the numalign/denomalign attributes."> + <link rel="match" href="frac-numalign-denomalign-001-ref.html"> + </head> + <body> + <p>This test passes if you see 3 fractions with a numerator respectively + aligned left/center/right with respect to the denominator ; + followed by 3 fractions with a denominator respectively aligned + left/center/right with respect to the numerator.</p> + <p> + <math> + <mfrac numalign="left"> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + </mfrac> + </math> + <math> + <mfrac numalign="center"> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + </mfrac> + </math> + <math> + <mfrac numalign="right"> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + </mfrac> + </math> + </p> + <p> + <math> + <mfrac denomalign="left"> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + </mfrac> + </math> + <math> + <mfrac denomalign="center"> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + </mfrac> + </math> + <math> + <mfrac denomalign="right"> + <mspace width="30px" height="20px" style="background: cyan;"></mspace> + <mspace width="10px" height="20px" style="background: blue;"></mspace> + </mfrac> + </math> + </p> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001-ref.html new file mode 100644 index 00000000000..41a262d5111 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001-ref.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Fraction bar visibility</title> + </head> + <body> + <p>This test passes if you see a green square and no red.</p> + <div style="background: green; width: 200px; height: 200px;"> + </div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html new file mode 100644 index 00000000000..b98f68d2a58 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Fraction bar visibility</title> + <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2"> + <meta name="assert" content="The CSS visible property affects the rendering of the fraction bar."> + <link rel="match" href="frac-visibility-001-ref.html"> + </head> + <body> + <p>This test passes if you see a green square and no red.</p> + <div style="background: green; width: 200px; height: 200px;"> + <math> + <mfrac style="visibility: hidden; color: red"> + <mspace width="200px" height="20px"></mspace> + <mspace width="200px" height="20px"></mspace> + </mfrac> + </math> + </div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/reporting/bufferSize.html b/tests/wpt/web-platform-tests/reporting/bufferSize.html new file mode 100644 index 00000000000..b3512b3bc93 --- /dev/null +++ b/tests/wpt/web-platform-tests/reporting/bufferSize.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Reporting: Buffer size</title> +<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script> + // Test the buffer size (100) of ReportingObserver. + async_test(async function(test) { + for (i = 0; i != 110; ++i) + await test_driver.generate_test_report("" + i); + + var observer = new ReportingObserver(function(reports) { + test.step(function() { + // Only (the most recent) 100 reports should be observed, even though + // 110 were buffered. + assert_equals(reports.length, 100); + for(i = 0; i != 100; ++i) { + assert_equals(reports[i].body.message, "" + (i + 10)); + } + }); + + test.done(); + }, {buffered: true}); + observer.observe(); + }, "Buffer size"); +</script> diff --git a/tests/wpt/web-platform-tests/reporting/disconnect.html b/tests/wpt/web-platform-tests/reporting/disconnect.html new file mode 100644 index 00000000000..2dc5e8fd2de --- /dev/null +++ b/tests/wpt/web-platform-tests/reporting/disconnect.html @@ -0,0 +1,25 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Reporting: Disconnect</title> +<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script> + async_test(async function(test) { + var observer = new ReportingObserver(function(reports, observer) { + test.step(function() { + assert_equals(reports.length, 1); + assert_equals(reports[0].body.message, "Test message."); + }); + test.done(); + }); + observer.observe(); + + // The observer should still receive this report even though disconnect() + // is called immediately afterwards. + await test_driver.generate_test_report("Test message."); + observer.disconnect(); + }, "Disconnect"); +</script> diff --git a/tests/wpt/web-platform-tests/reporting/generateTestReport.html b/tests/wpt/web-platform-tests/reporting/generateTestReport.html new file mode 100644 index 00000000000..e3c2735686a --- /dev/null +++ b/tests/wpt/web-platform-tests/reporting/generateTestReport.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<meta charset="utf-8" /> +<title>Reporting: Generate Test Report</title> +<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script> + // Test that the "generate_test_report" API works. + async_test(function(test) { + var observer = new ReportingObserver(function(reports) { + test.step(function() { + assert_equals(reports.length, 1); + // Ensure that the contents of the report are valid. + assert_equals(reports[0].type, "test"); + assert_true(reports[0].url.endsWith("reporting/generateTestReport.html")); + assert_equals(reports[0].body.message, "Test message."); + }); + test.done(); + }); + observer.observe(); + + // This should result in a "test" type report being generated and observed. + test_driver.generate_test_report("Test message."); + }, "Generate Test Report"); +</script> diff --git a/tests/wpt/web-platform-tests/reporting/nestedReport.html b/tests/wpt/web-platform-tests/reporting/nestedReport.html new file mode 100644 index 00000000000..156338ee746 --- /dev/null +++ b/tests/wpt/web-platform-tests/reporting/nestedReport.html @@ -0,0 +1,30 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Reporting: Nested report</title> +<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script> + // Test that reports can be generated within a ReportingObserver + // callback. These reports should be received by the same observer. + async_test(function(test) { + var step = 0; + var observer = new ReportingObserver(async function(reports, observer) { + test.step(function() { + assert_equals(reports.length, 1); + assert_equals(reports[0].body.message, "" + step); + }); + + ++step; + if (step == 3) + test.done(); + + test_driver.generate_test_report("" + step); + }); + observer.observe(); + + test_driver.generate_test_report("0"); + }, "Nested report"); +</script> diff --git a/tests/wpt/web-platform-tests/reporting/order.html b/tests/wpt/web-platform-tests/reporting/order.html new file mode 100644 index 00000000000..c43964220c9 --- /dev/null +++ b/tests/wpt/web-platform-tests/reporting/order.html @@ -0,0 +1,32 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Reporting: Order</title> +<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<p id="error">No error</p> +<script> + var count = 0; + async_test(function(test) { + var observer = new ReportingObserver(function(reports) { + test.step(function() { + // Reports should be received in the same order that they were + // generated. + for(i in reports) { + assert_equals(reports[i].body.message, "" + count++); + } + }); + + if (count == 10) + test.done(); + }); + observer.observe(); + + for (i = 0; i != 10; ++i) + test_driver.generate_test_report("" + i); + }, "Order"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resources/testdriver.js b/tests/wpt/web-platform-tests/resources/testdriver.js index e328302e4f3..031be1b7e55 100644 --- a/tests/wpt/web-platform-tests/resources/testdriver.js +++ b/tests/wpt/web-platform-tests/resources/testdriver.js @@ -194,6 +194,20 @@ */ action_sequence: function(actions) { return window.test_driver_internal.action_sequence(actions); + }, + + /** + * Generates a test report on the current page + * + * The generate_test_report function generates a report (to be observed + * by ReportingObserver) for testing purposes, as described in + * {@link https://w3c.github.io/reporting/#generate-test-report-command} + * + * @returns {Promise} fulfilled after the report is generated, or + * rejected if the report generation fails + */ + generate_test_report: function(message) { + return window.test_driver_internal.generate_test_report(message); } }; @@ -281,6 +295,17 @@ */ action_sequence: function(actions) { return Promise.reject(new Error("unimplemented")); + }, + + /** + * Generates a test report on the current page + * + * @param {String} message - the message to be contained in the report + * @returns {Promise} fulfilled after the report is generated, or + * rejected if the report generation fails + */ + generate_test_report: function(message) { + return Promise.reject(new Error("unimplemented")); } }; })(); diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py index 0e54eca778b..41cf2c641d2 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py @@ -509,7 +509,8 @@ class CallbackHandler(object): self.actions = { "click": ClickAction(self.logger, self.protocol), "send_keys": SendKeysAction(self.logger, self.protocol), - "action_sequence": ActionSequenceAction(self.logger, self.protocol) + "action_sequence": ActionSequenceAction(self.logger, self.protocol), + "generate_test_report": GenerateTestReportAction(self.logger, self.protocol) } def __call__(self, result): @@ -593,3 +594,13 @@ class ActionSequenceAction(object): def get_element(self, selector): element = self.protocol.select.element_by_selector(selector) return element + +class GenerateTestReportAction(object): + def __init__(self, logger, protocol): + self.logger = logger + self.protocol = protocol + + def __call__(self, payload): + message = payload["message"] + self.logger.debug("Generating test report: %s" % message) + self.protocol.generate_test_report.generate_test_report(message) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py index 21868421712..fa257e1296e 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py @@ -213,9 +213,6 @@ class SeleniumProtocol(Protocol): resolve_ip=False), desired_capabilities=self.capabilities) - def after_conect(self): - pass - def teardown(self): self.logger.debug("Hanging up on Selenium session") try: diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py index 3f8c2bb5a3f..817b2717cb7 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py @@ -20,7 +20,8 @@ from .protocol import (BaseProtocolPart, ClickProtocolPart, SendKeysProtocolPart, ActionSequenceProtocolPart, - TestDriverProtocolPart) + TestDriverProtocolPart, + GenerateTestReportProtocolPart) from ..testrunner import Stop import webdriver as client @@ -188,6 +189,15 @@ class WebDriverTestDriverProtocolPart(TestDriverProtocolPart): self.webdriver.execute_script("window.postMessage(%s, '*')" % json.dumps(obj)) +class WebDriverGenerateTestReportProtocolPart(GenerateTestReportProtocolPart): + def setup(self): + self.webdriver = self.parent.webdriver + + def generate_test_report(self, message): + json_message = {"message": message} + self.webdriver.send_session_command("POST", "reporting/generate_test_report", json_message) + + class WebDriverProtocol(Protocol): implements = [WebDriverBaseProtocolPart, WebDriverTestharnessProtocolPart, @@ -195,7 +205,8 @@ class WebDriverProtocol(Protocol): WebDriverClickProtocolPart, WebDriverSendKeysProtocolPart, WebDriverActionSequenceProtocolPart, - WebDriverTestDriverProtocolPart] + WebDriverTestDriverProtocolPart, + WebDriverGenerateTestReportProtocolPart] def __init__(self, executor, browser, capabilities, **kwargs): super(WebDriverProtocol, self).__init__(executor, browser) @@ -214,9 +225,6 @@ class WebDriverProtocol(Protocol): self.webdriver.start() - def after_conect(self): - pass - def teardown(self): self.logger.debug("Hanging up on WebDriver session") try: diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py index aa3565e5726..d08b74bfc36 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py @@ -265,6 +265,7 @@ class ClickProtocolPart(ProtocolPart): :param element: A protocol-specific handle to an element.""" pass + class SendKeysProtocolPart(ProtocolPart): """Protocol part for performing trusted clicks""" __metaclass__ = ABCMeta @@ -280,6 +281,20 @@ class SendKeysProtocolPart(ProtocolPart): pass +class GenerateTestReportProtocolPart(ProtocolPart): + """Protocol part for generating test reports""" + __metaclass__ = ABCMeta + + name = "generate_test_report" + + @abstractmethod + def generate_test_report(self, message): + """Generate a test report. + + :param message: The message to be contained in the report.""" + pass + + class ActionSequenceProtocolPart(ProtocolPart): """Protocol part for performing trusted clicks""" __metaclass__ = ABCMeta diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py index 3a92491aa22..8699ac4fc73 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py @@ -365,7 +365,7 @@ class ExpectedUpdater(object): if self.ignore_existing: test_data.set_requires_update() - test_data.clear.append("expected") + test_data.clear.add("expected") self.tests_visited[test_id] = set() def test_status(self, data): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js index 6336d227db8..09d7c290867 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js @@ -90,4 +90,13 @@ window.__wptrunner_message_queue.push({"type": "action", "action": "action_sequence", "actions": actions}); return pending_promise; }; + + window.test_driver_internal.generate_test_report = function(message) { + const pending_promise = new Promise(function(resolve, reject) { + pending_resolve = resolve; + pending_reject = reject; + }); + window.__wptrunner_message_queue.push({"type": "action", "action": "generate_test_report", "message": message}); + return pending_promise; + }; })(); diff --git a/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/conftest.py b/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/conftest.py new file mode 100644 index 00000000000..f34630c3cbc --- /dev/null +++ b/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/conftest.py @@ -0,0 +1,24 @@ +import pytest + +from webdriver.error import NoSuchAlertException, NoSuchWindowException + + +@pytest.fixture(name="session") +def fixture_session(capabilities, session, create_window): + """Prevent dialog rate limits by running the test in a new window.""" + original_handle = session.window_handle + session.window_handle = create_window() + + yield session + + try: + session.alert.dismiss() + except NoSuchAlertException: + pass + + try: + session.close() + except NoSuchWindowException: + pass + + session.window_handle = original_handle diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html new file mode 100644 index 00000000000..971a6d78a1e --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<body> + <script src=/resources/testharness.js></script> + <script src=/resources/testharnessreport.js></script> + <script src="resources/webxr_util.js"></script> + <canvas></canvas> + + <script> + let immersiveTestName = "XRFrame methods throw exceptions outside of the " + + "requestAnimationFrame callback for immersive sessions"; + let nonImmersiveTestName = "XRFrame methods throw exceptions outside of the " + + "requestAnimationFrame callback for non-immersive sessions"; + + let fakeDeviceInitParams = { supportsImmersive:true }; + + let immersiveSessionOptions = { mode: 'immersive-vr' }; + let nonImmersiveSessionOptions = { outputContext: getOutputContext() }; + + let testFunction = (testSession, testController, t) => new Promise((resolve) => { + let staleFrame = null; + let currentReferenceSpace = null; + + function onFrame(time, xrFrame) { + t.step(() => { + assert_true(xrFrame instanceof XRFrame); + }); + + staleFrame = xrFrame; + step_timeout(afterFrame, 0); + } + + function afterFrame() { + t.step(() => { + // Attempting to call a method on the frame outside the callback that + // originally provided it should cause it to throw an exception. + assert_throws('InvalidStateError', () => staleFrame.getViewerPose(currentReferenceSpace)); + }); + + // Test does not complete until the this function has executed. + resolve(); + } + + testSession.requestReferenceSpace({ type: 'stationary', subtype: 'eye-level' }).then((referenceSpace) => { + currentReferenceSpace = referenceSpace; + testSession.requestAnimationFrame(onFrame); + }); + }); + + xr_session_promise_test(immersiveTestName, testFunction, + fakeDeviceInitParams, immersiveSessionOptions); + xr_session_promise_test(nonImmersiveTestName, testFunction, + fakeDeviceInitParams, nonImmersiveSessionOptions); + + </script> +</body>
\ No newline at end of file |