Tests: Synchronize imported tests with the WPT repository

This commit is contained in:
Tim Ledbetter 2025-06-21 15:43:33 +01:00 committed by Alexander Kalenik
commit 689dff3ee8
Notes: github-actions[bot] 2025-06-22 21:52:43 +00:00
155 changed files with 1485 additions and 750 deletions

View file

@ -8,7 +8,3 @@
}
</style>
<p>PASS if this tests does not crash</p>
<script>
if (window.internals)
window.internals.signalTestIsDone("PASS");
</script>

View file

@ -11,7 +11,5 @@ document.addEventListener("DOMContentLoaded", () => {
document.documentElement.appendChild(a)
b.offsetTop;
b.setAttributeNS("h", "class", "")
if (window.internals)
window.internals.signalTestIsDone("PASS");
})
</script>

View file

@ -1,11 +1,12 @@
<!DOCTYPE html>
<link rel=author href="mailto:luke@warlow.dev">
<link rel=author href="mailto:masonf@chromium.org">
<link rel=help href="https://html.spec.whatwg.org/#attr-dialog-closedby">
<!-- This test passes if it does not crash. -->
<dialog id="dialog" open>Dialog</dialog>
<script>
window.onload = () => {
dialog.requestClose();
}
window.onload = () => dialog.requestClose();
</script>

View file

@ -1,3 +1,4 @@
<!DOCTYPE html>
<div style="width: 100px; height: 80px; background: green"></div>
<div style="width: 100px; height: 20px; background: blue"></div>

View file

@ -3,13 +3,14 @@
<head>
<title>CSS Reftest Reference</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
<style type="text/css">
<style type="text/css"><![CDATA[
div
{
background-color: green;
height: 100px;
width: 100px;
}</style>
}
]]></style>
</head>
<body>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>

View file

@ -8,4 +8,4 @@
<p>Test passes if you see a green square, and no red.</p>
<!-- solid color #009900 PNG image, untagged -->
<p><img src="./support/009900.png" alt="should be green"/></p>
</body>
</body>

View file

@ -11,4 +11,4 @@
red-green swapped to be sure the profile is actually applied
-->
<p><img src="./support/swap-990000-iCCP.png" alt="should be green"/></p>
</body>
</body>

View file

@ -1,62 +1,13 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>CSS Reftest Reference</title>
<link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com">
<style>
div {
position: relative;
width: 100px;
}
#div1,
#div3 {
background-color: #cfc;
}
#div1 {
z-index: 5;
}
#div2 {
z-index: 1;
background-color: #fdd;
height: 100px;
top: -20px;
}
#div2_1 {
background-color: #ffc;
z-index: 6;
top: -10px;
}
#div2_2 {
z-index: 3;
position: absolute;
top: -15px;
width: 40px;
height: 100px;
background-color: #ddf;
}
#div3 {
z-index: 2;
top: -50px;
}
</style>
</head>
<body>
<div id="div1">
<br/><br/>
</div>
<div id="div2">
<div id="div2_1">
<br/><br/>
</div>
<div id="div2_2">
</div>
</div>
<div id="div3">
<br/><br/>
</div>
</body>
</html>
<meta charset="utf-8">
<title>Paint Containment Stacking Context Reference</title>
<link rel="author" title="Psychpsyo" href="mailto:psychpsyo@gmail.com">
<style>
div {
width: 100px;
height: 100px;
background-color: green;
}
</style>
<div></div>
Test succeeds if there is no red.

View file

@ -23,3 +23,6 @@ div { font-size: 50px; }
<div>&nbsp;</div>
</div>
</div>

View file

@ -1 +1 @@
<html style="background: green"></html>
<html style="background: green"></html>

View file

@ -3,13 +3,14 @@
<head>
<title>CSS Reftest Reference</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
<style type="text/css">
div {
background-color: green;
height: 100px;
width: 100px;
<style type="text/css"><![CDATA[
div
{
background-color: green;
height: 100px;
width: 100px;
}
</style>
]]></style>
</head>
<body>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>

View file

@ -449,4 +449,4 @@
<td>146</td>
</tr>
</tbody>
</table>
</table>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -14,4 +14,4 @@
<p>Test passes if you see a green square, and no red.</p>
<p class="ref"> </p>
<p class="test"> </p>
</body>
</body>

View file

@ -11,4 +11,4 @@
<p>Test passes if you see a green square, and no red.</p>
<!-- solid color #990000 PNG image, iCCP with v2 ICC swapped red-green sRGB profile -->
<p><img src="./support/swap-990000-iCCP.png" alt="should be green"/></p>
</body>
</body>

View file

@ -11,4 +11,4 @@
<p>Test passes if you see a green square, and no red.</p>
<!-- solid color #009900 PNG image, sRGB chunk, relative colorimetric -->
<p><img src="./support/009900-sRGB.png" alt="should be green"/></p>
</body>
</body>

View file

@ -10,4 +10,4 @@
<p>Test passes if you see a green square, and no red.</p>
<!-- solid color #009900 PNG image, no color information -->
<p><img src="./support/009900.png" alt="should be green"/></p>
</body>
</body>

View file

@ -40,3 +40,4 @@
document.documentElement.removeAttribute("class");
});
</script>

View file

@ -1,66 +1,32 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>CSS Test: 'contain: layout' with stacking contents. Z-index is defined only for siblings and children.</title>
<link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com">
<link rel="author" title="Morgan Rae Reschenberg" href="mailto:mreschenberg@berkeley.edu">
<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#x43">
<link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
<link rel="match" href="../../../../expected/wpt-import/css/css-contain/contain-paint-stacking-context-001-ref.html">
<style>
div {
position: relative;
width: 100px;
}
#div1,
#div3 {
background-color: #cfc;
}
#div1 {
z-index: 5;
}
#div2 {
contain: layout;
background-color: #fdd;
height: 100px;
top: -20px;
}
#div2_1 {
background-color: #ffc;
z-index: 6;
top: -10px;
}
#div2_2 {
z-index: 3;
position: absolute;
top: -15px;
width: 40px;
height: 100px;
background-color: #ddf;
}
#div3 {
z-index: 2;
top: -50px;
}
</style>
</head>
<body>
<div id="div1">
<br/><br/>
</div>
<div id="div2">
<div id="div2_1">
<br/><br/>
</div>
<div id="div2_2">
</div>
</div>
<div id="div3">
<br/><br/>
</div>
</body>
</html>
<title>'contain: layout' establishes stacking context.</title>
<link rel="author" title="Psychpsyo" href="mailto:psychpsyo@gmail.com">
<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#x43">
<link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
<link rel="match" href="../../../../expected/wpt-import/css/css-contain/contain-paint-stacking-context-001-ref.html">
<style>
div {
width: 100px;
height: 100px;
}
#front {
background-color: green;
/* makes a stacking context and puts this on top */
position: absolute;
z-index: 10;
}
#back {
contain: layout;
}
#notOnTop {
background-color: red;
/* z-index is higher than on #front, but this should still be covered up because it is inside #back, which has 'contain: layout' */
position: absolute;
z-index: 1000;
}
</style>
<div id="front"></div>
<div id="back">
<div id="notOnTop"></div>
</div>
Test succeeds if there is no red.

View file

@ -34,3 +34,6 @@ div { font-size: 50px; }
<div class=green></div><!-- won't show unless ::after is inserted and grid tracks are properly sized-->
</div>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 B

After

Width:  |  Height:  |  Size: 218 B

Before After
Before After

View file

@ -8,7 +8,7 @@
<link rel="help" href="https://drafts.csswg.org/css-images-3/#color-stop-syntax">
<link rel="help" href="https://drafts.csswg.org/css-images-3/#coloring-gradient-line">
<meta name="assert" content="Tests that gradient with a single color stop renders the expected solid color">
<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-4500">
<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-6000">
<link rel="match" href="../../../../../expected/wpt-import//css/reference/ref-filled-green-100px-square-only.html">
<style>
body {

View file

@ -8,7 +8,7 @@
<link rel="help" href="https://drafts.csswg.org/css-images-3/#color-stop-syntax">
<link rel="help" href="https://drafts.csswg.org/css-images-3/#coloring-gradient-line">
<meta name="assert" content="Tests that gradient with a single color stop renders the expected solid color">
<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-4500">
<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-6000">
<link rel="match" href="../../../../../expected/wpt-import//css/reference/ref-filled-green-100px-square-only.html">
<style>
body {

View file

@ -8,7 +8,7 @@
<link rel="help" href="https://drafts.csswg.org/css-images-3/#color-stop-syntax">
<link rel="help" href="https://drafts.csswg.org/css-images-3/#coloring-gradient-line">
<meta name="assert" content="Tests that gradient with a single color stop renders the expected solid color">
<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-4500">
<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-6000">
<link rel="match" href="../../../../../expected/wpt-import//css/reference/ref-filled-green-100px-square-only.html">
<style>
body {

View file

@ -20,3 +20,4 @@
document.documentElement.offsetTop;
toggler.classList.toggle("a");
</script>

View file

@ -459,4 +459,4 @@
<script>
document.documentElement.offsetTop;
document.querySelectorAll(`tbody tr:not([data-affiliation=google-llc"])`).forEach($tr => $tr.setAttribute('hidden', 'hidden'));
</script>
</script>

View file

@ -23,3 +23,4 @@
document.documentElement.offsetTop;
toggler.setAttribute("attr", "no");
</script>

View file

@ -23,3 +23,4 @@
document.documentElement.offsetTop;
toggler.classList.toggle("c");
</script>

View file

@ -23,3 +23,4 @@
document.documentElement.offsetTop;
toggler.classList.toggle("c");
</script>

View file

@ -23,3 +23,4 @@
document.documentElement.offsetTop;
t2.id = "new-id";
</script>

View file

@ -23,3 +23,4 @@
document.documentElement.offsetTop;
t2.id = "new-id";
</script>

View file

@ -21,3 +21,4 @@
document.documentElement.offsetTop;
toggler.classList.toggle("c");
</script>

View file

@ -23,3 +23,4 @@
document.documentElement.offsetTop;
toggler.classList.toggle("a");
</script>

View file

@ -21,3 +21,4 @@
document.documentElement.offsetTop;
toggler.classList.toggle("ancestor");
</script>

View file

@ -22,3 +22,4 @@
document.documentElement.offsetTop;
toggler.classList.toggle("sibling");
</script>

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 608 tests
Found 620 tests
608 Pass
620 Pass
Pass Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [encrypt])
Pass Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, false, [encrypt])
Pass Bad usages: importKey(spki, {name: ECDH, namedCurve: P-256}, true, [decrypt])
@ -610,4 +610,16 @@ Pass Missing algorithm name: importKey(pkcs8, {}, false, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, true, deriveKey)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveKey)
Pass Missing algorithm name: importKey(jwk(private), {}, true, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveBits)
Pass Invalid 'kty' field: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits])
Pass Invalid 'kty' field: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits])
Pass Invalid 'kty' field: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits])
Pass Import from a non-extractable: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits])
Pass Import from a non-extractable: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits])
Pass Import from a non-extractable: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits])
Pass Invalid 'use' field: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits])
Pass Invalid 'use' field: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits])
Pass Invalid 'use' field: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits])
Pass Invalid 'crv' field: importKey(jwk(private), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits])
Pass Invalid 'crv' field: importKey(jwk(private), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits])
Pass Invalid 'crv' field: importKey(jwk(private), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits])

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 608 tests
Found 620 tests
608 Pass
620 Pass
Pass Bad usages: importKey(spki, {name: ECDSA, namedCurve: P-256}, true, [encrypt])
Pass Bad usages: importKey(spki, {name: ECDSA, namedCurve: P-256}, false, [encrypt])
Pass Bad usages: importKey(spki, {name: ECDSA, namedCurve: P-256}, true, [verify, encrypt])
@ -610,4 +610,16 @@ Pass Missing algorithm name: importKey(raw, {}, false, verify)
Pass Missing algorithm name: importKey(pkcs8, {}, true, sign)
Pass Missing algorithm name: importKey(pkcs8, {}, false, sign)
Pass Missing algorithm name: importKey(jwk(private), {}, true, sign)
Pass Missing algorithm name: importKey(jwk(private), {}, false, sign)
Pass Missing algorithm name: importKey(jwk(private), {}, false, sign)
Pass Invalid 'kty' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-256}, true, [sign])
Pass Invalid 'kty' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-384}, true, [sign])
Pass Invalid 'kty' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-521}, true, [sign])
Pass Import from a non-extractable: importKey(jwk(private), {name: ECDSA, namedCurve: P-256}, true, [sign])
Pass Import from a non-extractable: importKey(jwk(private), {name: ECDSA, namedCurve: P-384}, true, [sign])
Pass Import from a non-extractable: importKey(jwk(private), {name: ECDSA, namedCurve: P-521}, true, [sign])
Pass Invalid 'use' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-256}, true, [sign])
Pass Invalid 'use' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-384}, true, [sign])
Pass Invalid 'use' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-521}, true, [sign])
Pass Invalid 'crv' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-256}, true, [sign])
Pass Invalid 'crv' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-384}, true, [sign])
Pass Invalid 'crv' field: importKey(jwk(private), {name: ECDSA, namedCurve: P-521}, true, [sign])

