mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Update web-platform-tests to revision d21eaee14bab28a8bd57727d41330d0bef170a92
This commit is contained in:
parent
310a1346da
commit
775b941c48
65 changed files with 445 additions and 115 deletions
|
@ -4,7 +4,7 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -5,9 +5,6 @@
|
|||
[[data-expected-height\] 7]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 1]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 2]
|
||||
[[data-expected-height\] 4]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[no-transition-from-ua-to-blocking-stylesheet.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -17,3 +17,6 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,6 +2,3 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -309,18 +309,24 @@
|
|||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,3 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
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
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit.html]
|
||||
[default submit action should supersede onclick submit()]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -311,3 +311,6 @@
|
|||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t3.8782949092491264e+16\t9.3139332532882690e-1\t3.8782949092491264e+16\t4.1639711213089280e+16\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 3.8782949092491264e+16 at index of 28696.\n\tMax RelError of 4.1639711213089280e+16 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t-7.5334283148184919e-18\t9.3139332532882690e-1\t9.3139332532882690e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.3139332532882690e-1 at index of 28696.\n\tMax RelError of 1.0000000000000000e+0 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[import-in-moduleworker.html]
|
||||
expected: ERROR
|
||||
[Base URL in module dedicated workers: import]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -149949,6 +149949,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"grid-auto-margin-and-replaced-item-001.html": [
|
||||
"f6c0afb6ae3cb654367001439c1569b13e2f33e2",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"grid-img-item-percent-max-height-001.html": [
|
||||
"d0d6d04dc7b882ebe1addaca94a4c38231973803",
|
||||
[
|
||||
|
@ -311749,6 +311762,10 @@
|
|||
[]
|
||||
],
|
||||
"grid-items": {
|
||||
"grid-auto-margin-and-replaced-item-001-ref.html": [
|
||||
"3e08fdfbde27d0aa36dcabd2b7ea240116538b69",
|
||||
[]
|
||||
],
|
||||
"grid-item-margins-and-writing-modes-001-ref.html": [
|
||||
"86553ef6f4077f3c6bc348496e513d7960d7b79f",
|
||||
[]
|
||||
|
@ -370512,7 +370529,7 @@
|
|||
[]
|
||||
],
|
||||
"helpers.js": [
|
||||
"620feebd2999ac71fe06d73e7b0cda4ec5d855fe",
|
||||
"6d6d438ab81da54e5389061d162ff7051728d30c",
|
||||
[]
|
||||
],
|
||||
"resources": {
|
||||
|
@ -454885,7 +454902,7 @@
|
|||
},
|
||||
"hr-time": {
|
||||
"basic.any.js": [
|
||||
"364dd81a3448188bd76f6ff410807bfcca93177d",
|
||||
"4cd6e42dfc2274ac04ab46fb2f12d30ca150865b",
|
||||
[
|
||||
"hr-time/basic.any.html",
|
||||
{}
|
||||
|
@ -544784,6 +544801,16 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"createcredential-resident-key.https.html": [
|
||||
"d64ec14c00d38e49eaa91142b55f47c2e336670d",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true,
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"createcredential-timeout.https.html": [
|
||||
"fc35a6e72f0a76a4ff410df71b346109cc215681",
|
||||
[
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -8,9 +8,6 @@
|
|||
[[data-expected-height\] 3]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 1]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 2]
|
||||
[[data-expected-height\] 4]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[no-transition-from-ua-to-blocking-stylesheet.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -21,3 +21,6 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,6 +2,3 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -309,18 +309,24 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,3 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
expected: TIMEOUT
|
||||
[first argument: absolute url]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -6,11 +7,11 @@
|
|||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit.html]
|
||||
[default submit action should supersede onclick submit()]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -539,3 +539,6 @@
|
|||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t3.8782949092491264e+16\t9.3139332532882690e-1\t3.8782949092491264e+16\t4.1639711213089280e+16\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 3.8782949092491264e+16 at index of 28696.\n\tMax RelError of 4.1639711213089280e+16 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t-7.5334283148184919e-18\t9.3139332532882690e-1\t9.3139332532882690e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.3139332532882690e-1 at index of 28696.\n\tMax RelError of 1.0000000000000000e+0 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[import-in-moduleworker.html]
|
||||
expected: ERROR
|
||||
[Base URL in module dedicated workers: import]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Reference: 100x100 green square image in the middle</title>
|
||||
<link rel="author" title="Hyunjune Kim" href="mailto:hyunjune.kim@samsung.com">
|
||||
<style>
|
||||
img {
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div>
|
||||
<img src="./support/100x100-green.png">
|
||||
</div>
|
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout Test: Margin auto and replaced grid item</title>
|
||||
<link rel="author" title="Hyunjune Kim" href="mailto:hyunjune.kim@samsung.com">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-grid-1/#alignment">
|
||||
<meta name="assert" content="Checks width of the nested grid container applied 'margin:auto' with a replaced item which has a property called max-height.">
|
||||
<link rel="match" href="grid-auto-margin-and-replaced-item-001-ref.html">
|
||||
<style>
|
||||
#reference-overlapped-red {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
left:0;
|
||||
right:0;
|
||||
margin: auto;
|
||||
z-index: -1;
|
||||
}
|
||||
.grid {
|
||||
display: grid;
|
||||
}
|
||||
.nested-grid {
|
||||
display: grid;
|
||||
margin: auto;
|
||||
}
|
||||
img {
|
||||
max-height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body onload="loadImage()">
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div class="grid">
|
||||
<div id="reference-overlapped-red"></div>
|
||||
<div class="nested-grid">
|
||||
<img id="replaced">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function loadImage() {
|
||||
var replaced = document.getElementById("replaced");
|
||||
replaced.src = "./support/100x100-green.png";
|
||||
}
|
||||
</script>
|
|
@ -26,3 +26,12 @@ async_test(function() {
|
|||
this.done();
|
||||
}, 2000);
|
||||
}, 'High resolution time has approximately the right relative magnitude');
|
||||
|
||||
test(function() {
|
||||
var didHandle = false;
|
||||
self.performance.addEventListener("testEvent", function() {
|
||||
didHandle = true;
|
||||
}, { once: true} );
|
||||
self.performance.dispatchEvent(new Event("testEvent"));
|
||||
assert_true(didHandle, "Performance extends EventTarget, so event dispatching should work.");
|
||||
}, "Performance interface extends EventTarget.");
|
||||
|
|
|
@ -0,0 +1,178 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>navigator.credentials.create() test with residentKey and credProps</title>
|
||||
<meta name="timeout" content="long">
|
||||
<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 src=helpers.js></script>
|
||||
<script>
|
||||
|
||||
"use strict";
|
||||
const credPropsTests = [
|
||||
{
|
||||
name: "U2F",
|
||||
authenticatorArgs: {
|
||||
protocol: "ctap1/u2f",
|
||||
},
|
||||
expected: {
|
||||
discouraged: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: false,
|
||||
},
|
||||
preferred: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: false,
|
||||
},
|
||||
required: {
|
||||
success: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "CTAP 2.0 without resident key support",
|
||||
authenticatorArgs: {
|
||||
protocol: "ctap2",
|
||||
hasResidentKey: false,
|
||||
hasUserVerification: true,
|
||||
isUserVerified: true,
|
||||
},
|
||||
expected: {
|
||||
discouraged: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: false,
|
||||
},
|
||||
preferred: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: false,
|
||||
},
|
||||
required: {
|
||||
success: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "CTAP 2.0 with resident key support",
|
||||
authenticatorArgs: {
|
||||
protocol: "ctap2",
|
||||
hasResidentKey: true,
|
||||
hasUserVerification: true,
|
||||
isUserVerified: true,
|
||||
},
|
||||
expected: {
|
||||
discouraged: {
|
||||
success: true,
|
||||
// CTAP2.0 authenticators may treat all credentials as discoverable,
|
||||
// thus Chrome omits 'rk' in this case.
|
||||
hasRk: false,
|
||||
},
|
||||
preferred: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: true,
|
||||
},
|
||||
required: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "CTAP 2.1 without resident key support",
|
||||
authenticatorArgs: {
|
||||
protocol: "ctap2_1",
|
||||
hasResidentKey: false,
|
||||
hasUserVerification: true,
|
||||
isUserVerified: true,
|
||||
},
|
||||
expected: {
|
||||
discouraged: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: false,
|
||||
},
|
||||
preferred: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: false,
|
||||
},
|
||||
required: {
|
||||
success: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "CTAP 2.1 with resident key support",
|
||||
authenticatorArgs: {
|
||||
protocol: "ctap2_1",
|
||||
hasResidentKey: true,
|
||||
hasUserVerification: true,
|
||||
isUserVerified: true,
|
||||
},
|
||||
expected: {
|
||||
discouraged: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: false,
|
||||
},
|
||||
preferred: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: true,
|
||||
},
|
||||
required: {
|
||||
success: true,
|
||||
hasRk: true,
|
||||
rk: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
for (const fixture of credPropsTests) {
|
||||
for (const rkRequirement of ["discouraged", "preferred", "required"]) {
|
||||
virtualAuthenticatorPromiseTest(async t => {
|
||||
const promise = createCredential({
|
||||
options: {
|
||||
publicKey: {
|
||||
authenticatorSelection: {
|
||||
residentKey: rkRequirement,
|
||||
},
|
||||
extensions: {
|
||||
credProps: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
assert_true(rkRequirement in fixture.expected);
|
||||
const expected = fixture.expected[rkRequirement];
|
||||
assert_true('success' in expected);
|
||||
if (!expected.success) {
|
||||
return promise_rejects_dom(t, "NotAllowedError", promise);
|
||||
}
|
||||
|
||||
const cred = await promise;
|
||||
assert_true('credProps' in cred.getClientExtensionResults());
|
||||
const credProps = cred.getClientExtensionResults().credProps;
|
||||
assert_equals('rk' in credProps, expected.hasRk, "hasRk");
|
||||
if (expected.hasRk) {
|
||||
assert_equals(credProps.rk, expected.rk, "rk");
|
||||
}
|
||||
}, fixture.authenticatorArgs, fixture.name
|
||||
+ ": navigator.credentials.create() with credProps extension, rk="
|
||||
+ rkRequirement);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body></body>
|
||||
</html>
|
|
@ -550,31 +550,57 @@ function validateAuthenticatorAssertionResponse(assert) {
|
|||
// TODO: parseAuthenticatorData() and make sure flags are correct
|
||||
}
|
||||
|
||||
function defaultAuthenticatorArgs() {
|
||||
return {
|
||||
protocol: 'ctap1/u2f',
|
||||
transport: 'usb',
|
||||
hasResidentKey: false,
|
||||
hasUserVerification: false,
|
||||
isUserVerified: false,
|
||||
};
|
||||
}
|
||||
|
||||
function standardSetup(cb, options = {}) {
|
||||
// Setup an automated testing environment if available.
|
||||
let authenticatorArgs = {
|
||||
protocol: "ctap1/u2f",
|
||||
transport: "usb",
|
||||
hasResidentKey: false,
|
||||
hasUserVerification: false,
|
||||
isUserVerified: false,
|
||||
};
|
||||
extendObject(authenticatorArgs, options);
|
||||
window.test_driver.add_virtual_authenticator(authenticatorArgs).then(authenticator => {
|
||||
// Setup an automated testing environment if available.
|
||||
let authenticatorArgs = Object.assign(defaultAuthenticatorArgs(), options);
|
||||
window.test_driver.add_virtual_authenticator(authenticatorArgs)
|
||||
.then(authenticator => {
|
||||
cb();
|
||||
// XXX add a subtest to clean up the virtual authenticator since
|
||||
// testharness does not support waiting for promises on cleanup.
|
||||
promise_test(() => window.test_driver.remove_virtual_authenticator(authenticator),
|
||||
"Clean up the test environment");
|
||||
}).catch(error => {
|
||||
if (error !== "error: Action add_virtual_authenticator not implemented") {
|
||||
throw error;
|
||||
promise_test(
|
||||
() =>
|
||||
window.test_driver.remove_virtual_authenticator(authenticator),
|
||||
'Clean up the test environment');
|
||||
})
|
||||
.catch(error => {
|
||||
if (error !==
|
||||
'error: Action add_virtual_authenticator not implemented') {
|
||||
throw error;
|
||||
}
|
||||
// The protocol is not available. Continue manually.
|
||||
cb();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* JSHINT */
|
||||
/* globals promise_rejects_dom, promise_rejects_js, assert_class_string, assert_equals, assert_idl_attribute, assert_readonly, promise_test */
|
||||
/* exported standardSetup, CreateCredentialsTest, GetCredentialsTest */
|
||||
// virtualAuthenticatorPromiseTest runs |testCb| in a promise_test with a
|
||||
// virtual authenticator set up before and destroyed after the test, if the
|
||||
// virtual testing API is available. In manual tests, setup and teardown is
|
||||
// skipped.
|
||||
function virtualAuthenticatorPromiseTest(
|
||||
testCb, options = {}, name = 'Virtual Authenticator Test') {
|
||||
let authenticatorArgs = Object.assign(defaultAuthenticatorArgs(), options);
|
||||
promise_test(async t => {
|
||||
try {
|
||||
let authenticator =
|
||||
await window.test_driver.add_virtual_authenticator(authenticatorArgs);
|
||||
t.add_cleanup(
|
||||
() => window.test_driver.remove_virtual_authenticator(authenticator));
|
||||
} catch (error) {
|
||||
if (error !== 'error: Action add_virtual_authenticator not implemented') {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
return testCb(t);
|
||||
}, name);
|
||||
}
|
||||
|
|
|
@ -248,3 +248,6 @@
|
|||
[WebGL test #44: attachment 7 should be 0,255,0,255\nat (4, 0) expected: 0,255,0,255 was 255,45,0,0]
|
||||
expected: FAIL
|
||||
|
||||
[WebGL test #44: attachment 7 should be 0,255,0,255\nat (4, 0) expected: 0,255,0,255 was 255,3,0,0]
|
||||
expected: FAIL
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue