diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-12-03 09:09:18 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-03 09:09:18 -0500 |
commit | 54d88fd042d3d1d382b36bf5d53308dabc35991d (patch) | |
tree | 579decc1a3c98350e049be4023298b03653d2b6d | |
parent | 7aa68c8fe7ca0865a7323ab1e5b9526efa588ca2 (diff) | |
parent | 3214f9ea94277d5aa36e7cf161a1081097f16969 (diff) | |
download | servo-54d88fd042d3d1d382b36bf5d53308dabc35991d.tar.gz servo-54d88fd042d3d1d382b36bf5d53308dabc35991d.zip |
Auto merge of #25032 - servo-wpt-sync:wpt_update_03-12-2019, r=servo-wpt-sync
Sync WPT with upstream (03-12-2019)
Automated downstream sync of changes from upstream as of 03-12-2019.
[no-wpt-sync]
r? @servo-wpt-sync
52 files changed, 503 insertions, 310 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini index cd3e2dfa305..76b398963ae 100644 --- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -7,7 +7,7 @@ expected: FAIL [Opening a blob URL in a new window immediately before revoking it works.] - expected: TIMEOUT + expected: FAIL [Opening a blob URL in a noopener about:blank window immediately before revoking it works.] expected: FAIL @@ -15,3 +15,6 @@ [Opening a blob URL in a new window by clicking an <a> tag works immediately before revoking the URL.] expected: FAIL + [Fetching a blob URL immediately before revoking it works in <script> tags.] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index 0bf3b469372..4c1aa18e695 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -2,8 +2,14 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + [url-with-fetch.any.html] [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 9520740e3b0..f874a593c60 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -20343,6 +20343,18 @@ {} ] ], + "content-dpr/tiled-background-svg-image-with-content-dpr.html": [ + [ + "content-dpr/tiled-background-svg-image-with-content-dpr.html", + [ + [ + "/content-dpr/tiled-background-image-with-content-dpr-ref.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/abspos/abspos-containing-block-initial-001.xht": [ [ "css/CSS2/abspos/abspos-containing-block-initial-001.xht", @@ -229485,6 +229497,9 @@ "content-dpr/resources/background.png": [ [] ], + "content-dpr/resources/background.svg": [ + [] + ], "content-dpr/resources/dpr.py": [ [] ], @@ -229494,6 +229509,9 @@ "content-dpr/tiled-background-image-with-content-dpr-ref.html": [ [] ], + "content-dpr/tiled-background-svg-image-with-content-dpr-ref.html": [ + [] + ], "content-security-policy/META.yml": [ [] ], @@ -268890,6 +268908,9 @@ "fetch/http-cache/resources/split-origin-popup.html": [ [] ], + "fetch/metadata/META.yml": [ + [] + ], "fetch/metadata/README.md": [ [] ], @@ -362860,6 +362881,12 @@ {} ] ], + "html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html": [ + [ + "html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html", + {} + ] + ], "html/semantics/embedded-content/the-iframe-element/iframe_remove_src.html": [ [ "html/semantics/embedded-content/the-iframe-element/iframe_remove_src.html", @@ -372564,9 +372591,9 @@ {} ] ], - "longtask-timing/buffered-flag-unsupported.window.js": [ + "longtask-timing/buffered-flag.window.js": [ [ - "longtask-timing/buffered-flag-unsupported.window.html", + "longtask-timing/buffered-flag.window.html", {} ] ], @@ -415371,6 +415398,12 @@ {} ] ], + "svg/animations/begin-attribute-mutation.html": [ + [ + "svg/animations/begin-attribute-mutation.html", + {} + ] + ], "svg/animations/beginelement-instance-time-1.html": [ [ "svg/animations/beginelement-instance-time-1.html", @@ -415407,6 +415440,12 @@ {} ] ], + "svg/animations/cyclic-syncbase-2.html": [ + [ + "svg/animations/cyclic-syncbase-2.html", + {} + ] + ], "svg/animations/cyclic-syncbase.html": [ [ "svg/animations/cyclic-syncbase.html", @@ -460837,7 +460876,7 @@ "support" ], ".taskcluster.yml": [ - "cc07b1d67117e98ca098dc9fc5a33497cd9faaf6", + "8bdbabb9e2a6ddbc367f54c205ee25139a002cfe", "support" ], ".well-known/README.md": [ @@ -490132,6 +490171,10 @@ "6db6c6b1b9d851c7a85b93ddc9e5ddf368ac0a7e", "support" ], + "content-dpr/resources/background.svg": [ + "b2c544ed2d0ebf8a90bc2311e45ac4a69ffea08c", + "support" + ], "content-dpr/resources/dpr.py": [ "14d7d550fe28d49a63105ea966d3cf7cf59901b1", "support" @@ -490148,6 +490191,14 @@ "94f2f72d40196749faf6092d178f67dfc7067dcb", "reftest" ], + "content-dpr/tiled-background-svg-image-with-content-dpr-ref.html": [ + "cd8c7d3ea985655040ec62bb426080bbfac2359f", + "support" + ], + "content-dpr/tiled-background-svg-image-with-content-dpr.html": [ + "56948ea286b8c9869863e139147348056727fa20", + "reftest" + ], "content-security-policy/META.yml": [ "ee8f1ea7e07b94711ddc65e43a6c32dbc5983612", "support" @@ -603881,7 +603932,7 @@ "testharness" ], "css/css-transforms/parsing/translate-parsing-valid.html": [ - "f15fdf0c4fb4ad004db749f622747a0035dcc909", + "04440d552c0668c72c7b028ad22eee892cf4ea61", "testharness" ], "css/css-transforms/patternTransform/reference/svg-patternTransform-combination-ref.html": [ @@ -643020,6 +643071,10 @@ "32a387288af1db934458bcc77512c388ec2ab168", "testharness" ], + "fetch/metadata/META.yml": [ + "96d1392b3b71ae36876347799a3e4f217c59a020", + "support" + ], "fetch/metadata/README.md": [ "34864d4a4b6bd911f496026ada7bdc41ba3a6905", "support" @@ -657840,6 +657895,10 @@ "fd65f932982907bf62ab6455c9ab94612b0dca7a", "testharness" ], + "html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html": [ + "5e3b7682cc8dd45a22bb74b5f7b11a6a4a728d72", + "testharness" + ], "html/semantics/embedded-content/the-iframe-element/iframe_remove_src.html": [ "f0ff9ff5082d849d6b987a8ee4b46d5d0d1794e5", "testharness" @@ -665877,11 +665936,11 @@ "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini": [ - "1d63261c554f96705801a92871a6159b1f0d5ea0", + "358c6f0902e88fc61d24368b0d0874d318ae92d3", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini": [ - "4f1939a431ae272024f62a4169bf8431efc2c5bb", + "83ade1dddf02b0e9d9df5721338bd68c0d0acac3", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/pause.html.ini": [ @@ -667640,8 +667699,8 @@ "91c07f9fd3f3097367f2ad87a2ebb0d98b11d4e2", "support" ], - "longtask-timing/buffered-flag-unsupported.window.js": [ - "ea17b824c355ace2b67ccefc1ddbf25e03a299d0", + "longtask-timing/buffered-flag.window.js": [ + "dafce7ea3bb2f3d7f4691bc6ca8bde439246abe2", "testharness" ], "longtask-timing/idlharness.window.js": [ @@ -695433,7 +695492,7 @@ "support" ], "resources/chromium/nfc-mock.js": [ - "b1de419ca20d67bc2e69d6a54a6fbff7d400912b", + "224a6078c1e0d95299d1e3a2e79c6bf3f7614b5f", "support" ], "resources/chromium/sensor.mojom.js": [ @@ -701700,6 +701759,10 @@ "7a9ad43dd98e00f7e2af4957365441a29aedf8e6", "testharness" ], + "svg/animations/begin-attribute-mutation.html": [ + "f28c8e9ad1ab06ae10cb9a6e883bd80ff58a8974", + "testharness" + ], "svg/animations/beginelement-instance-time-1.html": [ "aa1cb8c983d482439fccc6d91b50e69585f4d404", "testharness" @@ -701724,6 +701787,10 @@ "19e7eef8c1ce470d67c2eaecf2f07a9d2907f2c1", "testharness" ], + "svg/animations/cyclic-syncbase-2.html": [ + "f48bbffa8599ae0f83f7977707027b75396cd3ce", + "testharness" + ], "svg/animations/cyclic-syncbase.html": [ "c0351156e310a8a6f0fca3ebee506b80983a53bb", "testharness" @@ -706501,7 +706568,7 @@ "support" ], "tools/ci/tc/decision.py": [ - "a3c47aa404990253f556a9cf59bd7c6237ffece3", + "92a27ef79ab3fb49aff79197ca503b7a766c8c03", "support" ], "tools/ci/tc/download.py": [ @@ -707265,7 +707332,7 @@ "support" ], "tools/requirements_mypy.txt": [ - "31545c2f0747a9c20d77b50d27096a4ecafd4351", + "194f4284b26903b1faf969b6ab5d30f5c48eb562", "support" ], "tools/runner/css/bootstrap-theme.min.css": [ @@ -718425,7 +718492,7 @@ "testharness" ], "web-nfc/NDEFRecord_constructor.https.html": [ - "ea7b5e4950866ff7eeed5fd4ed127460b5ef6c33", + "1b2dda9bfc87da146c3b3562dff64568fb68f9b1", "testharness" ], "web-nfc/NDEFWriter-document-hidden-manual.https.html": [ @@ -718433,7 +718500,7 @@ "manual" ], "web-nfc/NDEFWriter_push.https.html": [ - "6c7aca9fe938184bbc7090339be86a790454c7b6", + "a33b1fab3034af2058a133e8182086dc2cb2dfbe", "testharness" ], "web-nfc/README.md": [ @@ -718449,7 +718516,7 @@ "testharness" ], "web-nfc/resources/nfc-helpers.js": [ - "0fe6fe80cb1cec7ef582bae5d7974bce9d1d8596", + "3ce725a7c475b28d96f15dfd12736ed8a54f0006", "support" ], "web-nfc/resources/support-iframe.html": [ diff --git a/tests/wpt/metadata/css/css-transforms/parsing/translate-parsing-valid.html.ini b/tests/wpt/metadata/css/css-transforms/parsing/translate-parsing-valid.html.ini index 2e5706ee01d..3d698e879cd 100644 --- a/tests/wpt/metadata/css/css-transforms/parsing/translate-parsing-valid.html.ini +++ b/tests/wpt/metadata/css/css-transforms/parsing/translate-parsing-valid.html.ini @@ -5,6 +5,3 @@ [Serialization should round-trip after setting e.style['translate'\] = "1px 2px 0"] expected: FAIL - [e.style['translate'\] = "100px calc(10px - 10%)" should set the property value] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 646f7da0935..18d39d1ef35 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,21 +312,21 @@ [<iframe>: combined response Content-Type: text/html;x=" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: separate response Content-Type: text/html */*] expected: FAIL - [<iframe>: combined response Content-Type: text/html */*] + [<iframe>: separate response Content-Type: text/html;x=" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL - [<iframe>: separate response Content-Type: text/html;x=" text/plain] + [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini index 2d5faa72ac7..ab9bcf18e68 100644 --- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini @@ -53,6 +53,12 @@ [combined text/javascript ] expected: FAIL - [separate text/javascript;charset=windows-1252 error text/javascript] + [separate text/javascript x/x] + expected: FAIL + + [separate text/javascript error] + expected: FAIL + + [separate text/javascript;charset=windows-1252 text/javascript] 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 a639f15230c..a63e414f43a 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 - [Content-Type-Options%3A%20nosniff] + [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] expected: FAIL diff --git a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini index 54f7f890b05..6bd06899fdd 100644 --- a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini +++ b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini @@ -8,8 +8,14 @@ expected: FAIL [Embedded credentials are treated as network errors in new windows.] - expected: TIMEOUT + expected: FAIL [Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.] - expected: FAIL + expected: TIMEOUT + + [Embedded credentials matching the top-level are not treated as network errors for same-origin URLs.] + expected: TIMEOUT + + [Embedded credentials matching the top-level are not treated as network errors for relative URLs.] + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini new file mode 100644 index 00000000000..75d75b4cda2 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_2.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini new file mode 100644 index 00000000000..51f8272a6de --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_3.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini index dec4c579137..16fa2c5cfc1 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini @@ -1,5 +1,4 @@ [creating_browsing_context_test_01.html] - expected: TIMEOUT [first argument: absolute url] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini index e02f179ec25..bf50d59df41 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini @@ -1,24 +1,5 @@ [open-features-negative-innerwidth-innerheight.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`] expected: FAIL - [features "innerheight=-404.5" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerwidth=-404.5" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=-404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerheight=-404e1" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=-404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerwidth=-404e1" should NOT set "width=404"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini index 23eefb8eaf9..e150c9d848f 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini @@ -1,24 +1,5 @@ [open-features-negative-screenx-screeny.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for legacy `screenx`, `screeny`] expected: FAIL - [features "screenx=-204" should NOT set "left=204"] - expected: TIMEOUT - - [features "screeny=-204" should NOT set "top=204"] - expected: TIMEOUT - - [features "screeny=-204.5" should NOT set "top=204"] - expected: TIMEOUT - - [features "screeny=-0" should NOT set "top=204"] - expected: TIMEOUT - - [features "screenx=-0" should NOT set "left=204"] - expected: TIMEOUT - - [features "screenx=-204.5" should NOT set "left=204"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini index fcaeae5336d..779531b4a98 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-innerheight.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `innerheight`] expected: FAIL [features "innerheight=405e-1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405LLl" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405^4" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405e1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405 " should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405/5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405.32" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405.5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405*3" should set "height=405"] - expected: TIMEOUT - - [features "innerheight=_404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=L404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=/404" should NOT set "height=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini index 42327fedd27..7a1b258d52e 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-innerwidth.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `innerwidth`] expected: FAIL [features "innerwidth=405e-1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405*3" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405.5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405e1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405.32" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405 " should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405LLl" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405/5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405^4" should set "width=405"] - expected: TIMEOUT - - [features "innerwidth=/404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=_404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=L404" should NOT set "width=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini index a8e4fe06618..caba4124f0b 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-left.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `left`] expected: FAIL [features "left=105e1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105 " should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105/5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105e-1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105^4" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105LLl" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105.32" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105*3" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105.5" should set "left=105"] - expected: TIMEOUT - - [features "left=L104" should NOT set "left=104"] - expected: TIMEOUT - - [features "left=/104" should NOT set "left=104"] - expected: TIMEOUT - - [features "left=_104" should NOT set "left=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini index 64a08faf0e6..9ace8a4cbdb 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-screenx.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `screenx`] expected: FAIL [features "screenx=105.5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105e1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105 " should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105*3" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105e-1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105^4" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105LLl" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105/5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105.32" should set "left=105"] - expected: TIMEOUT - - [features "screenx=_104" should NOT set "left=104"] - expected: TIMEOUT - - [features "screenx=L104" should NOT set "left=104"] - expected: TIMEOUT - - [features "screenx=/104" should NOT set "left=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini index 4f22ef4ef29..a82bd0f981a 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-screeny.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `screeny`] expected: FAIL [features "screeny=405^4" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405e-1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405LLl" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405e1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405 " should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405/5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405*3" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405.32" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405.5" should set "height=405"] - expected: TIMEOUT - - [features "screeny=_404" should NOT set "height=404"] - expected: TIMEOUT - - [features "screeny=L404" should NOT set "height=404"] - expected: TIMEOUT - - [features "screeny=/404" should NOT set "height=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini index 8540f53d8d6..10f617db69e 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-top.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `top`] expected: FAIL [features "top=105/5" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105*3" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105LLl" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105e-1" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105.32" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105e1" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105 " should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105^4" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105.5" should set "top=105"] - expected: TIMEOUT - - [features "top=/104" should NOT set "top=104"] - expected: TIMEOUT - - [features "top=_104" should NOT set "top=104"] - expected: TIMEOUT - - [features "top=L104" should NOT set "top=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini index 9d841e61bc0..28f93ee71b5 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini @@ -1,48 +1,32 @@ [open-features-non-integer-width.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `width`] expected: FAIL [features "width=405^4" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405.5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405e1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405 " should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405.32" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405LLl" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405*3" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405e-1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405/5" should set "width=405"] - expected: TIMEOUT - - [top=0,left=0: absence of feature "width" should be treated same as "width=0"] - expected: TIMEOUT - - [features "width=_404" should NOT set "width=404"] - expected: TIMEOUT - - [top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"] - expected: TIMEOUT - - [features "width=/404" should NOT set "width=404"] - expected: TIMEOUT - - [features "width=L404" should NOT set "width=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini index 442db3cb549..2532dceabac 100644 --- a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini +++ b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini @@ -1,4 +1,5 @@ [embedded-opener-remove-frame.html] + expected: CRASH [opener and "removed" embedded documents] expected: FAIL diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index d1ca01ebc5f..6b68e9094e4 100644 --- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -1,5 +1,4 @@ [supported-elements.html] - expected: TIMEOUT [Contenteditable element should support autofocus] expected: FAIL @@ -10,7 +9,7 @@ expected: FAIL [Area element should support autofocus] - expected: TIMEOUT + expected: FAIL [Host element with delegatesFocus should support autofocus] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index 2a166bb97b7..fc37df7e3fa 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,6 +1,6 @@ [iframe_sandbox_popups_escaping-1.html] type: testharness - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: TIMEOUT diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index 5f60c78e73c..f6a7aca3306 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,6 +1,5 @@ [iframe_sandbox_popups_escaping-3.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini index 963d4cd20ef..9df1ac56f2a 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini @@ -1,6 +1,6 @@ [iframe_sandbox_popups_nonescaping-1.html] type: testharness - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] expected: NOTRUN diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index d43f38b40cd..45d8be1c898 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,6 +1,6 @@ [iframe_sandbox_popups_nonescaping-2.html] type: testharness - expected: TIMEOUT + expected: CRASH [Check that popups from a sandboxed iframe do not escape the sandbox] expected: NOTRUN diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini index 47a7bbb7975..dce74c6dd71 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini @@ -1,5 +1,5 @@ [form-double-submit.html] expected: ERROR [default submit action should supersede onclick submit()] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/offscreen-canvas/the-offscreen-canvas/size.large.html.ini b/tests/wpt/metadata/offscreen-canvas/the-offscreen-canvas/size.large.html.ini deleted file mode 100644 index 68cde348264..00000000000 --- a/tests/wpt/metadata/offscreen-canvas/the-offscreen-canvas/size.large.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[size.large.html] - expected: CRASH diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index a56bad443a2..66bd350083b 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -1,5 +1,4 @@ [realtimeanalyser-fft-scaling.html] - expected: TIMEOUT [X 2048-point FFT peak position is not equal to 64. Got 0.] expected: FAIL diff --git a/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini b/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini new file mode 100644 index 00000000000..fe8654e447c --- /dev/null +++ b/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini @@ -0,0 +1,4 @@ +[WorkerGlobalScope-close.html] + [Test sending a message after closing.] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini index bfd4d6dd2d6..bf2a1d61bab 100644 --- a/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini +++ b/tests/wpt/metadata/workers/baseurl/alpha/import-in-moduleworker.html.ini @@ -1,5 +1,4 @@ [import-in-moduleworker.html] - expected: ERROR [Base URL in module dedicated workers: import] expected: FAIL 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/metadata/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini new file mode 100644 index 00000000000..80f9a4f15b8 --- /dev/null +++ b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini @@ -0,0 +1,2 @@ +[Worker-constructor.html] + expected: ERROR diff --git a/tests/wpt/web-platform-tests/.taskcluster.yml b/tests/wpt/web-platform-tests/.taskcluster.yml index cc07b1d6711..8bdbabb9e2a 100644 --- a/tests/wpt/web-platform-tests/.taskcluster.yml +++ b/tests/wpt/web-platform-tests/.taskcluster.yml @@ -3,17 +3,6 @@ policy: pullRequests: public tasks: $let: - event_str: {$json: {$eval: event}} - scopes: - $if: 'tasks_for == "github-push"' - then: - $let: - branch: - $if: "event.ref[:11] == 'refs/heads/'" - then: "${event.ref[11:]}" - else: "${event.ref}" - in: "assume:repo:github.com/${event.repository.full_name}:branch:${branch}" - else: "assume:repo:github.com/${event.repository.full_name}:pull-request" run_task: $if: 'tasks_for == "github-push"' then: @@ -27,43 +16,66 @@ tasks: then: true else: false else: false - rev: - $if: 'tasks_for == "github-pull-request"' - then: "refs/pull/${event.number}/merge" - else: "${event.after}" in: - $if: run_task then: - created: {$fromNow: ''} - deadline: {$fromNow: '24 hours'} - provisionerId: proj-wpt - workerType: ci - metadata: - name: "wpt-decision-task" - description: "The task that creates all of the other tasks in the task graph" - owner: "${event.sender.login}@users.noreply.github.com" - source: ${event.repository.clone_url} - payload: - image: harjgam/web-platform-tests:0.33 - maxRunTime: 7200 - artifacts: - public/results: - path: /home/test/artifacts - type: directory - command: - - /bin/bash - - --login - - -c - - set -ex; - ~/start.sh - ${event.repository.clone_url} - ${rev}; - cd ~/web-platform-tests; - ./wpt tc-decision --tasks-path=/home/test/artifacts/tasks.json - features : - taskclusterProxy: true - scopes: - - ${scopes} - extra: - github_event: "${event_str}" + $let: + event_str: {$json: {$eval: event}} + scopes: + $if: 'tasks_for == "github-push"' + then: + $let: + branch: + $if: "event.ref[:11] == 'refs/heads/'" + then: "${event.ref[11:]}" + else: "${event.ref}" + in: "assume:repo:github.com/${event.repository.full_name}:branch:${branch}" + else: "assume:repo:github.com/${event.repository.full_name}:pull-request" + rev: + $if: 'tasks_for == "github-pull-request"' + then: "refs/pull/${event.number}/merge" + else: "${event.after}" + owner: + $if: 'tasks_for == "github-push"' + then: + $if: 'event.pusher.email' + then: + $if: '"@" in event.pusher.email' + then: ${event.pusher.email} + else: web-platform-tests@users.noreply.github.com + else: web-platform-tests@users.noreply.github.com + else: web-platform-tests@users.noreply.github.com + in: + created: {$fromNow: ''} + deadline: {$fromNow: '24 hours'} + provisionerId: proj-wpt + workerType: ci + metadata: + name: "wpt-decision-task" + description: "The task that creates all of the other tasks in the task graph" + owner: ${owner} + source: ${event.repository.clone_url} + payload: + image: harjgam/web-platform-tests:0.33 + maxRunTime: 7200 + artifacts: + public/results: + path: /home/test/artifacts + type: directory + command: + - /bin/bash + - --login + - -c + - set -ex; + ~/start.sh + ${event.repository.clone_url} + ${rev}; + cd ~/web-platform-tests; + ./wpt tc-decision --tasks-path=/home/test/artifacts/tasks.json + features : + taskclusterProxy: true + scopes: + - ${scopes} + extra: + github_event: "${event_str}" diff --git a/tests/wpt/web-platform-tests/content-dpr/resources/background.svg b/tests/wpt/web-platform-tests/content-dpr/resources/background.svg new file mode 100644 index 00000000000..b2c544ed2d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-dpr/resources/background.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" standalone="yes"?> + +<svg version="1.1" viewBox="0 0 32 32" width="32" height="32" fill="none" stroke="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<rect x="0" y="0" width="16" height="16" fill="#c0c0c0" /> +<rect x="16" y="0" width="16" height="16" fill="#ffffff" /> +<rect x="0" y="16" width="16" height="16" fill="#ffffff" /> +<rect x="16" y="16" width="16" height="16" fill="#c0c0c0" /> +</svg> diff --git a/tests/wpt/web-platform-tests/content-dpr/tiled-background-svg-image-with-content-dpr-ref.html b/tests/wpt/web-platform-tests/content-dpr/tiled-background-svg-image-with-content-dpr-ref.html new file mode 100644 index 00000000000..cd8c7d3ea98 --- /dev/null +++ b/tests/wpt/web-platform-tests/content-dpr/tiled-background-svg-image-with-content-dpr-ref.html @@ -0,0 +1,29 @@ +<html> + <head> + <title>Content-DPR: css tiled background</title> + <link rel="author" title="Noam Rosenthal" href="noam@webkit.org"> + <meta name="assert" content="Assert that content-dpr is taken into account for tiled background images"> + <style> + #bg, #bg2 { + background-image: url(resources/background.svg); + width: 32px; + height: 32px; + } + #bg { + background-size: 16px 16px; + } + + #bg2 { + background-size: 8px 8px; + } + </style> + </head> + <body> + The next div should have 16 boxes + <div id="bg"> + </div> + The next div should have 64 boxes + <div id="bg2"> + </div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/content-dpr/tiled-background-svg-image-with-content-dpr.html b/tests/wpt/web-platform-tests/content-dpr/tiled-background-svg-image-with-content-dpr.html new file mode 100644 index 00000000000..56948ea286b --- /dev/null +++ b/tests/wpt/web-platform-tests/content-dpr/tiled-background-svg-image-with-content-dpr.html @@ -0,0 +1,27 @@ +<html> + <head> + <title>Content-DPR: css tiled background</title> + <link rel="author" title="Noam Rosenthal" href="noam@webkit.org"> + <link rel="match" href="tiled-background-image-with-content-dpr-ref.html" /> + <meta name="assert" content="Assert that content-dpr is taken into account for tiled background images"> + <style> + #bg, #bg2 { + width: 32px; + height: 32px; + background-image: url(resources/dpr.py?name=background.svg&mimeType=image/svg%2Bxml&dpr=2.0); + } + + #bg2 { + background-size: 8px 8px; + } + </style> + </head> + <body> + The next div should have 16 boxes + <div id="bg"> + </div> + The next div should have 64 boxes + <div id="bg2"> + </div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/parsing/translate-parsing-valid.html b/tests/wpt/web-platform-tests/css/css-transforms/parsing/translate-parsing-valid.html index f15fdf0c4fb..04440d552c0 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/parsing/translate-parsing-valid.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/parsing/translate-parsing-valid.html @@ -19,7 +19,7 @@ test_valid_value("translate", "100%"); test_valid_value("translate", "100px 0px", "100px"); test_valid_value("translate", "100px 0.1px", "100px 0.1px"); test_valid_value("translate", "100px 0%", "100px"); -test_valid_value("translate", "100px calc(10px - 10%)", "100px calc(10px - 10%)"); +test_valid_value("translate", "100px calc(10px - 10%)", "100px calc(-10% + 10px)"); test_valid_value("translate", "100px 200%"); test_valid_value("translate", "100% 200px"); diff --git a/tests/wpt/web-platform-tests/fetch/metadata/META.yml b/tests/wpt/web-platform-tests/fetch/metadata/META.yml new file mode 100644 index 00000000000..96d1392b3b7 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/metadata/META.yml @@ -0,0 +1,5 @@ +suggested_reviewers: + - zcorpan + - jugglinmike + - mikewest + - iVanlIsh diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html new file mode 100644 index 00000000000..5e3b7682cc8 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_navigate_ancestor-1.sub.html @@ -0,0 +1,12 @@ +<!doctype html> +<meta charset="utf-8"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + async_test(t => { + window.addEventListener('message', t.step_func_done(e => { + assert_equals(e.data, "can navigate"); + })); + }, "A => B => B: B should be able to navigate B."); +</script> +<iframe src="https://{{hosts[][www]}}:{{ports[https][0]}}/html/semantics/embedded-content/the-iframe-element/support/iframe-tried-to-be-navigated-by-its-child.html"></iframe> diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini index 1d63261c554..358c6f0902e 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini @@ -1,6 +1,7 @@ [multiTouchPoints.html] expected: if product == "firefox" or product == "safari" or product == "epiphany" or product == "webkit": ERROR + if product == "chrome" and os == "mac": ERROR [TestDriver actions: two touch points with one moving one pause] expected: if product == "chrome" and os != "mac": FAIL diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini index 4f1939a431a..83ade1dddf0 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini @@ -1,3 +1,4 @@ [multiTouchPointsWithPause.html] expected: if product == "firefox" or product == "safari": ERROR + if product == "chrome" and os == "mac": ERROR diff --git a/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js b/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js deleted file mode 100644 index ea17b824c35..00000000000 --- a/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js +++ /dev/null @@ -1,19 +0,0 @@ -async_test(t => { - if (!window.PerformanceLongTaskTiming) { - assert_unreached("Longtasks are not supported."); - } - new PerformanceObserver(t.step_func(entryList => { - const observer = new PerformanceObserver(t.step_func_done(list => { - list.getEntries().forEach(entry => { - assert_not_equals(entry.entryType, 'longtask'); - }); - })); - observer.observe({type: 'longtask', buffered: true}); - observer.observe({type: 'mark'}); - // Create a mark to ensure the |observer|'s callback is dispatched. - performance.mark('a'); - })).observe({entryTypes: ['longtask']}); - // Create a long task. - const begin = window.performance.now(); - while (window.performance.now() < begin + 60); -}, 'PerformanceObserver with buffered flag cannot see previous longtask entries.'); diff --git a/tests/wpt/web-platform-tests/longtask-timing/buffered-flag.window.js b/tests/wpt/web-platform-tests/longtask-timing/buffered-flag.window.js new file mode 100644 index 00000000000..dafce7ea3bb --- /dev/null +++ b/tests/wpt/web-platform-tests/longtask-timing/buffered-flag.window.js @@ -0,0 +1,26 @@ +async_test(t => { + assert_precondition(window.PerformanceLongTaskTiming, 'Longtasks are not supported.'); + new PerformanceObserver(t.step_func((entryList, obs) => { + const observer = new PerformanceObserver(t.step_func_done(list => { + let longtaskObserved = false; + list.getEntries().forEach(entry => { + if (entry.entryType === 'mark') + return; + assert_equals(entry.entryType, 'longtask'); + assert_equals(entry.name, 'self'); + assert_greater_than(longtask.duration, 50); + longtaskObserved = true; + }); + assert_true(longtaskObserved, 'Did not observe buffered longtask.'); + })); + observer.observe({type: 'longtask', buffered: true}); + // Observer mark so that we can flush the observer callback. + observer.observe({type: 'mark'}); + performance.mark('m'); + // Disconnect the embedding observer so this callback only runs once. + obs.disconnect(); + })).observe({entryTypes: ['longtask']}); + // Create a long task. + const begin = window.performance.now(); + while (window.performance.now() < begin + 60); +}, 'PerformanceObserver with buffered flag can see previous longtask entries.'); diff --git a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js index b1de419ca20..224a6078c1e 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js +++ b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js @@ -27,6 +27,7 @@ function toMojoNDEFRecord(record) { let nfcRecord = new device.mojom.NDEFRecord(); nfcRecord.recordType = record.recordType; nfcRecord.mediaType = record.mediaType; + nfcRecord.id = record.id; nfcRecord.data = toByteArray(record.data); if (record.data != null && record.data.records !== undefined) { // |record.data| may be an NDEFMessageInit, i.e. the payload is a message. @@ -59,6 +60,12 @@ function toByteArray(data) { function compareNDEFRecords(providedRecord, receivedRecord) { assert_equals(providedRecord.recordType, receivedRecord.recordType); + if (providedRecord.id === undefined) { + assert_equals(null, receivedRecord.id); + } else { + assert_equals(providedRecord.id, receivedRecord.id); + } + if (providedRecord.mediaType === undefined) { assert_equals(null, receivedRecord.mediaType); } else { diff --git a/tests/wpt/web-platform-tests/svg/animations/begin-attribute-mutation.html b/tests/wpt/web-platform-tests/svg/animations/begin-attribute-mutation.html new file mode 100644 index 00000000000..f28c8e9ad1a --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/begin-attribute-mutation.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<title>Mutating the 'begin' attribute after the element has started</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<svg> + <rect width="100" height="100" fill="blue"> + <animate id="anim" attributeName="x" values="100; 0" + begin="0s" dur="50ms" fill="freeze"/> + </rect> +</svg> +<script> + async_test(function(t) { + let anim = document.getElementById("anim"); + anim.endEventsReceived = 0; + anim.addEventListener('endEvent', t.step_func(function() { + anim.endEventsReceived++; + if (anim.endEventsReceived) + t.done(); + })); + onload = function() { + // Allow some time to pass before mutating 'begin'. This should ensure + // that the element has started. + requestAnimationFrame(function() { + anim.ownerSVGElement.setCurrentTime(0); + anim.setAttribute("begin", "50ms"); + }); + }; + }); +</script> diff --git a/tests/wpt/web-platform-tests/svg/animations/cyclic-syncbase-2.html b/tests/wpt/web-platform-tests/svg/animations/cyclic-syncbase-2.html new file mode 100644 index 00000000000..f48bbffa859 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/cyclic-syncbase-2.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<title>Cyclic syncbase dependency with syncbase trigger</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<svg> + <rect width="100" height="100" fill="blue"> + <animate attributeName="fill" from="yellow" to="blue" id="a" + begin="c.end; b.begin" dur="10ms"/> + </rect> + <rect width="100" height="100" x="100" fill="blue"> + <animate attributeName="fill" from="yellow" to="blue" id="b" + begin="c.end; a.begin" dur="10ms"/> + </rect> + <rect width="100" height="100" x="200" fill="blue"> + <animate attributeName="fill" from="yellow" to="blue" id="c" + begin="0; 15ms" dur="10ms"/> + </rect> +</svg> +<script> + async_test(function(t) { + let a = document.getElementById('a'); + a.ended = 0; + a.addEventListener('endEvent', t.step_func(function() { + a.ended++; + if (a.ended === 2) + t.done(); + })); + }); +</script> diff --git a/tests/wpt/web-platform-tests/tools/ci/tc/decision.py b/tests/wpt/web-platform-tests/tools/ci/tc/decision.py index a3c47aa4049..92a27ef79ab 100644 --- a/tests/wpt/web-platform-tests/tools/ci/tc/decision.py +++ b/tests/wpt/web-platform-tests/tools/ci/tc/decision.py @@ -194,9 +194,10 @@ cd web-platform-tests; def get_owner(event): - pusher = event.get("pusher", {}).get("email", "") - if "@" in pusher: - return pusher + if "pusher" in event: + pusher = event.get("pusher", {}).get("email", "") + if pusher and "@" in pusher: + return pusher return "web-platform-tests@users.noreply.github.com" diff --git a/tests/wpt/web-platform-tests/tools/requirements_mypy.txt b/tests/wpt/web-platform-tests/tools/requirements_mypy.txt index 31545c2f074..194f4284b26 100644 --- a/tests/wpt/web-platform-tests/tools/requirements_mypy.txt +++ b/tests/wpt/web-platform-tests/tools/requirements_mypy.txt @@ -1,3 +1,3 @@ -mypy==0.740 +mypy==0.750 mypy-extensions==0.4.3 typed-ast==1.4.0 diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html index ea7b5e49508..1b2dda9bfc8 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html @@ -18,29 +18,56 @@ test(() => { assert_throws(new TypeError, () => new NDEFRecord( - createRecord('empty', test_text_data, 'text/plain')), + createRecord('empty', test_text_data, test_record_id, 'text/plain')), 'mediaType does not apply for empty record type.'); assert_throws(new TypeError, () => new NDEFRecord( - createRecord('text', test_text_data, 'text/plain')), + createRecord('text', test_text_data, test_record_id, 'text/plain')), 'mediaType does not apply for text record type.'); assert_throws(new TypeError, () => new NDEFRecord( - createRecord('url', test_url_data, 'text/plain')), + createRecord('url', test_url_data, test_record_id, 'text/plain')), 'mediaType does not apply for url record type.'); assert_throws(new TypeError, () => new NDEFRecord( - createRecord('absolute-url', test_url_data, 'text/plain')), + createRecord('absolute-url', test_url_data, test_record_id, 'text/plain')), 'mediaType does not apply for absolute-url record type.'); assert_throws(new TypeError, () => new NDEFRecord( - createRecord('unknown', test_buffer_data, 'application/octet-stream')), + createRecord('unknown', test_buffer_data, test_record_id, 'application/octet-stream')), 'mediaType does not apply for unknown record type.'); assert_throws(new TypeError, () => new NDEFRecord( - createRecord('foo.example.com:bar', test_buffer_data, 'application/octet-stream')), + createRecord('foo.example.com:bar', test_buffer_data, test_record_id, 'application/octet-stream')), 'mediaType does not apply for external record type.'); }, 'NDEFRecord constructor should only accept mediaType for mime record type'); test(() => { + { + const record = new NDEFRecord(createRecord('text', test_text_data)); + assert_equals(record.id, null, 'id'); + } + { + const record = new NDEFRecord(createRecord('text', test_text_data, '')); + assert_equals(record.id, '', 'id'); + } + { + const dummy_id = 'https://dummy_host/mypath/myid'; + const record = new NDEFRecord(createRecord('text', test_text_data, dummy_id)); + assert_equals(record.id, dummy_id, 'id'); + } + { + const dummy_id = 'http://dummy_host/mypath/myid'; + const record = new NDEFRecord(createRecord('text', test_text_data, dummy_id)); + assert_equals(record.id, dummy_id, 'id'); + } + { + const dummy_id = 'mypath/myid'; + const record = new NDEFRecord(createRecord('text', test_text_data, dummy_id)); + assert_equals(record.id, dummy_id, 'id'); + } + }, 'NDEFRecord constructor with custom record ids'); + + test(() => { const record = new NDEFRecord(createTextRecord(test_text_data)); assert_equals(record.recordType, 'text', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_equals(record.encoding, 'utf-8', 'encoding'); assert_equals(record.lang, 'en', 'lang'); const decoder = new TextDecoder(); @@ -56,6 +83,7 @@ const record = new NDEFRecord(createTextRecord(uint8Array.buffer)); assert_equals(record.recordType, 'text', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_equals(record.encoding, 'utf-8', 'encoding'); assert_equals(record.lang, 'en', 'lang'); const decoder = new TextDecoder(); @@ -71,6 +99,7 @@ const record = new NDEFRecord(createTextRecord(uint8Array)); assert_equals(record.recordType, 'text', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_equals(record.encoding, 'utf-8', 'encoding'); assert_equals(record.lang, 'en', 'lang'); const decoder = new TextDecoder(); @@ -87,6 +116,7 @@ const record = new NDEFRecord(createTextRecord(test_text_data, encoding, lang)); assert_equals(record.recordType, 'text', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_equals(record.encoding, encoding, 'encoding'); assert_equals(record.lang, lang, 'lang'); const decoder = new TextDecoder(); @@ -105,6 +135,7 @@ const record = new NDEFRecord(createTextRecord(test_text_data)); assert_equals(record.recordType, 'text', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_equals(record.encoding, 'utf-8', 'encoding'); assert_equals(record.lang, test_lang, 'lang'); const decoder = new TextDecoder(); @@ -116,6 +147,7 @@ const record = new NDEFRecord(createUrlRecord(test_url_data)); assert_equals(record.recordType, 'url', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); const decoder = new TextDecoder(); assert_equals(decoder.decode(record.data), test_url_data, 'data has the same content with the original dictionary'); @@ -127,6 +159,7 @@ const record = new NDEFRecord(createUrlRecord(test_url_data, true)); assert_equals(record.recordType, 'absolute-url', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); const decoder = new TextDecoder(); assert_equals(decoder.decode(record.data), test_url_data, 'data has the same content with the original dictionary'); @@ -146,6 +179,7 @@ const record = new NDEFRecord(createMimeRecord(buffer)); assert_equals(record.recordType, 'mime', 'recordType'); assert_equals(record.mediaType, 'application/octet-stream', 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_array_equals(new Uint8Array(record.data.buffer), [1, 2, 3, 4], 'data has the same content with the original buffer'); assert_throws('NotSupportedError', () => record.toRecords(), @@ -156,6 +190,7 @@ let buffer_view = new Uint8Array(buffer, 1); const record = new NDEFRecord(createMimeRecord(buffer_view)); assert_equals(record.recordType, 'mime', 'recordType'); + assert_equals(record.id, test_record_id, 'id'); assert_array_equals(new Uint8Array(record.data.buffer), [2, 3, 4], 'data has the same content with the original buffer view'); assert_throws('NotSupportedError', () => record.toRecords(), @@ -167,6 +202,7 @@ const record = new NDEFRecord(createMimeRecordFromJson(test_json_data)); assert_equals(record.recordType, 'mime', 'recordType'); assert_equals(record.mediaType, 'application/json', 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_object_equals(JSON.parse(new TextDecoder().decode(record.data)), test_json_data, 'data has the same content with the original json'); @@ -185,6 +221,7 @@ { const record = new NDEFRecord(createUnknownRecord(buffer)); assert_equals(record.recordType, 'unknown', 'recordType'); + assert_equals(record.id, test_record_id, 'id'); assert_array_equals(new Uint8Array(record.data.buffer), [1, 2, 3, 4], 'data has the same content with the original buffer'); assert_throws('NotSupportedError', () => record.toRecords(), @@ -195,6 +232,7 @@ let buffer_view = new Uint8Array(buffer, 1); const record = new NDEFRecord(createUnknownRecord(buffer_view)); assert_equals(record.recordType, 'unknown', 'recordType'); + assert_equals(record.id, test_record_id, 'id'); assert_array_equals(new Uint8Array(record.data.buffer), [2, 3, 4], 'data has the same content with the original buffer view'); assert_throws('NotSupportedError', () => record.toRecords(), @@ -211,9 +249,10 @@ new Uint8Array(buffer).set([1, 2, 3, 4]); // Feed ArrayBuffer. { - const record = new NDEFRecord(createRecord('foo.eXamPle.coM:bAr*-', buffer)); + const record = new NDEFRecord(createRecord('foo.eXamPle.coM:bAr*-', buffer, test_record_id)); assert_equals(record.recordType, 'foo.example.com:bAr*-', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_array_equals(new Uint8Array(record.data.buffer), [1, 2, 3, 4], 'data has the same content with the original buffer'); assert_equals(record.toRecords(), null, @@ -222,9 +261,11 @@ // Feed ArrayBufferView. { let buffer_view = new Uint8Array(buffer, 1); - const record = new NDEFRecord(createRecord('foo.eXamPle.coM:bAr*-', buffer_view)); + const record = new NDEFRecord(createRecord( + 'foo.eXamPle.coM:bAr*-', buffer_view, test_record_id)); assert_equals(record.recordType, 'foo.example.com:bAr*-', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); + assert_equals(record.id, test_record_id, 'id'); assert_array_equals(new Uint8Array(record.data.buffer), [2, 3, 4], 'data has the same content with the original buffer view'); assert_equals(record.toRecords(), null, diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html index 6c7aca9fe93..a33b1fab303 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html @@ -30,7 +30,6 @@ const invalid_type_messages = // NDEFRecord.data for 'text' record must be either a string, // an arrayBuffer, or an arrayBufferView. createMessage([createTextRecord(test_json_data)]), - createMessage([createTextRecord(test_number_data)]), // NDEFRecord.encoding for 'text' record must be either "utf-8", // "utf-16", "utf-16le" or "utf-16be". @@ -49,12 +48,10 @@ const invalid_type_messages = // NDEFRecord.data for 'url' record must be string. createMessage([createUrlRecord(test_buffer_data)]), - createMessage([createUrlRecord(test_number_data)]), createMessage([createUrlRecord(test_json_data)]), // NDEFRecord.data for 'absolute-url' record must be string. createMessage([createUrlRecord(test_buffer_data, true)]), - createMessage([createUrlRecord(test_number_data, true)]), createMessage([createUrlRecord(test_json_data, true)]), // https://w3c.github.io/web-nfc/#dfn-map-binary-data-to-ndef diff --git a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js index 0fe6fe80cb1..3ce725a7c47 100644 --- a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js +++ b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js @@ -64,6 +64,7 @@ const test_buffer_data = new ArrayBuffer(test_text_byte_array.length); const test_buffer_view = new Uint8Array(test_buffer_data); test_buffer_view.set(test_text_byte_array); const fake_tag_serial_number = 'c0:45:00:02'; +const test_record_id = '/test_path/test_id'; const NFCHWStatus = {}; // OS-level NFC setting is ON @@ -81,10 +82,12 @@ function createMessage(records) { } } -function createRecord(recordType, data, mediaType, encoding, lang) { +function createRecord(recordType, data, id, mediaType, encoding, lang) { let record = {}; if (recordType !== undefined) record.recordType = recordType; + if (id !== undefined) + record.id = id; if (mediaType !== undefined) record.mediaType = mediaType; if (encoding !== undefined) @@ -97,28 +100,29 @@ function createRecord(recordType, data, mediaType, encoding, lang) { } function createTextRecord(data, encoding, lang) { - return createRecord('text', data, undefined, encoding, lang); + return createRecord('text', data, test_record_id, undefined, encoding, lang); } function createMimeRecordFromJson(json) { return createRecord( 'mime', new TextEncoder('utf-8').encode(JSON.stringify(json)), - 'application/json'); + test_record_id, 'application/json'); } function createMimeRecord(buffer) { - return createRecord('mime', buffer, 'application/octet-stream'); + return createRecord( + 'mime', buffer, test_record_id, 'application/octet-stream'); } function createUnknownRecord(buffer) { - return createRecord('unknown', buffer); + return createRecord('unknown', buffer, test_record_id); } function createUrlRecord(url, isAbsUrl) { if (isAbsUrl) { - return createRecord('absolute-url', url); + return createRecord('absolute-url', url, test_record_id); } - return createRecord('url', url); + return createRecord('url', url, test_record_id); } function createNDEFPushOptions(target, ignoreRead) { @@ -135,9 +139,11 @@ function assertNDEFMessagesEqual(providedMessage, receivedMessage) { let provided = providedMessage; if (providedMessage instanceof ArrayBuffer || ArrayBuffer.isView(providedMessage)) - provided = createMessage([createMimeRecord(providedMessage)]); + provided = createMessage([createRecord( + 'mime', providedMessage, undefined /* id */, + 'application/octet-stream')]); else if (typeof providedMessage === 'string') - provided = createMessage([createTextRecord(providedMessage)]); + provided = createMessage([createRecord('text', providedMessage)]); assert_equals(provided.records.length, receivedMessage.data.length, 'NDEFMessages must have same number of NDEFRecords'); @@ -161,6 +167,7 @@ function assertWebNDEFMessagesEqual(message, expectedMessage) { let expectedRecord = expectedMessage.records[i]; assert_equals(record.recordType, expectedRecord.recordType); assert_equals(record.mediaType, expectedRecord.mediaType); + assert_equals(record.id, expectedRecord.id); // Compares record data assert_array_equals(new Uint8Array(record.data), |