View file

@ -1,44 +1,55 @@
Harness status: OK
Found 62 tests
Found 72 tests
62 Pass
52 Pass
20 Fail
Pass Good parameters: Ed25519 bits (spki, buffer(44), {name: Ed25519}, true, [verify])
Pass Good parameters: Ed25519 bits (spki, buffer(44), Ed25519, true, [verify])
Pass Good parameters: Ed25519 bits (jwk, object(kty, crv, x), {name: Ed25519}, true, [verify])
Pass Good parameters: Ed25519 bits (jwk, object(kty, crv, x), Ed25519, true, [verify])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [verify])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [verify])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [verify])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [verify])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [verify])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [verify])
Pass Good parameters: Ed25519 bits (raw, buffer(32), {name: Ed25519}, true, [verify])
Pass Good parameters: Ed25519 bits (raw, buffer(32), Ed25519, true, [verify])
Pass Good parameters: Ed25519 bits (spki, buffer(44), {name: Ed25519}, true, [])
Pass Good parameters: Ed25519 bits (spki, buffer(44), Ed25519, true, [])
Pass Good parameters: Ed25519 bits (jwk, object(kty, crv, x), {name: Ed25519}, true, [])
Pass Good parameters: Ed25519 bits (jwk, object(kty, crv, x), Ed25519, true, [])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [])
Pass Good parameters: Ed25519 bits (raw, buffer(32), {name: Ed25519}, true, [])
Pass Good parameters: Ed25519 bits (raw, buffer(32), Ed25519, true, [])
Pass Good parameters: Ed25519 bits (spki, buffer(44), {name: Ed25519}, true, [verify, verify])
Pass Good parameters: Ed25519 bits (spki, buffer(44), Ed25519, true, [verify, verify])
Pass Good parameters: Ed25519 bits (jwk, object(kty, crv, x), {name: Ed25519}, true, [verify, verify])
Pass Good parameters: Ed25519 bits (jwk, object(kty, crv, x), Ed25519, true, [verify, verify])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [verify, verify])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [verify, verify])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [verify, verify])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(kty, crv, x), {name: Ed25519}, true, [verify, verify])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [verify, verify])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(kty, crv, x), Ed25519, true, [verify, verify])
Pass Good parameters: Ed25519 bits (raw, buffer(32), {name: Ed25519}, true, [verify, verify])
Pass Good parameters: Ed25519 bits (raw, buffer(32), Ed25519, true, [verify, verify])
Pass Good parameters: Ed25519 bits (pkcs8, buffer(48), {name: Ed25519}, true, [sign])
Pass Good parameters: Ed25519 bits (pkcs8, buffer(48), Ed25519, true, [sign])
Pass Good parameters: Ed25519 bits (jwk, object(crv, d, x, kty), {name: Ed25519}, true, [sign])
Pass Good parameters: Ed25519 bits (jwk, object(crv, d, x, kty), Ed25519, true, [sign])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(crv, d, x, kty), {name: Ed25519}, true, [sign])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(crv, d, x, kty), Ed25519, true, [sign])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(crv, d, x, kty), {name: Ed25519}, true, [sign])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(crv, d, x, kty), {name: Ed25519}, true, [sign])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(crv, d, x, kty), Ed25519, true, [sign])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(crv, d, x, kty), Ed25519, true, [sign])
Pass Good parameters: Ed25519 bits (pkcs8, buffer(48), {name: Ed25519}, true, [sign, sign])
Pass Good parameters: Ed25519 bits (pkcs8, buffer(48), Ed25519, true, [sign, sign])
Pass Good parameters: Ed25519 bits (jwk, object(crv, d, x, kty), {name: Ed25519}, true, [sign, sign])
Pass Good parameters: Ed25519 bits (jwk, object(crv, d, x, kty), Ed25519, true, [sign, sign])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(crv, d, x, kty), {name: Ed25519}, true, [sign, sign])
Pass Good parameters with ignored JWK alg: Ed25519 (jwk, object(crv, d, x, kty), Ed25519, true, [sign, sign])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(crv, d, x, kty), {name: Ed25519}, true, [sign, sign])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(crv, d, x, kty), {name: Ed25519}, true, [sign, sign])
Fail Good parameters with JWK alg Ed25519: Ed25519 (jwk, object(crv, d, x, kty), Ed25519, true, [sign, sign])
Fail Good parameters with JWK alg EdDSA: Ed25519 (jwk, object(crv, d, x, kty), Ed25519, true, [sign, sign])
Pass Good parameters: Ed25519 bits (spki, buffer(44), {name: Ed25519}, false, [verify])
Pass Good parameters: Ed25519 bits (spki, buffer(44), Ed25519, false, [verify])
Pass Good parameters: Ed25519 bits (jwk, object(kty, crv, x), {name: Ed25519}, false, [verify])

View file

