60 lines
3.1 KiB
HTML
60 lines
3.1 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset="utf-8">
|
|
<title>WebAuthn navigator.credentials.create() authenticator selection Tests</title>
|
|
<meta name="timeout" content="long">
|
|
<link rel="author" title="Adam Powers" href="mailto:adam@fidoalliance.org">
|
|
<link rel="help" href="https://w3c.github.io/webauthn/#iface-credential">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
<script src=helpers.js></script>
|
|
<body></body>
|
|
<script>
|
|
standardSetup(function() {
|
|
"use strict";
|
|
|
|
var defaultAuthnrSel = {
|
|
authenticatorAttachment: "cross-platform",
|
|
requireResidentKey: false,
|
|
userVerification: "preferred"
|
|
};
|
|
// attachment
|
|
var authnrSelAttachPlatform = cloneObject(defaultAuthnrSel);
|
|
authnrSelAttachPlatform.authenticatorAttachment = "platform";
|
|
// resident key
|
|
var authnrSelRkTrue = cloneObject(defaultAuthnrSel);
|
|
authnrSelRkTrue.requireResidentKey = true;
|
|
var authnrSelRkBadString = cloneObject(defaultAuthnrSel);
|
|
authnrSelRkBadString.requireResidentKey = "foo";
|
|
// user verification
|
|
var authnrSelUvRequired = cloneObject(defaultAuthnrSel);
|
|
authnrSelUvRequired.userVerification = "required";
|
|
|
|
// authenticatorSelection bad values
|
|
new CreateCredentialsTest("options.publicKey.authenticatorSelection", "").runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty string", TypeError);
|
|
new CreateCredentialsTest("options.publicKey.authenticatorSelection", "none").runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection is string", TypeError);
|
|
|
|
// authenticatorSelection bad attachment values
|
|
// the physically plugged-in or virtual authenticator should be a cross-platform authenticator.
|
|
new CreateCredentialsTest("options.publicKey.authenticatorSelection", authnrSelAttachPlatform)
|
|
.modify("options.publicKey.timeout", 300)
|
|
.runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection attachment platform", "NotAllowedError");
|
|
|
|
// authenticatorSelection bad requireResidentKey values
|
|
// the physically plugged-in or virtual authenticator should not support resident keys
|
|
new CreateCredentialsTest("options.publicKey.authenticatorSelection", authnrSelRkTrue)
|
|
.modify("options.publicKey.timeout", 300)
|
|
.runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey true", "NotAllowedError");
|
|
|
|
// authenticatorSelection bad userVerification values
|
|
// the physically plugged-in or virtual authenticator should not support user verification
|
|
new CreateCredentialsTest("options.publicKey.authenticatorSelection", authnrSelUvRequired)
|
|
// this assertion will time out the test under default parameters since the browser will wait for a platform authenticator
|
|
.modify("options.publicKey.timeout", 300)
|
|
.runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification required", "NotAllowedError");
|
|
});
|
|
|
|
/* JSHINT */
|
|
/* globals standardSetup, CreateCredentialsTest, cloneObject */
|
|
</script>
|