| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <title>WebAuthn navigator.credentials.create() extensions 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 dummyExtension = { | |
| foo: true, | |
| bar: "yup" | |
| }; | |
| // bad extension values | |
| new CreateCredentialsTest("options.publicKey.extensions", "hi mom").runTest("Bad extensions: extensions is string", TypeError); | |
| // phony extensions | |
| var randomExtId = {}; | |
| randomExtId[createRandomString(64)] = dummyExtension; | |
| new CreateCredentialsTest("options.publicKey.extensions", {foo: JSON.stringify(randomExtId)}).runTest("extensions is a nonsensical JSON string"); | |
| // appid | |
| new CreateCredentialsTest("options.publicKey.extensions", {appid: ""}).runTest("empty appid in create request", "NotSupportedError"); | |
| new CreateCredentialsTest("options.publicKey.extensions", {appid: null}).runTest("null appid in create request", "NotSupportedError"); | |
| new CreateCredentialsTest("options.publicKey.extensions", {appid: "anything"}).runTest("appid in create request", "NotSupportedError"); | |
| promise_test(async t => { | |
| const credential = await createCredential({ | |
| options: { | |
| publicKey: { | |
| extensions: { | |
| prf: {}, | |
| }, | |
| }, | |
| }, | |
| }); | |
| assert_false(credential.getClientExtensionResults().prf.enabled); | |
| }, "navigator.credentials.create() with prf requested but no support in authenticator"); | |
| }); | |
| /* JSHINT */ | |
| /* globals standardSetup, CreateCredentialsTest, createRandomString */ | |
| </script> |