@ -7,34 +7,34 @@ Pass Good parameters: X25519 bits (spki, buffer(44), {name: X25519}, true, [])
Pass Good parameters: X25519 bits (spki, buffer(44), X25519, true, [])
Pass Good parameters: X25519 bits (jwk, object(kty, crv, x), {name: X25519}, true, [])
Pass Good parameters: X25519 bits (jwk, object(kty, crv, x), X25519, true, [])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(kty, crv, x), {name: X25519}, true, [])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(kty, crv, x), X25519, true, [])
Pass Good parameters with JWK alg: X25519 (jwk, object(kty, crv, x), {name: X25519}, true, [])
Pass Good parameters with JWK alg: X25519 (jwk, object(kty, crv, x), X25519, true, [])
Pass Good parameters: X25519 bits (raw, buffer(32), {name: X25519}, true, [])
Pass Good parameters: X25519 bits (raw, buffer(32), X25519, true, [])
Pass Good parameters: X25519 bits (pkcs8, buffer(48), {name: X25519}, true, [deriveKey])
Pass Good parameters: X25519 bits (pkcs8, buffer(48), X25519, true, [deriveKey])
Pass Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey])
Pass Good parameters: X25519 bits (jwk, object(crv, d, x, kty), X25519, true, [deriveKey])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(crv, d, x, kty), X25519, true, [deriveKey])
Pass Good parameters with JWK alg: X25519 (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey])
Pass Good parameters with JWK alg: X25519 (jwk, object(crv, d, x, kty), X25519, true, [deriveKey])
Pass Good parameters: X25519 bits (pkcs8, buffer(48), {name: X25519}, true, [deriveBits, deriveKey])
Pass Good parameters: X25519 bits (pkcs8, buffer(48), X25519, true, [deriveBits, deriveKey])
Pass Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits, deriveKey])
Pass Good parameters: X25519 bits (jwk, object(crv, d, x, kty), X25519, true, [deriveBits, deriveKey])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits, deriveKey])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(crv, d, x, kty), X25519, true, [deriveBits, deriveKey])
Pass Good parameters with JWK alg: X25519 (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits, deriveKey])
Pass Good parameters with JWK alg: X25519 (jwk, object(crv, d, x, kty), X25519, true, [deriveBits, deriveKey])
Pass Good parameters: X25519 bits (pkcs8, buffer(48), {name: X25519}, true, [deriveBits])
Pass Good parameters: X25519 bits (pkcs8, buffer(48), X25519, true, [deriveBits])
Pass Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits])
Pass Good parameters: X25519 bits (jwk, object(crv, d, x, kty), X25519, true, [deriveBits])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(crv, d, x, kty), X25519, true, [deriveBits])
Pass Good parameters with JWK alg: X25519 (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveBits])
Pass Good parameters with JWK alg: X25519 (jwk, object(crv, d, x, kty), X25519, true, [deriveBits])
Pass Good parameters: X25519 bits (pkcs8, buffer(48), {name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters: X25519 bits (pkcs8, buffer(48), X25519, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters: X25519 bits (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters: X25519 bits (jwk, object(crv, d, x, kty), X25519, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters with ignored JWK alg: X25519 (jwk, object(crv, d, x, kty), X25519, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters with JWK alg: X25519 (jwk, object(crv, d, x, kty), {name: X25519}, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters with JWK alg: X25519 (jwk, object(crv, d, x, kty), X25519, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters: X25519 bits (spki, buffer(44), {name: X25519}, false, [])
Pass Good parameters: X25519 bits (spki, buffer(44), X25519, false, [])
Pass Good parameters: X25519 bits (jwk, object(kty, crv, x), {name: X25519}, false, [])

View file

@ -7,34 +7,34 @@ Pass Good parameters: X448 bits (spki, buffer(68), {name: X448}, true, [])
Pass Good parameters: X448 bits (spki, buffer(68), X448, true, [])
Pass Good parameters: X448 bits (jwk, object(kty, crv, x), {name: X448}, true, [])
Pass Good parameters: X448 bits (jwk, object(kty, crv, x), X448, true, [])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(kty, crv, x), {name: X448}, true, [])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(kty, crv, x), X448, true, [])
Pass Good parameters with JWK alg: X448 (jwk, object(kty, crv, x), {name: X448}, true, [])
Pass Good parameters with JWK alg: X448 (jwk, object(kty, crv, x), X448, true, [])
Pass Good parameters: X448 bits (raw, buffer(56), {name: X448}, true, [])
Pass Good parameters: X448 bits (raw, buffer(56), X448, true, [])
Pass Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, true, [deriveKey])
Pass Good parameters: X448 bits (pkcs8, buffer(72), X448, true, [deriveKey])
Pass Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveKey])
Pass Good parameters: X448 bits (jwk, object(crv, d, x, kty), X448, true, [deriveKey])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveKey])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(crv, d, x, kty), X448, true, [deriveKey])
Pass Good parameters with JWK alg: X448 (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveKey])
Pass Good parameters with JWK alg: X448 (jwk, object(crv, d, x, kty), X448, true, [deriveKey])
Pass Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, true, [deriveBits, deriveKey])
Pass Good parameters: X448 bits (pkcs8, buffer(72), X448, true, [deriveBits, deriveKey])
Pass Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits, deriveKey])
Pass Good parameters: X448 bits (jwk, object(crv, d, x, kty), X448, true, [deriveBits, deriveKey])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits, deriveKey])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(crv, d, x, kty), X448, true, [deriveBits, deriveKey])
Pass Good parameters with JWK alg: X448 (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits, deriveKey])
Pass Good parameters with JWK alg: X448 (jwk, object(crv, d, x, kty), X448, true, [deriveBits, deriveKey])
Pass Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, true, [deriveBits])
Pass Good parameters: X448 bits (pkcs8, buffer(72), X448, true, [deriveBits])
Pass Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits])
Pass Good parameters: X448 bits (jwk, object(crv, d, x, kty), X448, true, [deriveBits])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(crv, d, x, kty), X448, true, [deriveBits])
Pass Good parameters with JWK alg: X448 (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveBits])
Pass Good parameters with JWK alg: X448 (jwk, object(crv, d, x, kty), X448, true, [deriveBits])
Pass Good parameters: X448 bits (pkcs8, buffer(72), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters: X448 bits (pkcs8, buffer(72), X448, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters: X448 bits (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters: X448 bits (jwk, object(crv, d, x, kty), X448, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters with ignored JWK alg: X448 (jwk, object(crv, d, x, kty), X448, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters with JWK alg: X448 (jwk, object(crv, d, x, kty), {name: X448}, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters with JWK alg: X448 (jwk, object(crv, d, x, kty), X448, true, [deriveKey, deriveBits, deriveKey, deriveBits])
Pass Good parameters: X448 bits (spki, buffer(68), {name: X448}, false, [])
Pass Good parameters: X448 bits (spki, buffer(68), X448, false, [])
Pass Good parameters: X448 bits (jwk, object(kty, crv, x), {name: X448}, false, [])

View file

@ -1,9 +1,9 @@
Harness status: OK
Found 258 tests
Found 270 tests
244 Pass
14 Fail
252 Pass
18 Fail
Pass Bad usages: importKey(spki, {name: Ed25519}, true, [encrypt])
Pass Bad usages: importKey(spki, {name: Ed25519}, false, [encrypt])
Pass Bad usages: importKey(spki, {name: Ed25519}, true, [verify, encrypt])
@ -261,4 +261,16 @@ Pass Missing algorithm name: importKey(raw, {}, false, verify)
Pass Missing algorithm name: importKey(jwk(private), {}, true, sign)
Pass Missing algorithm name: importKey(jwk(private), {}, false, sign)
Pass Missing algorithm name: importKey(jwk (public) , {}, true, verify)
Pass Missing algorithm name: importKey(jwk (public) , {}, false, verify)
Pass Missing algorithm name: importKey(jwk (public) , {}, false, verify)
Pass Invalid 'kty' field: importKey(jwk(private), {name: Ed25519}, true, [sign])
Pass Invalid 'kty' field: importKey(jwk (public) , {name: Ed25519}, true, [verify])
Pass Import from a non-extractable: importKey(jwk(private), {name: Ed25519}, true, [sign])
Pass Import from a non-extractable: importKey(jwk (public) , {name: Ed25519}, true, [verify])
Pass Invalid 'use' field: importKey(jwk(private), {name: Ed25519}, true, [sign])
Pass Invalid 'use' field: importKey(jwk (public) , {name: Ed25519}, true, [verify])
Pass Invalid 'crv' field: importKey(jwk(private), {name: Ed25519}, true, [sign])
Pass Invalid 'crv' field: importKey(jwk (public) , {name: Ed25519}, true, [verify])
Fail Invalid 'alg' field 'ed25519': importKey(jwk(private), {name: Ed25519}, true, [sign])
Fail Invalid 'alg' field 'ED25519': importKey(jwk(private), {name: Ed25519}, true, [sign])
Fail Invalid 'alg' field 'ed25519': importKey(jwk (public) , {name: Ed25519}, true, [verify])
Fail Invalid 'alg' field 'ED25519': importKey(jwk (public) , {name: Ed25519}, true, [verify])

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 224 tests
Found 231 tests
208 Pass
215 Pass
16 Fail
Pass Bad usages: importKey(spki, {name: X25519}, true, [encrypt])
Pass Bad usages: importKey(spki, {name: X25519}, false, [encrypt])
@ -227,4 +227,11 @@ Pass Missing algorithm name: importKey(pkcs8, {}, false, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, true, deriveKey)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveKey)
Pass Missing algorithm name: importKey(jwk(private), {}, true, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveBits)
Pass Invalid 'kty' field: importKey(jwk(private), {name: X25519}, true, [deriveKey, deriveBits])
Pass Invalid 'kty' field: importKey(jwk (public) , {name: X25519}, true, [])
Pass Import from a non-extractable: importKey(jwk(private), {name: X25519}, true, [deriveKey, deriveBits])
Pass Import from a non-extractable: importKey(jwk (public) , {name: X25519}, true, [])
Pass Invalid 'use' field: importKey(jwk(private), {name: X25519}, true, [deriveKey, deriveBits])
Pass Invalid 'crv' field: importKey(jwk(private), {name: X25519}, true, [deriveKey, deriveBits])
Pass Invalid 'crv' field: importKey(jwk (public) , {name: X25519}, true, [])

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 224 tests
Found 231 tests
208 Pass
215 Pass
16 Fail
Pass Bad usages: importKey(spki, {name: X448}, true, [encrypt])
Pass Bad usages: importKey(spki, {name: X448}, false, [encrypt])
@ -227,4 +227,11 @@ Pass Missing algorithm name: importKey(pkcs8, {}, false, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, true, deriveKey)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveKey)
Pass Missing algorithm name: importKey(jwk(private), {}, true, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveBits)
Pass Missing algorithm name: importKey(jwk(private), {}, false, deriveBits)
Pass Invalid 'kty' field: importKey(jwk(private), {name: X448}, true, [deriveKey, deriveBits])
Pass Invalid 'kty' field: importKey(jwk (public) , {name: X448}, true, [])
Pass Import from a non-extractable: importKey(jwk(private), {name: X448}, true, [deriveKey, deriveBits])
Pass Import from a non-extractable: importKey(jwk (public) , {name: X448}, true, [])
Pass Invalid 'use' field: importKey(jwk(private), {name: X448}, true, [deriveKey, deriveBits])
Pass Invalid 'crv' field: importKey(jwk(private), {name: X448}, true, [deriveKey, deriveBits])
Pass Invalid 'crv' field: importKey(jwk (public) , {name: X448}, true, [])

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 14 tests
Found 15 tests
14 Pass
15 Pass
Pass e.style['contain'] = "auto" should not set the property value
Pass e.style['contain'] = "layout layout" should not set the property value
Pass e.style['contain'] = "strict layout" should not set the property value
@ -16,4 +16,5 @@ Pass e.style['contain'] = "strict content" should not set the property value
Pass e.style['contain'] = "size layout size" should not set the property value
Pass e.style['contain'] = "paint content" should not set the property value
Pass e.style['contain'] = "size inline-size" should not set the property value
Pass e.style['contain'] = "inline-size inline-size" should not set the property value
Pass e.style['contain'] = "inline-size inline-size" should not set the property value
Pass e.style['contain'] = "view-transition view-transition" should not set the property value

View file

@ -1,9 +1,11 @@
Harness status: OK
Found 4 tests
Found 6 tests
4 Pass
6 Pass
Pass e.style['flex'] = "none 1" should not set the property value
Pass e.style['flex'] = "2 3 4" should not set the property value
Pass e.style['flex'] = "5px 7%" should not set the property value
Pass e.style['flex'] = "9 none" should not set the property value
Pass e.style['flex'] = "9 none" should not set the property value
Pass e.style['flex'] = "1 2 calc(0)" should not set the property value
Pass e.style['flex'] = "1 2 calc(3 - 3)" should not set the property value

View file

@ -1,11 +1,22 @@
Harness status: OK
Found 6 tests
Found 16 tests
6 Pass
14 Pass
2 Fail
Pass e.style['flex'] = "none" should set the property value
Pass e.style['flex'] = "1" should set the property value
Pass e.style['flex'] = "2 3" should set the property value
Pass e.style['flex'] = "4 5 6px" should set the property value
Pass e.style['flex'] = "6px 4 5" should set the property value
Pass e.style['flex'] = "6px 4" should set the property value
Pass e.style['flex'] = "6px" should set the property value
Pass e.style['flex'] = "7% 8" should set the property value
Pass e.style['flex'] = "8 auto" should set the property value
Pass e.style['flex'] = "8 auto" should set the property value
Pass e.style['flex'] = "1 1 10em" should set the property value
Pass e.style['flex'] = "1 1 calc(10em)" should set the property value
Pass e.style['flex'] = "1 1 calc(-10em)" should set the property value
Fail e.style['flex'] = "calc(10 + (sign(20cqw - 10px) * 5)) calc(10 + (sign(20cqw - 10px) * 5)) 1px" should set the property value
Fail e.style['flex'] = "1 1 calc(10px + (sign(20cqw - 10px) * 5px))" should set the property value
Pass e.style['flex'] = "calc(1) calc(2 + 1) calc(3px)" should set the property value
Pass e.style['flex'] = "calc(-1) calc(-1) 0" should set the property value

View file

@ -1,9 +1,9 @@
Harness status: OK
Found 26 tests
Found 27 tests
1 Pass
25 Fail
26 Fail
Fail CSS Fonts Module Level 4: parsing @font-palette-values
Fail CSS Fonts Module Level 4: parsing @font-palette-values 1
Fail CSS Fonts Module Level 4: parsing @font-palette-values 2
@ -29,4 +29,5 @@ Fail CSS Fonts Module Level 4: parsing @font-palette-values 21
Fail CSS Fonts Module Level 4: parsing @font-palette-values 22
Fail CSS Fonts Module Level 4: parsing @font-palette-values 23
Fail CSS Fonts Module Level 4: parsing @font-palette-values 24
Fail CSS Fonts Module Level 4: parsing @font-palette-values 25
Fail CSS Fonts Module Level 4: parsing @font-palette-values 25
Fail sibling-index() is invalid in base-palette descriptor

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 15 tests
Found 17 tests
12 Pass
14 Pass
3 Fail
Pass Property font-style value 'normal'
Pass Property font-style value 'italic'
@ -11,6 +11,8 @@ Pass Property font-style value 'oblique 0deg'
Pass Property font-style value 'oblique calc(10deg - 10deg)'
Pass Property font-style value 'oblique 10deg'
Pass Property font-style value 'oblique -10deg'
Pass Property font-style value 'oblique 14deg'
Pass Property font-style value 'oblique -14deg'
Pass Property font-style value 'oblique -90deg'
Pass Property font-style value 'oblique 90deg'
Pass Property font-style value 'oblique 10grad'

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 15 tests
Found 17 tests
14 Pass
16 Pass
1 Fail
Pass e.style['font-style'] = "normal" should set the property value
Pass e.style['font-style'] = "italic" should set the property value
@ -11,6 +11,8 @@ Pass e.style['font-style'] = "oblique 0deg" should set the property value
Pass e.style['font-style'] = "oblique calc(10deg - 10deg)" should set the property value
Pass e.style['font-style'] = "oblique 10deg" should set the property value
Pass e.style['font-style'] = "oblique -10deg" should set the property value
Pass e.style['font-style'] = "oblique 14deg" should set the property value
Pass e.style['font-style'] = "oblique -14deg" should set the property value
Pass e.style['font-style'] = "oblique -90deg" should set the property value
Pass e.style['font-style'] = "oblique 90deg" should set the property value
Pass e.style['font-style'] = "oblique 10grad" should set the property value

View file

@ -1,19 +1,26 @@
Harness status: OK
Found 14 tests
Found 21 tests
14 Fail
21 Fail
Fail Property font-synthesis value 'none'
Fail Property font-synthesis value 'weight'
Fail Property font-synthesis value 'style'
Fail Property font-synthesis value 'oblique-only'
Fail Property font-synthesis value 'small-caps'
Fail Property font-synthesis value 'position'
Fail Property font-synthesis value 'small-caps position'
Fail Property font-synthesis value 'style small-caps'
Fail Property font-synthesis value 'style position'
Fail Property font-synthesis value 'style small-caps position'
Fail Property font-synthesis value 'oblique-only small-caps'
Fail Property font-synthesis value 'oblique-only position'
Fail Property font-synthesis value 'oblique-only small-caps position'
Fail Property font-synthesis value 'weight small-caps'
Fail Property font-synthesis value 'weight style'
Fail Property font-synthesis value 'weight oblique-only'
Fail Property font-synthesis value 'weight position'
Fail Property font-synthesis value 'weight style small-caps'
Fail Property font-synthesis value 'weight style small-caps position'
Fail Property font-synthesis value 'weight style small-caps position'
Fail Property font-synthesis value 'weight oblique-only small-caps'
Fail Property font-synthesis value 'weight oblique-only small-caps position'

View file

@ -1,13 +1,17 @@
Harness status: OK
Found 8 tests
Found 12 tests
8 Pass
12 Pass
Pass e.style['font-synthesis'] = "auto" should not set the property value
Pass e.style['font-synthesis'] = "none weight" should not set the property value
Pass e.style['font-synthesis'] = "none style" should not set the property value
Pass e.style['font-synthesis'] = "none oblique-only" should not set the property value
Pass e.style['font-synthesis'] = "none position" should not set the property value
Pass e.style['font-synthesis'] = "style none" should not set the property value
Pass e.style['font-synthesis'] = "style oblique-only" should not set the property value
Pass e.style['font-synthesis'] = "oblique-only style" should not set the property value
Pass e.style['font-synthesis'] = "oblique-only none" should not set the property value
Pass e.style['font-synthesis'] = "none small-caps" should not set the property value
Pass e.style['font-synthesis'] = "small-caps none" should not set the property value
Pass e.style['font-synthesis'] = "position none" should not set the property value

View file

@ -1,7 +1,9 @@
Harness status: OK
Found 2 tests
Found 4 tests
2 Pass
4 Pass
Pass e.style['font-synthesis-style'] = "normal" should not set the property value
Pass e.style['font-synthesis-style'] = "auto none" should not set the property value
Pass e.style['font-synthesis-style'] = "auto none" should not set the property value
Pass e.style['font-synthesis-style'] = "none oblique-only" should not set the property value
Pass e.style['font-synthesis-style'] = "oblique-only auto" should not set the property value

View file

@ -1,7 +1,8 @@
Harness status: OK
Found 2 tests
Found 3 tests
2 Fail
3 Fail
Fail e.style['font-synthesis-style'] = "auto" should set the property value
Fail e.style['font-synthesis-style'] = "none" should set the property value
Fail e.style['font-synthesis-style'] = "none" should set the property value
Fail e.style['font-synthesis-style'] = "oblique-only" should set the property value

View file

@ -1,19 +1,28 @@
Harness status: OK
Found 14 tests
Found 23 tests
14 Fail
23 Fail
Fail e.style['font-synthesis'] = "none" should set the property value
Fail e.style['font-synthesis'] = "weight" should set the property value
Fail e.style['font-synthesis'] = "style" should set the property value
Fail e.style['font-synthesis'] = "oblique-only" should set the property value
Fail e.style['font-synthesis'] = "small-caps" should set the property value
Fail e.style['font-synthesis'] = "position" should set the property value
Fail e.style['font-synthesis'] = "style weight" should set the property value
Fail e.style['font-synthesis'] = "oblique-only weight" should set the property value
Fail e.style['font-synthesis'] = "small-caps weight" should set the property value
Fail e.style['font-synthesis'] = "small-caps style" should set the property value
Fail e.style['font-synthesis'] = "small-caps oblique-only" should set the property value
Fail e.style['font-synthesis'] = "style weight small-caps" should set the property value
Fail e.style['font-synthesis'] = "style small-caps weight " should set the property value
Fail e.style['font-synthesis'] = "small-caps style weight " should set the property value
Fail e.style['font-synthesis'] = "oblique-only weight small-caps" should set the property value
Fail e.style['font-synthesis'] = "oblique-only small-caps weight " should set the property value
Fail e.style['font-synthesis'] = "small-caps oblique-only weight " should set the property value
Fail e.style['font-synthesis'] = "position style" should set the property value
Fail e.style['font-synthesis'] = "position oblique-only" should set the property value
Fail e.style['font-synthesis'] = "position weight style" should set the property value
Fail e.style['font-synthesis'] = "position weight small-caps style" should set the property value
Fail e.style['font-synthesis'] = "position weight oblique-only" should set the property value
Fail e.style['font-synthesis'] = "position weight small-caps style" should set the property value
Fail e.style['font-synthesis'] = "position weight small-caps oblique-only" should set the property value

View file

@ -1,9 +1,9 @@
Harness status: OK
Found 30 tests
Found 33 tests
18 Pass
12 Fail
15 Fail
Pass Property grid-area value 'auto / auto / auto / auto'
Pass Property grid-row value 'auto / auto'
Pass Property grid-column-end value 'auto'
@ -19,6 +19,9 @@ Pass Property grid-row-start value '9 -Z_'
Pass Property grid-column-start value '-44 Z'
Pass Property grid-row-end value '1 -πA'
Pass Property grid-column-end value '5 π_'
Fail Property grid-row-start value 'calc(1.1) -a-'
Fail Property grid-row-start value 'calc(10) -a-'
Fail Property grid-row-start value 'calc(10 + (sign(2cqw - 10px) * 5)) -a-'
Fail Property grid-area value 'span 2 i / auto / auto / auto'
Pass Property grid-row value 'span 2 / auto'
Fail Property grid-column-start value 'span 1 i'

View file

@ -1,9 +1,9 @@
Harness status: OK
Found 121 tests
Found 141 tests
84 Pass
37 Fail
98 Pass
43 Fail
Fail e.style.cssText = grid: auto-flow auto / 100px 100px should set grid
Fail e.style.cssText = grid: auto-flow auto / 100px 100px should set grid-template-areas
Pass e.style.cssText = grid: auto-flow auto / 100px 100px; grid-template-areas: "one two" "three four" should set grid
@ -109,6 +109,26 @@ Pass e.style.cssText = grid: auto-flow 1px / none; grid-template-rows: repeat(au
Pass e.style.cssText = grid: auto-flow 1px / none; grid-template-rows: repeat(auto-fit, 3px) should set grid-auto-rows
Pass e.style.cssText = grid: auto-flow 1px / none; grid-template-rows: repeat(auto-fit, 3px) should set grid-template-columns
Pass e.style.cssText = grid: auto-flow 1px / none; grid-template-rows: repeat(auto-fit, 3px) should set grid-template-rows
Fail e.style.cssText = grid-template: none; should set grid
Pass e.style.cssText = grid-template: none; should set grid-template
Pass e.style.cssText = grid-template: none; should set grid-template-areas
Pass e.style.cssText = grid-template: none; should set grid-template-columns
Pass e.style.cssText = grid-template: none; should set grid-template-rows
Fail e.style.cssText = grid-template: auto / auto; should set grid
Pass e.style.cssText = grid-template: auto / auto; should set grid-template
Pass e.style.cssText = grid-template: auto / auto; should set grid-template-areas
Pass e.style.cssText = grid-template: auto / auto; should set grid-template-columns
Pass e.style.cssText = grid-template: auto / auto; should set grid-template-rows
Fail e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] / auto 1fr auto should set grid
Fail e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] / auto 1fr auto should set grid-template
Pass e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] / auto 1fr auto should set grid-template-areas
Pass e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] / auto 1fr auto should set grid-template-columns
Pass e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] / auto 1fr auto should set grid-template-rows
Fail e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] "c c c" "d d d" / auto should set grid
Fail e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] "c c c" "d d d" / auto should set grid-template
Pass e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] "c c c" "d d d" / auto should set grid-template-areas
Pass e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] "c c c" "d d d" / auto should set grid-template-columns
Pass e.style.cssText = grid-template: [header-top] "a a a" [header-bottom] [main-top] "b b b" 1fr [main-bottom] "c c c" "d d d" / auto should set grid-template-rows
Fail e.style.cssText = grid-template-rows: auto auto; grid-template-columns: repeat(2, 3px); grid-template-areas: "one two" "three four" should set grid
Pass e.style.cssText = grid-template-rows: auto auto; grid-template-columns: repeat(2, 3px); grid-template-areas: "one two" "three four" should set grid-template-areas
Pass e.style.cssText = grid-template-rows: auto auto; grid-template-columns: repeat(2, 3px); grid-template-areas: "one two" "three four" should set grid-template-columns

