Update web-platform-tests to revision d21eaee14bab28a8bd57727d41330d0bef170a92

This commit is contained in:
WPT Sync Bot 2020-11-23 08:20:47 +00:00
parent 310a1346da
commit 775b941c48
65 changed files with 445 additions and 115 deletions

View file

@ -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

View file

@ -1,4 +0,0 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -1,4 +0,0 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -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

View file

@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -1,2 +0,0 @@
[no-transition-from-ua-to-blocking-stylesheet.html]
expected: FAIL

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -17,3 +17,6 @@
[test the top of layer]
expected: FAIL
[test some point of the element: top left corner]
expected: FAIL

View file

@ -2,6 +2,3 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -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

View file

@ -1,2 +0,0 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

@ -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

View file

@ -56,3 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript ]
expected: FAIL

View file

@ -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

View file

@ -1,4 +1,4 @@
[traverse_the_history_4.html]
[traverse_the_history_3.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,4 +1,5 @@
[creating_browsing_context_test_01.html]
expected: TIMEOUT
[first argument: absolute url]
expected: FAIL
expected: TIMEOUT

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,4 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

@ -1,4 +0,0 @@
[form-double-submit.html]
[default submit action should supersede onclick submit()]
expected: FAIL

View file

@ -0,0 +1,2 @@
[script-onerror-insertion-point-2.html]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -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

View file

@ -1,4 +1,5 @@
[import-in-moduleworker.html]
expected: ERROR
[Base URL in module dedicated workers: import]
expected: FAIL

View file

@ -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

View file

@ -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",
[

View file

@ -1,4 +0,0 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -1,4 +0,0 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -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

View file

@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -1,2 +0,0 @@
[no-transition-from-ua-to-blocking-stylesheet.html]
expected: FAIL

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -21,3 +21,6 @@
[test the top of layer]
expected: FAIL
[test some point of the element: top left corner]
expected: FAIL

View file

@ -2,6 +2,3 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -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

View file

@ -1,2 +0,0 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

@ -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

View file

@ -56,3 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript ]
expected: FAIL

View file

@ -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

View file

@ -1,4 +1,4 @@
[traverse_the_history_4.html]
[traverse_the_history_3.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,4 +1,5 @@
[creating_browsing_context_test_01.html]
expected: TIMEOUT
[first argument: absolute url]
expected: FAIL
expected: TIMEOUT

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,4 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

@ -1,4 +0,0 @@
[form-double-submit.html]
[default submit action should supersede onclick submit()]
expected: FAIL

View file

@ -0,0 +1,2 @@
[script-onerror-insertion-point-2.html]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -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

View file

@ -1,4 +1,5 @@
[import-in-moduleworker.html]
expected: ERROR
[Base URL in module dedicated workers: import]
expected: FAIL

View file

@ -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>

View file

@ -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>

View file

@ -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.");

View file

@ -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>

View file

@ -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);
}

View file

@ -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