Revision 65e0628ee53f311f25f50990f4e7b35ba67b06a0 authored by Henrik Skupin on 28 April 2018, 19:36:03 UTC, committed by moz-wptsync-bot on 28 April 2018, 19:48:02 UTC
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1457089 gecko-commit: 9d124f189e612ef45f466456934ccc1b1a4ff824 gecko-integration-branch: central gecko-reviewers: jgraham
1 parent 0027df2
getcredential-timeout.https.html
<!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>
Computing file changes ...