View file

@ -1,11 +1,12 @@
Harness status: OK
Found 5 tests
Found 6 tests
2 Pass
3 Pass
3 Fail
Fail grid-template: none / 1px and "grid-template-areas: "a";" should be valid.
Pass grid-template: none / none and "grid-template-areas: "a";" should be valid.
Pass grid-template: none / none and "grid-template-areas: "a" "b" "c" "d" "e";" should be valid.
Fail grid-template: auto / 1px and "grid-template-areas: "a a a";" should be valid.
Fail grid-template: auto / auto and "grid-template-areas: "a a a";" should be valid.
Pass grid-template: 10px 20px 30px / 40px 50px 60px 70px and "grid-template-areas: "a . b ." "c d . e" "f g h .";" should be valid.

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 24 tests
Found 28 tests
24 Pass
28 Pass
Pass e.style['grid-template'] = "none" should set grid-template-areas
Pass e.style['grid-template'] = "none" should set grid-template-columns
Pass e.style['grid-template'] = "none" should set grid-template-rows
@ -26,4 +26,8 @@ Pass e.style['grid-template'] = " \"a a a\" \"b b b\" 1fr/ auto 1fr auto" shou
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] / [] auto 1fr [] auto []" should set grid-template-areas
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] / [] auto 1fr [] auto []" should set grid-template-columns
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] / [] auto 1fr [] auto []" should set grid-template-rows
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] / [] auto 1fr [] auto []" should not set unrelated longhands
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] / [] auto 1fr [] auto []" should not set unrelated longhands
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] \"c c c\" / [] auto 1fr [] auto []" should set grid-template-areas
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] \"c c c\" / [] auto 1fr [] auto []" should set grid-template-columns
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] \"c c c\" / [] auto 1fr [] auto []" should set grid-template-rows
Pass e.style['grid-template'] = " [] \"a a a\" [] [] \"b b b\" 1fr [] \"c c c\" / [] auto 1fr [] auto []" should not set unrelated longhands

View file

@ -1,8 +1,9 @@
Harness status: OK
Found 13 tests
Found 14 tests
13 Pass
1 Fail
Pass CSSStyleRule is a CSSGroupingRule
Pass Simple CSSOM manipulation of subrules
Pass Simple CSSOM manipulation of subrules 1
@ -15,4 +16,5 @@ Pass Simple CSSOM manipulation of subrules 7
Pass Simple CSSOM manipulation of subrules 8
Pass Simple CSSOM manipulation of subrules 9
Pass Simple CSSOM manipulation of subrules 10
Pass Mutating the selectorText of outer rule invalidates inner rules
Pass Mutating the selectorText of outer rule invalidates inner rules
Fail Manipulation of nested declarations through CSSOM

View file

@ -2,8 +2,9 @@ Harness status: OK
Found 4 tests
4 Pass
Pass Serialization of <generic-family>
2 Pass
2 Fail
Fail Serialization of <generic-family>
Pass Serialization of quoted "<generic-family>"
Pass Serialization of prefixed -webkit-<generic-family>
Pass Serialization of NonGenericFontFamilyName,-webkit-body,-webkit-standard,-webkit-pictograph,BlinkMacSystemFont
Fail Serialization of prefixed -webkit-<generic-family>
Pass Serialization of NonGenericFontFamilyName,-webkit-body,-webkit-standard,-webkit-pictograph,emoji,fangsong,BlinkMacSystemFont

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 687 tests
657 Pass
30 Fail
658 Pass
29 Fail
Pass background-attachment: scroll
Pass background-attachment: fixed
Pass background-attachment: inherit
@ -334,7 +334,7 @@ Fail content: attr( |bar )
Pass content: attr(foo-bar, "fallback")
Pass content: attr(foo_bar, "fallback")
Fail content: attr(|bar, "fallback")
Fail content: attr(foo, "")
Pass content: attr(foo, "")
Fail content: attr( |foo , "" )
Pass content: inherit
Pass cursor: auto

View file

