<!DOCTYPE html>
<meta charset="utf-8">
<title>WebAuthn navigator.credentials.create() 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";

    // 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 CreateCredentialsTest({path: "options.publicKey.timeout", value: -1}).runTest("Bad timeout: negative", new TypeError());
    // new CreateCredentialsTest({path: "options.publicKey.timeout", value: 4294967295 + 1}).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.
    promise_test(() => {
        return new Promise((resolve, reject) => {
            var args = {
                options: {
                    publicKey: {
                        timeout: 1
                    }
                }
            };

            setTimeout(() => {
                reject(new Error ("timed out"));
            }, 1000);

            createCredential(args).then((res) => {
                resolve(res);
            });
        });
    }, "ensure create credential times out");
    // TODO: createCredential.timeout > 1s && setTimeout < 1s
    // TODO: createCredential.timeout < 5s && setTimeout > 5s
});

/* JSHINT */
/* globals standardSetup, CreateCredentialsTest, createCredential, promise_test */
</script>