mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-28 13:18:19 +00:00
Tests: Synchronize imported tests with the WPT repository
This commit is contained in:
parent
11e5cd5048
commit
689dff3ee8
Notes:
github-actions[bot]
2025-06-22 21:52:43 +00:00
Author: https://github.com/tcl3
Commit: 689dff3ee8
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5160
155 changed files with 1485 additions and 750 deletions
|
@ -8,7 +8,3 @@
|
|||
}
|
||||
</style>
|
||||
<p>PASS if this tests does not crash</p>
|
||||
<script>
|
||||
if (window.internals)
|
||||
window.internals.signalTestIsDone("PASS");
|
||||
</script>
|
|
@ -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>
|
|
@ -13,7 +13,4 @@
|
|||
}
|
||||
});
|
||||
parentelement.innerText = 'hello world';
|
||||
|
||||
if (window.internals)
|
||||
internals.signalTestIsDone("PASS");
|
||||
</script>
|
|
@ -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>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<!DOCTYPE html>
|
||||
<div style="width: 100px; height: 80px; background: green"></div>
|
||||
<div style="width: 100px; height: 20px; background: blue"></div>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -30,4 +30,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
|
@ -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.
|
||||
|
|
|
@ -23,3 +23,6 @@ div { font-size: 50px; }
|
|||
<div> </div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
<html style="background: green"></html>
|
||||
<html style="background: green"></html>
|
|
@ -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>
|
||||
|
|
|
@ -449,4 +449,4 @@
|
|||
<td>146</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -40,3 +40,4 @@
|
|||
document.documentElement.removeAttribute("class");
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 |
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -20,3 +20,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
toggler.classList.toggle("a");
|
||||
</script>
|
||||
|
||||
|
|
|
@ -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>
|
|
@ -23,3 +23,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
toggler.setAttribute("attr", "no");
|
||||
</script>
|
||||
|
||||
|
|
|
@ -23,3 +23,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
toggler.classList.toggle("c");
|
||||
</script>
|
||||
|
||||
|
|
|
@ -23,3 +23,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
toggler.classList.toggle("c");
|
||||
</script>
|
||||
|
||||
|
|
|
@ -23,3 +23,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
t2.id = "new-id";
|
||||
</script>
|
||||
|
||||
|
|
|
@ -23,3 +23,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
t2.id = "new-id";
|
||||
</script>
|
||||
|
||||
|
|
|
@ -21,3 +21,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
toggler.classList.toggle("c");
|
||||
</script>
|
||||
|
||||
|
|
|
@ -23,3 +23,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
toggler.classList.toggle("a");
|
||||
</script>
|
||||
|
||||
|
|
|
@ -21,3 +21,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
toggler.classList.toggle("ancestor");
|
||||
</script>
|
||||
|
||||
|
|
|
@ -22,3 +22,4 @@
|
|||
document.documentElement.offsetTop;
|
||||
toggler.classList.toggle("sibling");
|
||||
</script>
|
||||
|
||||
|
|
|
@ -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])
|
|
@ -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])
|
|
@ -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])
|
||||
|
|
|
@ -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, [])
|
||||
|
|
|
@ -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, [])
|
||||
|
|
|
@ -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])
|
|
@ -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, [])
|
|
@ -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, [])
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
PASS
|
|
@ -1 +0,0 @@
|
|||
PASS
|
|
@ -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.
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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")
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
PASS
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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.
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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()");
|
||||
|
|
|
@ -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",
|
||||
}
|
||||
|
|
|
@ -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 + "'");
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -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",
|
||||
}
|
||||
|
|
|
@ -131,4 +131,4 @@
|
|||
AriaUtils.verifyLabelsBySelector(".ex");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
|
@ -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 label" data-testname="span[role=button] with text node, with non-breaking space">button label</span>
|
||||
<div role="heading" class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with non-breaking space">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 href="#" class="ex" data-expectedlabel="link label" data-testname="link with text node, with non-breaking space">link 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 label" data-testname="span[role=button] with text node, with extra non-breaking space">button label</span>
|
||||
<div role="heading" class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with extra non-breaking space">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 href="#" class="ex" data-expectedlabel="link label" data-testname="link with text node, with extra non-breaking space">link 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=" button label " data-testname="span[role=button] with text node, with leading/trailing non-breaking space"> button label </span>
|
||||
<div role="heading" class="ex" data-expectedlabel=" heading label " data-testname="div[role=heading] with text node, with leading/trailing non-breaking space"> 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 href="#" class="ex" data-expectedlabel=" link label " data-testname="link with text node, with leading/trailing non-breaking space"> link label </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 label" data-testname="span[role=button] with text node, with mixed space and non-breaking space">button label</span>
|
||||
<div role="heading" class="ex" data-expectedlabel="heading label" data-testname="div[role=heading] with text node, with mixed space and non-breaking space">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 href="#" class="ex" data-expectedlabel="link label" data-testname="link with text node, with mixed space and non-breaking space">link 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
Loading…
Add table
Add a link
Reference in a new issue