@ -1,8 +1,9 @@
Harness status: OK
Found 126 tests
Found 138 tests
126 Pass
132 Pass
6 Fail
Pass new DOMMatrix()
Pass new DOMMatrix(undefined)
Pass new DOMMatrix(new DOMMatrix())
@ -27,6 +28,8 @@ Pass new DOMMatrix("scale(2) translateX(5px) translateY(5px) rotate(5deg) rotate
Pass new DOMMatrix("translateX (5px)")
Pass new DOMMatrix("scale(2 2) translateX(5) translateY(5)")
Pass new DOMMatrix("scale(2, 2), translateX(5) ,translateY(5)")
Fail new DOMMatrix("scale(sign(1em))")
Pass new DOMMatrix("scale(sibling-index())")
Pass new DOMMatrix("translateX(5em)")
Pass new DOMMatrix("translateX(5ex)")
Pass new DOMMatrix("translateX(5ch)")
@ -44,10 +47,14 @@ Pass new DOMMatrix("translateX(5vi)")
Pass new DOMMatrix("translateX(5vmin)")
Pass new DOMMatrix("translateX(5vmax)")
Pass new DOMMatrix("translateX(5%)")
Fail new DOMMatrix("translateX(calc(10px * sign(1em - 10px)))")
Pass new DOMMatrix("translateX(calc(10px * sibling-index()))")
Pass new DOMMatrix("rotate(5)")
Pass new DOMMatrix("rotate(5, 5, 5)")
Pass new DOMMatrix("rotate(5, 5px, 5px)")
Pass new DOMMatrix("rotate(5deg, 5px, 5px)")
Fail new DOMMatrix("rotate(calc(5deg * sign(1em - 10px)))")
Pass new DOMMatrix("rotate(calc(5deg * sibling-index()))")
Pass new DOMMatrix(" ")
Pass new DOMMatrix("/**/")
Pass new DOMMatrix("\0")
@ -90,6 +97,8 @@ Pass new DOMMatrixReadOnly("scale(2) translateX(5px) translateY(5px) rotate(5deg
Pass new DOMMatrixReadOnly("translateX (5px)")
Pass new DOMMatrixReadOnly("scale(2 2) translateX(5) translateY(5)")
Pass new DOMMatrixReadOnly("scale(2, 2), translateX(5) ,translateY(5)")
Fail new DOMMatrixReadOnly("scale(sign(1em))")
Pass new DOMMatrixReadOnly("scale(sibling-index())")
Pass new DOMMatrixReadOnly("translateX(5em)")
Pass new DOMMatrixReadOnly("translateX(5ex)")
Pass new DOMMatrixReadOnly("translateX(5ch)")
@ -107,10 +116,14 @@ Pass new DOMMatrixReadOnly("translateX(5vi)")
Pass new DOMMatrixReadOnly("translateX(5vmin)")
Pass new DOMMatrixReadOnly("translateX(5vmax)")
Pass new DOMMatrixReadOnly("translateX(5%)")
Fail new DOMMatrixReadOnly("translateX(calc(10px * sign(1em - 10px)))")
Pass new DOMMatrixReadOnly("translateX(calc(10px * sibling-index()))")
Pass new DOMMatrixReadOnly("rotate(5)")
Pass new DOMMatrixReadOnly("rotate(5, 5, 5)")
Pass new DOMMatrixReadOnly("rotate(5, 5px, 5px)")
Pass new DOMMatrixReadOnly("rotate(5deg, 5px, 5px)")
Fail new DOMMatrixReadOnly("rotate(calc(5deg * sign(1em - 10px)))")
Pass new DOMMatrixReadOnly("rotate(calc(5deg * sibling-index()))")
Pass new DOMMatrixReadOnly(" ")
Pass new DOMMatrixReadOnly("/**/")
Pass new DOMMatrixReadOnly("\0")

View file

@ -2,8 +2,7 @@ Harness status: OK
Found 3 tests
2 Pass
1 Fail
Pass The dialog element should support :open.
Pass The details element should support :open.
3 Fail
Fail The dialog element should support :open.
Fail The details element should support :open.
Fail The select element should support :open.

View file

@ -1,8 +1,9 @@
Harness status: OK
Found 19 tests
Found 48 tests
19 Pass
39 Pass
9 Fail
Pass el-a
Pass el-aside
Pass el-aside-in-main
@ -12,13 +13,42 @@ Pass el-aside-in-aside-with-name
Pass el-aside-in-nav-with-name
Pass el-aside-in-nav-with-role
Pass el-aside-in-section-with-name
Pass el-aside-in-section-aria-labelledby
Pass el-aside-in-section-title
Pass el-footer-ancestorbody
Pass el-header-ancestorbody
Fail el-img-no-name
Fail el-img-empty-alt-aria-label
Fail el-img-empty-alt-aria-labelledby
Pass el-section
Pass el-section-aria-labelledby
Pass el-section-title
Pass el-a-no-href
Pass el-aside-in-article-in-main
Pass el-aside-in-article
Pass el-aside-in-aside
Pass el-aside-in-nav
Pass el-aside-in-section
Pass el-section-no-name
Pass el-aside-in-section-aria-label-empty
Pass el-aside-in-section-aria-label-whitespace
Pass el-aside-in-section-aria-labelledby-non-existing
Fail el-aside-in-section-aria-labelledby-empty
Fail el-aside-in-section-aria-labelledby-whitespace
Pass el-aside-in-section-title-empty
Fail el-aside-in-section-title-whitespace
Pass el-img-empty-alt-aria-label-empty
Pass el-img-empty-alt-aria-label-whitespace
Pass el-img-empty-alt-aria-labelledby-non-existing
Pass el-img-empty-alt-aria-labelledby-empty
Pass el-img-empty-alt-aria-labelledby-whitespace
Pass el-img-empty-alt-title
Pass el-img-empty-alt-title-empty
Pass el-img-empty-alt-title-whitespace
Pass el-section-no-name
Pass el-section-aria-label-empty
Pass el-section-aria-label-whitespace
Pass el-section-aria-labelledby-non-existing
Fail el-section-aria-labelledby-empty
Fail el-section-aria-labelledby-whitespace
Pass el-section-title-empty
Fail el-section-title-whitespace

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 58 tests
Found 59 tests
58 Pass
59 Pass
Pass el-address
Pass el-article
Pass el-blockquote
@ -33,6 +33,7 @@ Pass el-input-radio
Pass el-input-range
Pass el-input-reset
Pass el-input-search
Pass el-input-search-with-role
Pass el-input-submit
Pass el-input-tel
Pass el-input-text

View file

@ -5,17 +5,17 @@ Found 27 tests
25 Pass
2 Fail
Pass aria-activedescendant element reflection
Pass aria-activedescendant If the content attribute is set directly, the IDL attribute getter always returns the first element whose ID matches the content attribute.
Pass aria-activedescendant Setting the IDL attribute to an element which is not the first element in DOM order with its ID causes the content attribute to be an empty string
Pass aria-activedescendant Setting an element reference that crosses into a shadow tree is disallowed, but setting one that is in a shadow inclusive ancestor is allowed.
Pass If the content attribute is set directly, the IDL attribute getter always returns the first element whose ID matches the content attribute.
Pass Setting the IDL attribute to an element which is not the first element in DOM order with its ID causes the content attribute to be an empty string
Pass Setting an element reference that crosses into a shadow tree is disallowed, but setting one that is in a shadow inclusive ancestor is allowed.
Pass aria-errormessage
Pass ariaErrorMessageElement is not defined
Pass aria-details
Pass aria-activedescendant Deleting a reflected element should return null for the IDL attribute and the content attribute will be empty.
Pass aria-activedescendant Changing the ID of an element doesn't lose the reference.
Pass aria-activedescendant Reparenting an element into a descendant shadow scope hides the element reference.
Pass aria-activedescendant Reparenting referenced element cannot cause retargeting of reference.
Pass aria-activedescendant Element reference set in invalid scope remains intact throughout move to valid scope.
Pass Deleting a reflected element should return null for the IDL attribute and the content attribute will be empty.
Pass Changing the ID of an element doesn't lose the reference.
Pass Reparenting an element into a descendant shadow scope hides the element reference.
Pass Reparenting referenced element cannot cause retargeting of reference.
Pass Element reference set in invalid scope remains intact throughout move to valid scope.
Pass aria-labelledby.
Pass aria-controls.
Pass aria-describedby.
@ -24,10 +24,10 @@ Pass aria-owns.
Fail shadow DOM behaviour for FrozenArray element reflection.
Fail Moving explicitly set elements across shadow DOM boundaries.
Pass Moving explicitly set elements around within the same scope, and removing from the DOM.
Pass aria-activedescendant Reparenting.
Pass aria-activedescendant Attaching element reference before it's inserted into the DOM.
Pass aria-activedescendant Cross-document references and moves.
Pass aria-activedescendant Adopting element keeps references.
Pass Reparenting.
Pass Attaching element reference before it's inserted into the DOM.
Pass Cross-document references and moves.
Pass Adopting element keeps references.
Pass Caching invariant different attributes.
Pass Caching invariant different elements.
Pass Passing values of the wrong type should throw a TypeError

View file

@ -1,9 +1,9 @@
Harness status: OK
Found 271 tests
Found 272 tests
210 Pass
61 Fail
62 Fail
Pass Simplest possible test ("<div>abc")
Fail Leading whitespace removed ("<div> abc")
Fail Trailing whitespace removed ("<div>abc ")
@ -78,6 +78,7 @@ Pass Soft breaks ignored, text-transform applied ("<div style='width:1px; word-b
Fail <br> returned as newline, following space collapsed ("<div style='width:1px; word-break:break-word'>Hello<br> Kitty</div>")
Fail <br> returned as newline, preceding space collapsed ("<div style='width:1px; word-break:break-word'>Hello <br>Kitty</div>")
Fail <br> returned as newline, adjacent spaces collapsed across element boundaries ("<div style='width:1px; word-break:break-word'><x>Hello </x> <br> <x> Kitty</x></div>")
Fail ::first-line styles applied ("<div class='first-line-uppercase'>abc")
Fail ::first-line styles applied ("<div class='first-line-uppercase' style='width:0'>abc def")
Fail ::first-letter styles applied ("<div class='first-letter-uppercase' style='width:0'>abc def")
Pass ::first-letter float ignored ("<div class='first-letter-float' style='width:0'>abc def")

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 132 tests
Found 130 tests
132 Pass
130 Pass
Pass [INPUT in TEXT status] no constraint
Pass [INPUT in TEXT status] no constraint (in a form)
Pass [INPUT in TEXT status] not suffering from being too long
@ -111,8 +111,6 @@ Pass [INPUT in NUMBER status] suffering from an underflow
Pass [INPUT in NUMBER status] suffering from an underflow (in a form)
Pass [INPUT in NUMBER status] suffering from a step mismatch
Pass [INPUT in NUMBER status] suffering from a step mismatch (in a form)
Pass [INPUT in NUMBER status] (with 'value' content attribute) suffering from a step mismatch
Pass [INPUT in NUMBER status] (with 'value' content attribute) suffering from a step mismatch (in a form)
Pass [INPUT in NUMBER status] suffering from being missing
Pass [INPUT in NUMBER status] suffering from being missing (in a form)
Pass [INPUT in CHECKBOX status] no constraint

View file

@ -1,7 +1,8 @@
Harness status: OK
Found 2 tests
Found 3 tests
2 Pass
3 Pass
Pass switch IDL attribute, setter
Pass switch IDL attribute, getter
Pass switch IDL attribute, getter
Pass Cloning a switch control

View file

@ -2,8 +2,9 @@ Harness status: OK
Found 4 tests
4 Pass
3 Pass
1 Fail
Pass options
Pass optgroups
Pass option is child of div
Fail option is child of div
Pass no options

View file

@ -1,27 +1,32 @@
Harness status: OK
Found 21 tests
Found 27 tests
18 Pass
3 Fail
27 Pass
Pass Button with id reset-in-form should reflect type correctly
Pass Button with id submit-in-form should reflect type correctly
Pass Button with id button-in-form should reflect type correctly
Fail Button with id invalid-in-form should reflect type correctly
Pass Button with id invalid-in-form should reflect type correctly
Pass Button with id invalid-in-form-command-only should reflect type correctly
Pass Button with id invalid-in-form-commandfor-only should reflect type correctly
Pass Button with id missing-in-form should reflect type correctly
Pass Button with id missing-in-form-command-only should reflect type correctly
Pass Button with id missing-in-form-commandfor-only should reflect type correctly
Pass Button with id reset-attr-form should reflect type correctly
Pass Button with id submit-attr-form should reflect type correctly
Pass Button with id button-attr-form should reflect type correctly
Fail Button with id invalid-attr-form should reflect type correctly
Pass Button with id invalid-attr-form should reflect type correctly
Pass Button with id invalid-attr-form-command-only should reflect type correctly
Pass Button with id invalid-attr-form-commandfor-only should reflect type correctly
Pass Button with id missing-attr-form should reflect type correctly
Pass Button with id missing-attr-form-command-only should reflect type correctly
Pass Button with id missing-attr-form-commandfor-only should reflect type correctly
Pass Button with id reset-outside-form should reflect type correctly
Pass Button with id submit-outside-form should reflect type correctly
Pass Button with id button-outside-form should reflect type correctly
Fail Button with id invalid-outside-form should reflect type correctly
Pass Button with id invalid-outside-form should reflect type correctly
Pass Button with id invalid-outside-form-command-only should reflect type correctly
Pass Button with id invalid-outside-form-commandfor-only should reflect type correctly
Pass Button with id missing-outside-form should reflect type correctly
Pass Button with id missing-outside-form-command-only should reflect type correctly
Pass Button with id missing-outside-form-commandfor-only should reflect type correctly

View file

@ -1,8 +1,9 @@
Harness status: OK
Found 27 tests
Found 28 tests
27 Pass
1 Fail
Pass changing command attribute inside invokeevent doesn't impact the invocation
Pass invoking (as toggle-popover) closed popover opens
Pass invoking (as toggle-popover) closed popover with preventDefault does not open
@ -29,4 +30,5 @@ Pass invoking (as hIdE-pOpOvEr) open popover with preventDefault does not close
Pass invoking (as hIdE-pOpOvEr) from within open popover closes
Pass invoking (as hIdE-pOpOvEr) from within open popover with preventDefault does not close
Pass invoking (as show-popover) open popover is noop
Pass invoking (as hide-popover) closed popover is noop
Pass invoking (as hide-popover) closed popover is noop
Fail invoking (as show-popover) should create an implicit anchor reference for anchor positioning.

View file

@ -2,8 +2,7 @@ Harness status: OK
Found 33 tests
32 Pass
1 Fail
33 Pass
Pass html5lib_plain-text-unsafe.html 7e4ca4cb5e73852744a876bf8652dd2c8998d94a
Pass html5lib_plain-text-unsafe.html e552342bdd3ac62316bd91126556512683f3d4a9
Pass html5lib_plain-text-unsafe.html 9112cef60139e6988b66334e522777329051442a
@ -27,7 +26,7 @@ Pass html5lib_plain-text-unsafe.html 4b9e317cba617324fea77a4e525602b3ad2717ef
Pass html5lib_plain-text-unsafe.html a1e08cb99d89381a1c997fcd60bad23c029c4500
Pass html5lib_plain-text-unsafe.html 26d850208425cc885d4d0143909cf341f61fa1f1
Pass html5lib_plain-text-unsafe.html 68f0365c01dc386c706edd2b18672f9d85caaa2e
Fail html5lib_plain-text-unsafe.html e415a2e7cf090e2c308af905d52c5f8163ae52ce
Pass html5lib_plain-text-unsafe.html e415a2e7cf090e2c308af905d52c5f8163ae52ce
Pass html5lib_plain-text-unsafe.html 822702de65b80ec8e79da19335ab9d6a49f6ec6a
Pass html5lib_plain-text-unsafe.html ee8b017ab043ff51b593787961626acb4c6488cd
Pass html5lib_plain-text-unsafe.html 304960c795639128844445166238350682ba0516

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 40 tests
Found 33 tests
22 Pass
15 Pass
18 Fail
Pass Test that decodingInfo rejects if it doesn't get a configuration
Pass Test that decodingInfo rejects if the MediaConfiguration isn't valid
@ -21,13 +21,6 @@ Fail Test that decodingInfo rejects if the video configuration contentType has o
Fail Test that decodingInfo rejects if the video configuration contentType does not imply a single media codec but has no codecs parameter
Fail Test that decodingInfo rejects if the video configuration contentType has a codecs parameter that indicates multiple video codecs
Fail Test that decodingInfo rejects if the video configuration contentType has a codecs parameter that indicates both an audio and a video codec
Pass Test that decodingInfo rejects framerate in the form of x/y
Pass Test that decodingInfo rejects framerate in the form of x/0
Pass Test that decodingInfo rejects framerate in the form of 0/y
Pass Test that decodingInfo rejects framerate in the form of -x/y
Pass Test that decodingInfo rejects framerate in the form of x/-y
Pass Test that decodingInfo rejects framerate in the form of x/
Pass Test that decodingInfo rejects framerate with trailing unallowed characters
Pass Test that decodingInfo rejects if the audio configuration contentType doesn't parse
Fail Test that decodingInfo rejects if the audio configuration contentType is not a valid MIME type string
Pass Test that decodingInfo rejects if the audio configuration contentType isn't of type audio

View file

@ -168,7 +168,7 @@ Pass button.ariaLabelledByElements has reflection behavior ReflectsHostInArray w
Pass button.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass button.commandForElement has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Pass button.popoverTargetElement has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail button.form has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail button.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target with imperative setup
Pass input.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
Pass input.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target with imperative setup
Pass input.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
@ -322,7 +322,7 @@ Pass input.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass input.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to datalist with reference target with imperative setup
Pass input.popoverTargetElement has reflection behavior ReflectsHost when pointing to datalist with reference target with imperative setup
Pass input.form has reflection behavior IsNull when pointing to datalist with reference target with imperative setup
Fail input.list has reflection behavior ReflectsHost when pointing to datalist with reference target with imperative setup
Fail input.list has reflection behavior ReflectsHostReadOnly when pointing to datalist with reference target with imperative setup
Pass input.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass input.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Pass input.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
@ -332,7 +332,7 @@ Pass input.ariaFlowToElements has reflection behavior ReflectsHostInArray when p
Pass input.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass input.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass input.popoverTargetElement has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail input.form has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail input.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target with imperative setup
Pass input.list has reflection behavior IsNull when pointing to form with reference target with imperative setup
Pass meter.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
Pass meter.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target with imperative setup
@ -603,7 +603,7 @@ Pass output.ariaFlowToElements has reflection behavior ReflectsHostInArray when
Pass output.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass output.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass output.htmlFor has reflection behavior ReflectsHostIDInDOMTokenList when pointing to form with reference target with imperative setup
Fail output.form has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail output.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target with imperative setup
Pass progress.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
Pass progress.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target with imperative setup
Pass progress.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
@ -858,7 +858,7 @@ Pass select.ariaErrorMessageElements has reflection behavior ReflectsHostInArray
Pass select.ariaFlowToElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass select.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass select.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Fail select.form has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail select.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target with imperative setup
Pass textarea.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
Pass textarea.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target with imperative setup
Pass textarea.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
@ -993,7 +993,7 @@ Pass textarea.ariaErrorMessageElements has reflection behavior ReflectsHostInArr
Pass textarea.ariaFlowToElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass textarea.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass textarea.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Fail textarea.form has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail textarea.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target with imperative setup
Pass div.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
Pass div.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target with imperative setup
Pass div.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
@ -1248,7 +1248,7 @@ Pass object.ariaErrorMessageElements has reflection behavior ReflectsHostInArray
Pass object.ariaFlowToElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass object.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass object.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Fail object.form has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail object.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target with imperative setup
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target with imperative setup
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
@ -1259,7 +1259,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to button with reference target with imperative setup
Pass label.form has reflection behavior IsNull when pointing to button with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHost when pointing to button with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to button with reference target with imperative setup
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to input with reference target with imperative setup
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to input with reference target with imperative setup
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to input with reference target with imperative setup
@ -1270,7 +1270,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to input with reference target with imperative setup
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to input with reference target with imperative setup
Pass label.form has reflection behavior IsNull when pointing to input with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHost when pointing to input with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to input with reference target with imperative setup
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to meter with reference target with imperative setup
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to meter with reference target with imperative setup
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to meter with reference target with imperative setup
@ -1281,7 +1281,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to meter with reference target with imperative setup
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to meter with reference target with imperative setup
Pass label.form has reflection behavior IsNull when pointing to meter with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHost when pointing to meter with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to meter with reference target with imperative setup
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to output with reference target with imperative setup
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to output with reference target with imperative setup
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to output with reference target with imperative setup
@ -1292,7 +1292,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to output with reference target with imperative setup
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to output with reference target with imperative setup
Pass label.form has reflection behavior IsNull when pointing to output with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHost when pointing to output with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to output with reference target with imperative setup
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to progress with reference target with imperative setup
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to progress with reference target with imperative setup
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to progress with reference target with imperative setup
@ -1303,7 +1303,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to progress with reference target with imperative setup
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to progress with reference target with imperative setup
Pass label.form has reflection behavior IsNull when pointing to progress with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHost when pointing to progress with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to progress with reference target with imperative setup
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to select with reference target with imperative setup
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to select with reference target with imperative setup
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to select with reference target with imperative setup
@ -1314,7 +1314,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to select with reference target with imperative setup
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to select with reference target with imperative setup
Pass label.form has reflection behavior IsNull when pointing to select with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHost when pointing to select with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to select with reference target with imperative setup
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to textarea with reference target with imperative setup
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to textarea with reference target with imperative setup
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to textarea with reference target with imperative setup
@ -1325,7 +1325,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to textarea with reference target with imperative setup
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to textarea with reference target with imperative setup
Pass label.form has reflection behavior IsNull when pointing to textarea with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHost when pointing to textarea with reference target with imperative setup
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to textarea with reference target with imperative setup
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to div with reference target with imperative setup
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to div with reference target with imperative setup
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to div with reference target with imperative setup
@ -1548,7 +1548,7 @@ Pass fieldset.ariaErrorMessageElements has reflection behavior ReflectsHostInArr
Pass fieldset.ariaFlowToElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass fieldset.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Pass fieldset.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target with imperative setup
Fail fieldset.form has reflection behavior ReflectsHost when pointing to form with reference target with imperative setup
Fail fieldset.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target with imperative setup
Pass legend.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup
Pass legend.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target with imperative setup
Pass legend.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target with imperative setup

View file

@ -168,7 +168,7 @@ Pass button.ariaLabelledByElements has reflection behavior ReflectsHostInArray w
Pass button.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass button.commandForElement has reflection behavior ReflectsHost when pointing to form with reference target
Pass button.popoverTargetElement has reflection behavior ReflectsHost when pointing to form with reference target
Fail button.form has reflection behavior ReflectsHost when pointing to form with reference target
Fail button.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target
Pass input.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
Pass input.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target
Pass input.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
@ -322,7 +322,7 @@ Pass input.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass input.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to datalist with reference target
Pass input.popoverTargetElement has reflection behavior ReflectsHost when pointing to datalist with reference target
Pass input.form has reflection behavior IsNull when pointing to datalist with reference target
Fail input.list has reflection behavior ReflectsHost when pointing to datalist with reference target
Fail input.list has reflection behavior ReflectsHostReadOnly when pointing to datalist with reference target
Pass input.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass input.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to form with reference target
Pass input.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
@ -332,7 +332,7 @@ Pass input.ariaFlowToElements has reflection behavior ReflectsHostInArray when p
Pass input.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass input.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass input.popoverTargetElement has reflection behavior ReflectsHost when pointing to form with reference target
Fail input.form has reflection behavior ReflectsHost when pointing to form with reference target
Fail input.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target
Pass input.list has reflection behavior IsNull when pointing to form with reference target
Pass meter.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
Pass meter.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target
@ -603,7 +603,7 @@ Pass output.ariaFlowToElements has reflection behavior ReflectsHostInArray when
Pass output.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass output.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass output.htmlFor has reflection behavior ReflectsHostIDInDOMTokenList when pointing to form with reference target
Fail output.form has reflection behavior ReflectsHost when pointing to form with reference target
Fail output.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target
Pass progress.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
Pass progress.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target
Pass progress.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
@ -858,7 +858,7 @@ Pass select.ariaErrorMessageElements has reflection behavior ReflectsHostInArray
Pass select.ariaFlowToElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass select.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass select.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Fail select.form has reflection behavior ReflectsHost when pointing to form with reference target
Fail select.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target
Pass textarea.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
Pass textarea.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target
Pass textarea.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
@ -993,7 +993,7 @@ Pass textarea.ariaErrorMessageElements has reflection behavior ReflectsHostInArr
Pass textarea.ariaFlowToElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass textarea.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass textarea.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Fail textarea.form has reflection behavior ReflectsHost when pointing to form with reference target
Fail textarea.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target
Pass div.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
Pass div.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target
Pass div.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
@ -1248,7 +1248,7 @@ Pass object.ariaErrorMessageElements has reflection behavior ReflectsHostInArray
Pass object.ariaFlowToElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass object.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass object.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Fail object.form has reflection behavior ReflectsHost when pointing to form with reference target
Fail object.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
@ -1259,7 +1259,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to button with reference target
Pass label.form has reflection behavior IsNull when pointing to button with reference target
Fail label.control has reflection behavior ReflectsHost when pointing to button with reference target
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to button with reference target
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to input with reference target
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to input with reference target
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to input with reference target
@ -1270,7 +1270,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to input with reference target
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to input with reference target
Pass label.form has reflection behavior IsNull when pointing to input with reference target
Fail label.control has reflection behavior ReflectsHost when pointing to input with reference target
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to input with reference target
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to meter with reference target
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to meter with reference target
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to meter with reference target
@ -1281,7 +1281,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to meter with reference target
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to meter with reference target
Pass label.form has reflection behavior IsNull when pointing to meter with reference target
Fail label.control has reflection behavior ReflectsHost when pointing to meter with reference target
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to meter with reference target
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to output with reference target
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to output with reference target
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to output with reference target
@ -1292,7 +1292,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to output with reference target
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to output with reference target
Pass label.form has reflection behavior IsNull when pointing to output with reference target
Fail label.control has reflection behavior ReflectsHost when pointing to output with reference target
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to output with reference target
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to progress with reference target
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to progress with reference target
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to progress with reference target
@ -1303,7 +1303,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to progress with reference target
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to progress with reference target
Pass label.form has reflection behavior IsNull when pointing to progress with reference target
Fail label.control has reflection behavior ReflectsHost when pointing to progress with reference target
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to progress with reference target
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to select with reference target
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to select with reference target
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to select with reference target
@ -1314,7 +1314,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to select with reference target
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to select with reference target
Pass label.form has reflection behavior IsNull when pointing to select with reference target
Fail label.control has reflection behavior ReflectsHost when pointing to select with reference target
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to select with reference target
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to textarea with reference target
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to textarea with reference target
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to textarea with reference target
@ -1325,7 +1325,7 @@ Pass label.ariaLabelledByElements has reflection behavior ReflectsHostInArray wh
Pass label.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to textarea with reference target
Pass label.htmlFor has reflection behavior ReflectsHostID when pointing to textarea with reference target
Pass label.form has reflection behavior IsNull when pointing to textarea with reference target
Fail label.control has reflection behavior ReflectsHost when pointing to textarea with reference target
Fail label.control has reflection behavior ReflectsHostReadOnly when pointing to textarea with reference target
Pass label.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to div with reference target
Pass label.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to div with reference target
Pass label.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to div with reference target
@ -1548,7 +1548,7 @@ Pass fieldset.ariaErrorMessageElements has reflection behavior ReflectsHostInArr
Pass fieldset.ariaFlowToElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass fieldset.ariaLabelledByElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Pass fieldset.ariaOwnsElements has reflection behavior ReflectsHostInArray when pointing to form with reference target
Fail fieldset.form has reflection behavior ReflectsHost when pointing to form with reference target
Fail fieldset.form has reflection behavior ReflectsHostReadOnly when pointing to form with reference target
Pass legend.ariaControlsElements has reflection behavior ReflectsHostInArray when pointing to button with reference target
Pass legend.ariaActiveDescendantElement has reflection behavior ReflectsHost when pointing to button with reference target
Pass legend.ariaDescribedByElements has reflection behavior ReflectsHostInArray when pointing to button with reference target

View file

@ -1,8 +1,8 @@
Harness status: OK
Found 62 tests
Found 65 tests
62 Pass
65 Pass
Pass Aborting a WritableStream before it starts should cause the writer's unsettled ready promise to reject
Pass Aborting a WritableStream should cause the writer's fulfilled ready promise to reset to a rejected one
Pass abort() on a released writer rejects
@ -64,4 +64,7 @@ Pass the abort signal is signalled synchronously - close
Pass the abort signal is not signalled on error
Pass the abort signal is not signalled on write failure
Pass the abort signal is not signalled on close failure
Pass recursive abort() call
Pass recursive abort() call from abort() aborting signal (not started)
Pass recursive abort() call from abort() aborting signal
Pass recursive close() call from abort() aborting signal (not started)
Pass recursive close() call from abort() aborting signal

View file

@ -1 +1,6 @@
QuotaExceededError: Unable to store more than 5242880 bytes in storage
Harness status: OK
Found 1 tests
1 Pass
Pass Throws QuotaExceededError when the quota has been exceeded

View file

@ -1 +1,6 @@
QuotaExceededError: Unable to store more than 5242880 bytes in storage
Harness status: OK
Found 1 tests
1 Pass
Pass Throws QuotaExceededError when the quota has been exceeded

View file

@ -265,7 +265,7 @@ async_test(t => {
assert_true(db3.objectStoreNames.contains("store"), "third objectStoreNames contains store");
assert_false(db3.objectStoreNames.contains("store2"), "third objectStoreNames contains store2");
let st = db3.transaction("store", "readonly", { durability: 'relaxed' }).objectStore("store");
let st = db3.transaction("store", "readonly").objectStore("store");
assert_equals(db3.version, 9, "db3.version");
@ -322,7 +322,7 @@ async_test(t => {
store.add("data2", 2);
};
open_rq.onsuccess = function (e) {
let store = db.transaction("store", "readonly", { durability: 'relaxed' }).objectStore("store");
let store = db.transaction("store", "readonly").objectStore("store");
assert_equals(store.name, "store", "store.name");
store.count().onsuccess = t.step_func(function (e) {
assert_equals(e.target.result, 2, "count()");

View file

@ -19,6 +19,14 @@ function getMismatchedJWKKeyData(algorithm) {
return [];
}
function getMismatchedKtyField(algorithm) {
return mismatchedKtyField[algorithm.name];
}
function getMismatchedCrvField(algorithm) {
return mismatchedCrvField[algorithm.name];
}
var validKeyData = {
"P-521": [
{
@ -201,3 +209,17 @@ var missingJWKFieldKeyData = {
}
]
};
// The 'kty' field doesn't match the key algorithm.
var mismatchedKtyField = {
"P-521": "OKP",
"P-256": "OKP",
"P-384": "OKP",
}
// The 'kty' field doesn't match the key algorithm.
var mismatchedCrvField = {
"P-521": "P-256",
"P-256": "P-384",
"P-384": "P-521",
}

View file

@ -207,4 +207,83 @@ function run_test(algorithmNames) {
});
});
// The 'kty' field is not correct.
testVectors.forEach(function(vector) {
var name = vector.name;
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
getValidKeyData(algorithm).forEach(function(test) {
if (test.format === "jwk") {
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, y: test.data.y};
data.kty = getMismatchedKtyField(algorithm);
var usages = validUsages(vector, 'jwk', test.data);
testError('jwk', algorithm, data, name, usages, true, "DataError", "Invalid 'kty' field");
}
});
});
});
// The 'ext' field is not correct.
testVectors.forEach(function(vector) {
var name = vector.name;
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
getValidKeyData(algorithm).forEach(function(test) {
if (test.format === "jwk") {
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, y: test.data.y};
data.ext = false;
var usages = validUsages(vector, 'jwk', test.data);
testError('jwk', algorithm, data, name, usages, true, "DataError", "Import from a non-extractable");
}
});
});
});
// The 'use' field is incorrect.
testVectors.forEach(function(vector) {
var name = vector.name;
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
getValidKeyData(algorithm).forEach(function(test) {
if (test.format === "jwk") {
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, d: test.data.d};
data.use = "invalid";
var usages = validUsages(vector, 'jwk', test.data);
if (usages.length !== 0)
testError('jwk', algorithm, data, name, usages, true, "DataError", "Invalid 'use' field");
}
});
});
});
// The 'crv' field is incorrect.
testVectors.forEach(function(vector) {
var name = vector.name;
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
getValidKeyData(algorithm).forEach(function(test) {
if (test.format === "jwk") {
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, y: test.data.y};
data.crv = getMismatchedCrvField(algorithm)
var usages = validUsages(vector, 'jwk', test.data);
testError('jwk', algorithm, data, name, usages, true, "DataError", "Invalid 'crv' field");
}
});
});
});
// Use an 'alg' field with incorrect casing.
testVectors.forEach(function(vector) {
var name = vector.name;
if (name !== "Ed25519" && name !== "Ed448")
return; // The rest ignore the 'alg' field.
allAlgorithmSpecifiersFor(name).forEach(function(algorithm) {
getValidKeyData(algorithm).forEach(function(test) {
if (test.format === "jwk") {
var data = {crv: test.data.crv, kty: test.data.kty, d: test.data.d, x: test.data.x, y: test.data.y};
var usages = validUsages(vector, 'jwk', test.data);
[name.toLowerCase(), name.toUpperCase()].forEach(function(algName) {
data.alg = algName;
testError('jwk', algorithm, data, name, usages, true, "DataError", "Invalid 'alg' field '" + data.alg + "'");
});
}
});
});
});
}

