Test files: 18; Total subtests: 203
Test | ch73 | ed18 | ff65 | sa71 |
---|---|---|---|---|
/webauthn/createcredential-badargs-attestation.https.html | OK | OK | OK | OK |
Bad attestation parameter: attestation is "noneofyourbusiness" | PASS | FAIL | PASS | FAIL |
Bad attestation parameter: attestation is empty array | PASS | FAIL | PASS | FAIL |
Bad attestation parameter: attestation is empty object | PASS | FAIL | PASS | FAIL |
Bad attestation parameter: attestation is empty string | PASS | FAIL | PASS | FAIL |
Bad attestation parameter: attestation is null | PASS | FAIL | PASS | FAIL |
/webauthn/createcredential-badargs-authnrselection.https.html | OK | OK | OK | TIMEOUT |
Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is empty object | PASS | FAIL | PASS | PASS |
Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is empty string | PASS | FAIL | PASS | PASS |
Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment is null | PASS | FAIL | PASS | PASS |
Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment platform | PASS | FAIL | FAIL | TIMEOUT |
Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty string | PASS | FAIL | PASS | PASS |
Bad AuthenticatorSelectionCriteria: authenticatorSelection is string | PASS | FAIL | PASS | PASS |
Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey true | FAIL | FAIL | PASS | NOTRUN |
Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification bad value | PASS | FAIL | PASS | NOTRUN |
Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty object | PASS | FAIL | PASS | NOTRUN |
Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty string | PASS | FAIL | PASS | NOTRUN |
Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification null | PASS | FAIL | PASS | NOTRUN |
Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification required | PASS | FAIL | PASS | NOTRUN |
/webauthn/createcredential-badargs-challenge.https.html | OK | OK | OK | OK |
Bad challenge: challenge is empty Array | PASS | PASS | PASS | PASS |
Bad challenge: challenge is empty object | PASS | PASS | PASS | PASS |
Bad challenge: challenge is null | PASS | PASS | PASS | PASS |
Bad challenge: challenge is string | PASS | PASS | PASS | PASS |
Bad challenge: challenge missing | PASS | PASS | PASS | PASS |
/webauthn/createcredential-badargs-rp.https.html | OK | OK | OK | OK |
Bad rp: icon is empty String | FAIL | FAIL | FAIL | FAIL |
Bad rp: icon is null | FAIL | FAIL | FAIL | FAIL |
Bad rp: icon is object | FAIL | FAIL | FAIL | FAIL |
Bad rp: id is empty String | PASS | PASS | PASS | FAIL |
Bad rp: id is invalid domain (has space) | PASS | PASS | PASS | PASS |
Bad rp: id is invalid domain (starts with dash) | PASS | PASS | PASS | PASS |
Bad rp: id is invalid domain (starts with number) | PASS | PASS | PASS | PASS |
Bad rp: id is null | PASS | PASS | PASS | PASS |
Bad rp: rp is empty object | PASS | PASS | PASS | PASS |
Bad rp: rp is string | PASS | PASS | PASS | PASS |
Bad rp: rp missing | PASS | PASS | PASS | PASS |
rp missing name | PASS | PASS | PASS | PASS |
/webauthn/createcredential-badargs-user.https.html | OK | OK | OK | TIMEOUT |
Bad user: ArrayBuffer id is too long (65 bytes) | FAIL | PASS | PASS | NOTRUN |
Bad user: Float32Array id is too long (68 bytes) | FAIL | PASS | PASS | NOTRUN |
Bad user: Float64Array id is too long (72 bytes) | FAIL | PASS | PASS | NOTRUN |
Bad user: Int16Array id is too long (66 bytes) | FAIL | PASS | PASS | NOTRUN |
Bad user: Int32Array id is too long (68 bytes) | FAIL | PASS | PASS | NOTRUN |
Bad user: displayName is empty String | FAIL | PASS | FAIL | NOTRUN |
Bad user: displayName is undefined | PASS | PASS | PASS | NOTRUN |
Bad user: icon is empty String | FAIL | FAIL | FAIL | NOTRUN |
Bad user: icon is null | FAIL | FAIL | FAIL | NOTRUN |
Bad user: icon is object | FAIL | FAIL | FAIL | NOTRUN |
Bad user: id is empty Array | PASS | PASS | PASS | PASS |
Bad user: id is empty String | PASS | PASS | PASS | PASS |
Bad user: id is null | PASS | PASS | PASS | PASS |
Bad user: id is object | PASS | PASS | PASS | PASS |
Bad user: id is too long (65 bytes) | FAIL | PASS | PASS | NOTRUN |
Bad user: id is undefined | PASS | PASS | PASS | PASS |
Bad user: user is empty object | PASS | PASS | PASS | PASS |
Bad user: user is string | PASS | PASS | PASS | PASS |
Bad user: user missing | PASS | PASS | PASS | PASS |
user missing name | PASS | PASS | PASS | NOTRUN |
/webauthn/createcredential-excludecredentials.https.html | OK | OK | OK | TIMEOUT |
Bad excludeCredentials: empty object | PASS | PASS | PASS | PASS |
Bad excludeCredentials: string | PASS | PASS | PASS | PASS |
exclude existing credential | PASS | PASS | PASS | NOTRUN |
exclude random (non-existing) credential | PASS | PASS | PASS | NOTRUN |
excludeCredentials empty array | PASS | PASS | PASS | PASS |
excludeCredentials missing | PASS | PASS | PASS | PASS |
/webauthn/createcredential-extensions.https.html | OK | OK | OK | OK |
Bad extensions: extension ID too long | FAIL | FAIL | FAIL | FAIL |
Bad extensions: extensions is string | PASS | FAIL | PASS | FAIL |
appid in create request | PASS | PASS | PASS | FAIL |
empty appid in create request | PASS | FAIL | PASS | FAIL |
extensions is a nonsensical JSON string | PASS | PASS | PASS | PASS |
null appid in create request | PASS | PASS | PASS | FAIL |
/webauthn/createcredential-passing.https.html | OK | OK | OK | OK |
Absurdly large challenge | PASS | PASS | PASS | PASS |
Bad pubKeyCredParams: pubKeyCredParams is empty Array | FAIL | FAIL | PASS | FAIL |
DataView challenge | PASS | PASS | PASS | PASS |
DataView user id | PASS | PASS | PASS | PASS |
EC256 pubKeyCredParams | PASS | PASS | PASS | PASS |
Float32Array challenge | PASS | PASS | PASS | PASS |
Float32Array user id | PASS | PASS | PASS | PASS |
Float64Array challenge | PASS | PASS | PASS | PASS |
Int16Array challenge | PASS | PASS | PASS | PASS |
Int16Array user id | PASS | PASS | PASS | PASS |
Int32Array challenge | PASS | PASS | PASS | PASS |
Int32Array user id | PASS | PASS | PASS | PASS |
Int8Array user id | PASS | PASS | PASS | PASS |
SelectEC256 pubKeyCredParams from a list | PASS | PASS | PASS | PASS |
Uint8Array user id | PASS | PASS | PASS | PASS |
attestation parameter: attestation is "direct" | PASS | PASS | PASS | PASS |
attestation parameter: attestation is "indirect" | PASS | PASS | PASS | PASS |
attestation parameter: attestation is "none" | PASS | PASS | PASS | PASS |
attestation parameter: attestation is undefined | PASS | PASS | PASS | PASS |
authenticatorSelection attachment undefined | PASS | PASS | PASS | PASS |
authenticatorSelection default values | PASS | PASS | PASS | PASS |
authenticatorSelection is empty object | PASS | PASS | PASS | PASS |
authenticatorSelection is undefined | PASS | PASS | PASS | PASS |
authenticatorSelection residentKey false | PASS | PASS | PASS | PASS |
authenticatorSelection residentKey undefined | PASS | PASS | PASS | PASS |
authenticatorSelection userVerification discouraged | PASS | PASS | PASS | PASS |
authenticatorSelection userVerification undefined | PASS | PASS | PASS | PASS |
extensions are dict of empty strings | PASS | PASS | PASS | PASS |
extensions are empty object | PASS | PASS | PASS | PASS |
extensions undefined | PASS | PASS | PASS | PASS |
max length user id | PASS | PASS | PASS | PASS |
passing credentials.create() with default arguments | PASS | PASS | PASS | PASS |
passing credentials.create() with no timeout | PASS | PASS | PASS | PASS |
passing credentials.create() with rpId (hostname) | PASS | PASS | PASS | PASS |
passing credentials.create() without rp.icon | PASS | PASS | PASS | PASS |
passing credentials.create() without user.icon | PASS | PASS | PASS | PASS |
very short user id | PASS | PASS | PASS | PASS |
/webauthn/createcredential-pubkeycredparams.https.html | OK | OK | OK | OK |
Bad pubKeyCredParams: first param has bad type ("") | PASS | FAIL | PASS | PASS |
Bad pubKeyCredParams: first param has bad type ("something-else") | PASS | FAIL | PASS | PASS |
Bad pubKeyCredParams: first param has bad type (empty object) | PASS | FAIL | PASS | PASS |
Bad pubKeyCredParams: first param has bad type (null) | PASS | FAIL | PASS | PASS |
Bad pubKeyCredParams: pubKeyCredParams is null | PASS | PASS | PASS | PASS |
Bad pubKeyCredParams: pubKeyCredParams is string | PASS | PASS | PASS | PASS |
Bad pubKeyCredParams: pubKeyCredParams is undefined | PASS | PASS | PASS | PASS |
/webauthn/createcredential-timeout.https.html | OK | OK | OK | OK |
ensure create credential times out | PASS | FAIL | PASS | FAIL |
/webauthn/getcredential-badargs-rpid.https.html | OK | OK | OK | OK |
Bad rpId: empty string | PASS | PASS | PASS | FAIL |
Bad rpId: invalid domain (has space) | PASS | PASS | PASS | PASS |
Bad rpId: invalid domain (starts with dash) | PASS | PASS | PASS | PASS |
Bad rpId: invalid domain (starts with number) | PASS | PASS | PASS | PASS |
Bad rpId: null | PASS | PASS | PASS | PASS |
/webauthn/getcredential-badargs-userverification.https.html | OK | OK | OK | OK |
Bad userVerification: "required" | PASS | FAIL | FAIL | FAIL |
Bad userVerification: bad value | PASS | FAIL | PASS | PASS |
Bad userVerification: empty object | PASS | FAIL | PASS | PASS |
Bad userVerification: empty string | PASS | FAIL | PASS | PASS |
Bad userVerification: null | PASS | FAIL | PASS | PASS |
/webauthn/getcredential-extensions.https.html | OK | OK | OK | OK |
Bad extensions: extension ID too long | FAIL | FAIL | FAIL | FAIL |
Bad extensions: extensions is string | PASS | FAIL | PASS | FAIL |
extensions is a nonsensical JSON string | PASS | PASS | PASS | PASS |
/webauthn/getcredential-passing.https.html | OK | OK | OK | OK |
authenticatorSelection userVerification discouraged | PASS | PASS | PASS | PASS |
authenticatorSelection userVerification preferred | PASS | PASS | PASS | PASS |
authenticatorSelection userVerification undefined | PASS | PASS | PASS | PASS |
extensions are dict of empty strings | PASS | PASS | PASS | PASS |
extensions are empty object | PASS | PASS | PASS | PASS |
extensions undefined | PASS | PASS | PASS | PASS |
passing credentials.create() with no timeout | PASS | PASS | PASS | PASS |
passing credentials.get() with default args | PASS | PASS | PASS | PASS |
passing credentials.get() with rpId (hostname) | PASS | PASS | PASS | PASS |
rpId undefined | PASS | PASS | PASS | PASS |
/webauthn/getcredential-timeout.https.html | OK | OK | OK | TIMEOUT |
ensure create credential times out | PASS | PASS | PASS | TIMEOUT |
/webauthn/idlharness.https.window.html | OK | OK | OK | OK |
AuthenticatorAssertionResponse interface object length | PASS | PASS | PASS | PASS |
AuthenticatorAssertionResponse interface object name | PASS | PASS | PASS | PASS |
AuthenticatorAssertionResponse interface: assertionResponse must inherit property "authenticatorData" with the proper type | PASS | PASS | PASS | PASS |
AuthenticatorAssertionResponse interface: assertionResponse must inherit property "signature" with the proper type | PASS | PASS | PASS | PASS |
AuthenticatorAssertionResponse interface: assertionResponse must inherit property "userHandle" with the proper type | PASS | PASS | PASS | PASS |
AuthenticatorAssertionResponse interface: attribute authenticatorData | PASS | FAIL | PASS | PASS |
AuthenticatorAssertionResponse interface: attribute signature | PASS | FAIL | PASS | PASS |
AuthenticatorAssertionResponse interface: attribute userHandle | PASS | FAIL | PASS | PASS |
AuthenticatorAssertionResponse interface: existence and properties of interface object | PASS | FAIL | PASS | PASS |
AuthenticatorAssertionResponse interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS |
AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS |
AuthenticatorAssertionResponse interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS |
AuthenticatorAssertionResponse must be primary interface of assertionResponse | PASS | PASS | PASS | PASS |
AuthenticatorAttestationResponse interface object length | PASS | PASS | PASS | PASS |
AuthenticatorAttestationResponse interface object name | PASS | PASS | PASS | PASS |
AuthenticatorAttestationResponse interface: attribute attestationObject | PASS | FAIL | PASS | PASS |
AuthenticatorAttestationResponse interface: existence and properties of interface object | PASS | FAIL | PASS | PASS |
AuthenticatorAttestationResponse interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS |
AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS |
AuthenticatorAttestationResponse interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS |
AuthenticatorResponse interface object length | PASS | PASS | PASS | PASS |
AuthenticatorResponse interface object name | PASS | PASS | PASS | PASS |
AuthenticatorResponse interface: assertionResponse must inherit property "clientDataJSON" with the proper type | PASS | PASS | PASS | PASS |
AuthenticatorResponse interface: attribute clientDataJSON | PASS | FAIL | PASS | PASS |
AuthenticatorResponse interface: existence and properties of interface object | PASS | PASS | PASS | PASS |
AuthenticatorResponse interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS |
AuthenticatorResponse interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS |
AuthenticatorResponse interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientInputs: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientInputs[2]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientInputs[3]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientInputs[4]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientInputs[5]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientInputs[6]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientInputs[7]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientInputs[8]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientOutputs: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientOutputs[2]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientOutputs[3]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientOutputs[4]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientOutputs[5]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientOutputs[6]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientOutputs[7]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary AuthenticationExtensionsClientOutputs[8]: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary CredentialCreationOptions: original dictionary defined | PASS | PASS | PASS | PASS |
Partial dictionary CredentialRequestOptions: original dictionary defined | PASS | PASS | PASS | PASS |
Partial interface PublicKeyCredential: original interface defined | PASS | PASS | PASS | PASS |
PublicKeyCredential interface object length | PASS | PASS | PASS | PASS |
PublicKeyCredential interface object name | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: attribute rawId | PASS | FAIL | PASS | PASS |
PublicKeyCredential interface: attribute response | PASS | FAIL | PASS | PASS |
PublicKeyCredential interface: cred must inherit property "getClientExtensionResults()" with the proper type | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: cred must inherit property "isUserVerifyingPlatformAuthenticatorAvailable()" with the proper type | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: cred must inherit property "rawId" with the proper type | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: cred must inherit property "response" with the proper type | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: existence and properties of interface object | PASS | FAIL | PASS | PASS |
PublicKeyCredential interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: operation getClientExtensionResults() | PASS | PASS | PASS | PASS |
PublicKeyCredential interface: operation isUserVerifyingPlatformAuthenticatorAvailable() | PASS | PASS | PASS | PASS |
PublicKeyCredential must be primary interface of cred | PASS | PASS | PASS | PASS |
Stringification of assertionResponse | PASS | PASS | PASS | PASS |
Stringification of cred | PASS | PASS | PASS | PASS |
idl_test setup | PASS | PASS | PASS | PASS |
idlharness | PASS | PASS | PASS | PASS |
/webauthn/securecontext.http.html | OK | OK | OK | OK |
no navigator.credentials.create in non-secure context | PASS | PASS | PASS | PASS |
/webauthn/securecontext.https.html | OK | OK | OK | OK |
navigator.credentials.create exists in secure context | PASS | PASS | PASS | PASS |