mirror of
https://github.com/servo/servo.git
synced 2025-07-03 21:43:41 +01:00
50 lines
No EOL
2 KiB
HTML
50 lines
No EOL
2 KiB
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> |