View file

@ -11,7 +11,7 @@ function runTests(algorithmName) {
['spki', 'jwk', 'raw'].forEach(function(format) {
if (format === "jwk") { // Not all fields used for public keys
testFormat(format, algorithm, jwkData, algorithmName, usages, extractable);
// Test for https://github.com/WICG/webcrypto-secure-curves/pull/24
// Test for https://github.com/w3c/webcrypto/pull/401
if (extractable) {
testJwkAlgBehaviours(algorithm, jwkData.jwk, algorithmName, usages);
}
@ -27,7 +27,7 @@ function runTests(algorithmName) {
['pkcs8', 'jwk'].forEach(function(format) {
testFormat(format, algorithm, data, algorithmName, usages, extractable);
// Test for https://github.com/WICG/webcrypto-secure-curves/pull/24
// Test for https://github.com/w3c/webcrypto/pull/401
if (format === "jwk" && extractable) {
testJwkAlgBehaviours(algorithm, data.jwk, algorithmName, usages);
}
@ -67,27 +67,34 @@ function testFormat(format, algorithm, keyData, keySize, usages, extractable) {
});
}
// Test importKey/exportKey "alg" behaviours, alg is ignored upon import and alg is missing for Ed25519 and Ed448 JWK export
// https://github.com/WICG/webcrypto-secure-curves/pull/24
// Test importKey/exportKey "alg" behaviours (https://github.com/w3c/webcrypto/pull/401)
// - alg is ignored for ECDH import
// - TODO: alg is checked to be the algorithm.name or EdDSA for Ed25519 and Ed448 import
// - alg is missing for ECDH export
// - alg is the algorithm name for Ed25519 and Ed448 export
function testJwkAlgBehaviours(algorithm, keyData, crv, usages) {
[algorithm, algorithm.name].forEach((alg) => {
promise_test(function(test) {
return subtle.importKey('jwk', { ...keyData, alg: 'this is ignored' }, alg, true, usages).
then(function(key) {
assert_equals(key.constructor, CryptoKey, "Imported a CryptoKey object");
(crv.startsWith('Ed') ? [algorithm.name, 'EdDSA'] : ['this is ignored']).forEach((jwkAlg) => {
promise_test(function(test) {
return subtle.importKey('jwk', { ...keyData, alg: jwkAlg }, alg, true, usages).
then(function(key) {
assert_equals(key.constructor, CryptoKey, "Imported a CryptoKey object");
return subtle.exportKey('jwk', key).
then(function(result) {
assert_equals(Object.keys(result).length, keyData.d ? 6 : 5, "Correct number of JWK members");
assert_equals(result.alg, undefined, 'No JWK "alg" member is present');
assert_true(equalJwk(keyData, result), "Round trip works");
}, function(err) {
return subtle.exportKey('jwk', key).
then(function(result) {
let expectedKeys = crv.startsWith('Ed') ? 6 : 5
if (keyData.d) expectedKeys++
assert_equals(Object.keys(result).length, expectedKeys, "Correct number of JWK members");
assert_equals(result.alg, crv.startsWith('Ed') ? algorithm.name : undefined, 'Expected JWK "alg" member');
assert_true(equalJwk(keyData, result), "Round trip works");
}, function(err) {
assert_unreached("Threw an unexpected error: " + err.toString());
});
}, function(err) {
assert_unreached("Threw an unexpected error: " + err.toString());
});
}, function(err) {
assert_unreached("Threw an unexpected error: " + err.toString());
});
}, "Good parameters with ignored JWK alg: " + crv.toString() + " " + parameterString('jwk', keyData, alg, true, usages));
});
}, 'Good parameters with JWK alg' + (crv.startsWith('Ed') ? ` ${jwkAlg}: ` : ': ') + crv.toString() + " " + parameterString('jwk', keyData, alg, true, usages, jwkAlg));
});
});
}

View file

@ -17,6 +17,14 @@ function getMismatchedJWKKeyData(algorithm) {
return mismatchedJWKKeyData[algorithm.name];
}
function getMismatchedKtyField(algorithm) {
return mismatchedKtyField[algorithm.name];
}
function getMismatchedCrvField(algorithm) {
return mismatchedCrvField[algorithm.name];
}
var validKeyData = {
"Ed25519": [
{
@ -412,3 +420,19 @@ var mismatchedJWKKeyData = {
},
],
}
// The 'kty' field doesn't match the key algorithm.
var mismatchedKtyField = {
"Ed25519": "EC",
"X25519": "EC",
"Ed448": "EC",
"X448": "EC",
}
// The 'kty' field doesn't match the key algorithm.
var mismatchedCrvField = {
"Ed25519": "X25519",
"X25519": "Ed448",
"Ed448": "X25519",
"X448": "Ed25519",
}

View file

@ -131,4 +131,4 @@
AriaUtils.verifyLabelsBySelector(".ex");
</script>
</body>
</html>
</html>

View file

@ -1,16 +1,18 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<title>Name Comp: Text Node</title>
<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="../../resources/testdriver-actions.js"></script>
<script src="../../wai-aria/scripts/aria-utils.js"></script>
<title>Name Comp: Text Node</title>
<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="../../resources/testdriver-actions.js"></script>
<script src="../../wai-aria/scripts/aria-utils.js"></script>
</head>
<body>
<p>Tests the <a href="https://w3c.github.io/accname/#comp_text_node">#comp_text_node</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
<!--
Note: some overlap with the tests in:
@ -18,19 +20,21 @@
- /accname/name/comp_name_from_content.html
-->
<h1>text/element/text nodes, no space</h1>
<span class="ex" data-expectedlabel="buttonlabel" data-testname="span[role=button] with text/element/text nodes, no space" role="button" tabindex="0">button<span></span>label</span>
<div class="ex" data-expectedlabel="headinglabel" data-testname="div[role=heading] with text/element/text nodes, no space" role="heading">heading<span></span>label</div>
<span role="button" tabindex="0" class="ex" data-expectedlabel="buttonlabel" data-testname="span[role=button] with text/element/text nodes, no space">button<span></span>label</span>
<div role="heading" class="ex" data-expectedlabel="headinglabel" data-testname="div[role=heading] with text/element/text nodes, no space">heading<span></span>label</div>
<button class="ex" data-expectedlabel="buttonlabel" data-testname="button with text/element/text nodes, no space">button<span></span>label</button>
<h3 class="ex" data-expectedlabel="headinglabel" data-testname="heading with text/element/text nodes, no space">heading<span></span>label</h3>
<a class="ex" data-expectedlabel="linklabel" data-testname="link with text/element/text nodes, no space" href="#">link<span></span>label</a>
<br/>
<a href="#" class="ex" data-expectedlabel="linklabel" data-testname="link with text/element/text nodes, no space">link<span></span>label</a>
<br>
<h1>text/comment/text nodes, no space</h1>
<!-- Note: This set is not currently to spec until https://github.com/w3c/accname/issues/193 is resolved. -->
<span class="ex" data-expectedlabel="buttonlabel" data-testname="span[role=button] with text/comment/text nodes, no space" role="button" tabindex="0">
<span role="button" tabindex="0" class="ex" data-expectedlabel="buttonlabel" data-testname="span[role=button] with text/comment/text nodes, no space">
button<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->
</span>
<div class="ex" data-expectedlabel="headinglabel" data-testname="div[role=heading] with text/comment/text nodes, no space" role="heading">
<div role="heading" class="ex" data-expectedlabel="headinglabel" data-testname="div[role=heading] with text/comment/text nodes, no space">
heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->
</div>
<button class="ex" data-expectedlabel="buttonlabel" data-testname="button with text/comment/text nodes, no space">
@ -39,17 +43,18 @@
<h3 class="ex" data-expectedlabel="headinglabel" data-testname="heading with text/comment/text nodes, no space">
heading<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->
</h3>
<a class="ex" data-expectedlabel="linklabel" data-testname="link with text/comment/text nodes, no space" href="#">
<a href="#" class="ex" data-expectedlabel="linklabel" data-testname="link with text/comment/text nodes, no space">
link<!-- with non-text node splitting concatenated text nodes -->label<!-- [sic] no extra spaces around first comment -->
</a>
<br/>
<br>
<h1>text/comment/text nodes, with space</h1>
<span class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text/comment/text nodes, with space" role="button" tabindex="0">
<span role="button" tabindex="0" class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text/comment/text nodes, with space">
button
<!-- comment node between text nodes with leading/trailing whitespace -->
label
</span>
<div class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text/comment/text nodes, with space" role="heading">
<div role="heading" class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text/comment/text nodes, with space">
heading
<!-- comment node between text nodes with leading/trailing whitespace -->
label
@ -64,52 +69,58 @@
<!-- comment node between text nodes with leading/trailing whitespace -->
label
</h3>
<a class="ex" data-expectedlabel="link label" data-testname="link with text/comment/text nodes, with space" href="#">
<a href="#" class="ex" data-expectedlabel="link label" data-testname="link with text/comment/text nodes, with space">
link
<!-- comment node between text nodes with leading/trailing whitespace -->
label
</a>
<br/>
<br>
<h1>text node, with tab char</h1>
<span class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text node, with tab char" role="button" tabindex="0">button label</span>
<div class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with tab char" role="heading">heading label</div>
<span role="button" tabindex="0" class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text node, with tab char">button label</span>
<div role="heading" class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with tab char">heading label</div>
<button class="ex" data-expectedlabel="button label" data-testname="button with text node, with tab char">button label</button>
<h3 class="ex" data-expectedlabel="heading label" data-testname="heading with text node, with tab char">heading label</h3>
<a class="ex" data-expectedlabel="link label" data-testname="link with text node, with tab char" href="#">link label</a>
<br/>
<a href="#" class="ex" data-expectedlabel="link label" data-testname="link with text node, with tab char">link label</a>
<br>
<h1>text node, with non-breaking space</h1>
<span class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text node, with non-breaking space" role="button" tabindex="0">button label</span>
<div class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with non-breaking space" role="heading">heading label</div>
<button class="ex" data-expectedlabel="button label" data-testname="button with text node, with non-breaking space">button label</button>
<h3 class="ex" data-expectedlabel="heading label" data-testname="heading with text node, with non-breaking space">heading label</h3>
<a class="ex" data-expectedlabel="link label" data-testname="link with text node, with non-breaking space" href="#">link label</a>
<br/>
<span role="button" tabindex="0" class="ex" data-expectedlabel="button&nbsp;label" data-testname="span[role=button] with text node, with non-breaking space">button&nbsp;label</span>
<div role="heading" class="ex" data-expectedlabel="heading&nbsp;label" data-testname="div[role=heading] with text node, with non-breaking space">heading&nbsp;label</div>
<button class="ex" data-expectedlabel="button&nbsp;label" data-testname="button with text node, with non-breaking space">button&nbsp;label</button>
<h3 class="ex" data-expectedlabel="heading&nbsp;label" data-testname="heading with text node, with non-breaking space">heading&nbsp;label</h3>
<a href="#" class="ex" data-expectedlabel="link&nbsp;label" data-testname="link with text node, with non-breaking space">link&nbsp;label</a>
<br>
<h1>text node, with extra non-breaking space</h1>
<span class="ex" data-expectedlabel="button   label" data-testname="span[role=button] with text node, with extra non-breaking space" role="button" tabindex="0">button   label</span>
<div class="ex" data-expectedlabel="heading   label" data-testname="div[role=heading] with text node, with extra non-breaking space" role="heading">heading   label</div>
<button class="ex" data-expectedlabel="button   label" data-testname="button with text node, with extra non-breaking space">button   label</button>
<h3 class="ex" data-expectedlabel="heading   label" data-testname="heading with text node, with extra non-breaking space">heading   label</h3>
<a class="ex" data-expectedlabel="link   label" data-testname="link with text node, with extra non-breaking space" href="#">link   label</a>
<br/>
<span role="button" tabindex="0" class="ex" data-expectedlabel="button&nbsp;&nbsp;&nbsp;label" data-testname="span[role=button] with text node, with extra non-breaking space">button&nbsp;&nbsp;&nbsp;label</span>
<div role="heading" class="ex" data-expectedlabel="heading&nbsp;&nbsp;&nbsp;label" data-testname="div[role=heading] with text node, with extra non-breaking space">heading&nbsp;&nbsp;&nbsp;label</div>
<button class="ex" data-expectedlabel="button&nbsp;&nbsp;&nbsp;label" data-testname="button with text node, with extra non-breaking space">button&nbsp;&nbsp;&nbsp;label</button>
<h3 class="ex" data-expectedlabel="heading&nbsp;&nbsp;&nbsp;label" data-testname="heading with text node, with extra non-breaking space">heading&nbsp;&nbsp;&nbsp;label</h3>
<a href="#" class="ex" data-expectedlabel="link&nbsp;&nbsp;&nbsp;label" data-testname="link with text node, with extra non-breaking space">link&nbsp;&nbsp;&nbsp;label</a>
<br>
<h1>text node, with leading/trailing non-breaking space</h1>
<span class="ex" data-expectedlabel=" button label " data-testname="span[role=button] with text node, with leading/trailing non-breaking space" role="button" tabindex="0"> button label </span>
<div class="ex" data-expectedlabel=" heading label " data-testname="div[role=heading] with text node, with leading/trailing non-breaking space" role="heading"> heading label </div>
<button class="ex" data-expectedlabel=" button label " data-testname="button with text node, with leading/trailing non-breaking space"> button label </button>
<h3 class="ex" data-expectedlabel=" heading label " data-testname="heading with text node, with leading/trailing non-breaking space"> heading label </h3>
<a class="ex" data-expectedlabel=" link label " data-testname="link with text node, with leading/trailing non-breaking space" href="#"> link label </a>
<br/>
<span role="button" tabindex="0" class="ex" data-expectedlabel="&nbsp;button&nbsp;label&nbsp;" data-testname="span[role=button] with text node, with leading/trailing non-breaking space">&nbsp;button&nbsp;label&nbsp;</span>
<div role="heading" class="ex" data-expectedlabel="&nbsp;heading&nbsp;label&nbsp;" data-testname="div[role=heading] with text node, with leading/trailing non-breaking space">&nbsp;heading&nbsp;label&nbsp;</div>
<button class="ex" data-expectedlabel="&nbsp;button&nbsp;label&nbsp;" data-testname="button with text node, with leading/trailing non-breaking space">&nbsp;button&nbsp;label&nbsp;</button>
<h3 class="ex" data-expectedlabel="&nbsp;heading&nbsp;label&nbsp;" data-testname="heading with text node, with leading/trailing non-breaking space">&nbsp;heading&nbsp;label&nbsp;</h3>
<a href="#" class="ex" data-expectedlabel="&nbsp;link&nbsp;label&nbsp;" data-testname="link with text node, with leading/trailing non-breaking space">&nbsp;link&nbsp;label&nbsp;</a>
<br>
<h1>text node, with mixed space and non-breaking space</h1>
<span class="ex" data-expectedlabel="button   label" data-testname="span[role=button] with text node, with mixed space and non-breaking space" role="button" tabindex="0">button   label</span>
<div class="ex" data-expectedlabel="heading   label" data-testname="div[role=heading] with text node, with mixed space and non-breaking space" role="heading">heading   label</div>
<button class="ex" data-expectedlabel="button   label" data-testname="button with text node, with mixed space and non-breaking space">button   label</button>
<h3 class="ex" data-expectedlabel="heading   label" data-testname="heading with text node, with mixed space and non-breaking space">heading   label</h3>
<a class="ex" data-expectedlabel="link   label" data-testname="link with text node, with mixed space and non-breaking space" href="#">link   label</a>
<br/>
<span role="button" tabindex="0" class="ex" data-expectedlabel="button &nbsp; label" data-testname="span[role=button] with text node, with mixed space and non-breaking space">button &nbsp; label</span>
<div role="heading" class="ex" data-expectedlabel="heading &nbsp; label" data-testname="div[role=heading] with text node, with mixed space and non-breaking space">heading &nbsp; label</div>
<button class="ex" data-expectedlabel="button &nbsp; label" data-testname="button with text node, with mixed space and non-breaking space">button &nbsp; label</button>
<h3 class="ex" data-expectedlabel="heading &nbsp; label" data-testname="heading with text node, with mixed space and non-breaking space">heading &nbsp; label</h3>
<a href="#" class="ex" data-expectedlabel="link &nbsp; label" data-testname="link with text node, with mixed space and non-breaking space">link &nbsp; label</a>
<br>
<h1>text nodes, with deeply nested space</h1>
<span class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text node, with deeply nested space" role="button" tabindex="0">
<span role="button" tabindex="0" class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text node, with deeply nested space">
button<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label
</span>
<div class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with deeply nested space" role="heading">
<div role="heading" class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with deeply nested space">
heading<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label
</div>
<button class="ex" data-expectedlabel="button label" data-testname="button with text node, with deeply nested space">
@ -118,24 +129,26 @@ button<span><span><span><span><span><span><span> </span></span></span></span></s
<h3 class="ex" data-expectedlabel="heading label" data-testname="heading with text node, with deeply nested space">
heading<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label
</h3>
<a class="ex" data-expectedlabel="link label" data-testname="link with text node, with deeply nested space" href="#">
<a href="#" class="ex" data-expectedlabel="link label" data-testname="link with text node, with deeply nested space">
link<span><span><span><span><span><span><span> </span></span></span></span></span></span></span>label
</a>
<br/>
<br>
<h1>text nodes, with single line break</h1>
<span class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text node, with single line break" role="button" tabindex="0">button
<span role="button" tabindex="0" class="ex" data-expectedlabel="button label" data-testname="span[role=button] with text node, with single line break">button
label</span>
<div class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with single line break" role="heading">heading
<div role="heading" class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with single line break">heading
label</div>
<button class="ex" data-expectedlabel="button label" data-testname="button with text node, with single line break">button
label</button>
<h3 class="ex" data-expectedlabel="heading label" data-testname="heading with text node, with single line break">heading
label</h3>
<a class="ex" data-expectedlabel="link label" data-testname="link with text node, with single line break" href="#">link
<a href="#" class="ex" data-expectedlabel="link label" data-testname="link with text node, with single line break">link
label</a>
<br/>
<br>
<script>
AriaUtils.verifyLabelsBySelector(".ex");
</script>
</body>
</html>
</html>

Some files were not shown because too many files have changed in this diff Show more