| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>WebAuthn navigator.credentials.get() timeout Tests</title> |
| <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=helpers.js></script> |
| <body></body> |
| <script> |
| standardSetup(function() { |
| "use strict"; |
| |
| var credPromise = createCredential(); |
| |
| // bad timeout values |
| // TODO: there is some debate as to whether MAX_UNSIGNED_LONG + 1 and / or -1 should be disallowed since they get converted to valid values internally |
| // new GetCredentialsTest({path: "options.publicKey.timeout", value: -1}) |
| // .addCredential(credPromise) |
| // .runTest("Bad timeout: negative", new TypeError()); |
| // new GetCredentialsTest({path: "options.publicKey.timeout", value: 4294967295 + 1}) |
| // .addCredential(credPromise) |
| // .runTest("Bad timeout: too big", new TypeError()); |
| |
| // timeout test |
| // XXX: this probably always passes with most mock authenticators unless |
| // some setup happens right here to make sure they don't return a credential |
| // right away. So... uhh... I guess test this with a real authenticator if you |
| // want to see if it really works. |
| var timer; |
| function startTimer() { |
| timer = setTimeout(() => { |
| throw new Error("Timer went off before timeout"); |
| }, 1000); |
| } |
| function stopTimer() { |
| clearTimeout(timer); |
| } |
| new GetCredentialsTest({path: "options.publicKey.timeout", value: 1}) |
| .addCredential(credPromise) |
| .beforeTest(startTimer) |
| .afterTest(stopTimer) |
| .runTest("ensure create credential times out"); |
| // TODO: createCredential.timeout > 1s && setTimeout < 1s |
| // TODO: createCredential.timeout < 5s && setTimeout > 5s |
| }); |
| |
| /* JSHINT */ |
| /* globals standardSetup, GetCredentialsTest, createCredential */ |
| </script> |