diff options
Diffstat (limited to 'testing/web-platform/tests/webauthn/createcredential-pubkeycredparams.https.html')
-rw-r--r-- | testing/web-platform/tests/webauthn/createcredential-pubkeycredparams.https.html | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webauthn/createcredential-pubkeycredparams.https.html b/testing/web-platform/tests/webauthn/createcredential-pubkeycredparams.https.html new file mode 100644 index 0000000000..d1df7952d6 --- /dev/null +++ b/testing/web-platform/tests/webauthn/createcredential-pubkeycredparams.https.html @@ -0,0 +1,73 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>WebAuthn navigator.credentials.create() pubKeyCredParams 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 badType = { + type: "something-else", + alg: cose_alg_ECDSA_w_SHA512 + }; + var badTypeEmptyString = cloneObject(badType); + badTypeEmptyString.type = ""; + var badTypeNull = cloneObject(badType); + badTypeNull.type = null; + var badTypeEmptyObj = cloneObject(badType); + badTypeEmptyObj.type = {}; + + var badAlg = { + type: "public-key", + alg: 42 + }; + var badAlgZero = cloneObject(badAlg); + badAlgZero.alg = 0; + + // bad pubKeyCredParams values + new CreateCredentialsTest({path: "options.publicKey.pubKeyCredParams", value: undefined}).runTest("Bad pubKeyCredParams: pubKeyCredParams is undefined", TypeError); + new CreateCredentialsTest("options.publicKey.pubKeyCredParams", "hi mom").runTest("Bad pubKeyCredParams: pubKeyCredParams is string", TypeError); + new CreateCredentialsTest("options.publicKey.pubKeyCredParams", null).runTest("Bad pubKeyCredParams: pubKeyCredParams is null", TypeError); + new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badType]).runTest("Bad pubKeyCredParams: first param has bad type (\"something-else\")", TypeError); + new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badTypeEmptyString]).runTest("Bad pubKeyCredParams: first param has bad type (\"\")", TypeError); + new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badTypeNull]).runTest("Bad pubKeyCredParams: first param has bad type (null)", TypeError); + new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badTypeEmptyObj]).runTest("Bad pubKeyCredParams: first param has bad type (empty object)", TypeError); + new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badAlg]) + .modify("options.publicKey.timeout", 300) + .runTest("Bad pubKeyCredParams: first param has bad alg (42)", "NotAllowedError"); + new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badAlgZero]) + .modify("options.publicKey.timeout", 300) + .runTest("Bad pubKeyCredParams: first param has bad alg (0)", "NotAllowedError"); + + // TODO: come back to this when mock authenticators support multiple cryptos so that we can test the preference ranking + // function verifyEC256(res) { + // debug ("verifyEC256 got", res); + // debug ("client data JSON", ab2str(res.response.clientDataJSON)); + // parseAuthenticatorData(res.response.attestationObject); + // } + // new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [pkParamEC256, pkParamEC512]) + // .afterTest(verifyEC256) + // .runTest("EC256, EC512 pubKeyCredParams"); + // function verifyEC512(res) { + // debug ("verifyEC512 got", res); + // debug ("client data JSON", ab2str(res.response.clientDataJSON)); + // // parseAuthenticatorData(res.response.attestationObject); + // printHex ("clientDataJSON", res.response.clientDataJSON); + // printHex ("attestationObject", res.response.attestationObject); + // } + // new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [pkParamEC512, pkParamEC256]) + // .afterTest(verifyEC512) + // .runTest("EC512, EC256 pubKeyCredParams"); +}); + +/* JSHINT */ +/* globals standardSetup, CreateCredentialsTest, cose_alg_ECDSA_w_SHA512, cloneObject */ +</script> |