https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 44d012cd79c46f2bddec0fd324ed5e13de53878c authored by Brian Burg on 16 March 2018, 04:56:07 UTC
WebDriver: REGRESSION(86d68c3198c): missing 'sys' import in fixtures.py
Tip revision: 44d012c
createcredential-timeout.https.html
<!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>
back to top