blob: f0c3e5eb2d20e8f1992f56fe75d5291c0900e6b1 [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8">
<title>FederatedCredential.revoke() promise resolution</title>
<link rel="author" title="Christian Biesinger" href="mailto:cbiesinger@chromium.org">
<link rel="help" href="https://wicg.github.io/FedCM/#browser-api-revocation">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script type="module">
import {fedcm_test} from './support/fedcm-helper.js';
async function getCredential(provider_url) {
const provider = {
url: provider_url || "https://idp.example/",
clientId: "1234",
};
return await navigator.credentials.get({
federated: {
providers: [provider],
},
});
}
fedcm_test(async (t, mock) => {
mock.revokeReturn("kSuccess");
await (await getCredential()).revoke("foo@bar.com");
}, "Successfully revoking a token should resolve the promise.");
fedcm_test(async (t, mock) => {
mock.revokeReturn("kError");
const result = (await getCredential()).revoke("foo@bar.com");
return promise_rejects_dom(t, "NetworkError", result);
}, "Error should reject the promise.");
fedcm_test(async (t, mock) => {
mock.revokeReturn("kError");
const result = (await getCredential()).revoke("");
return promise_rejects_dom(t, "InvalidStateError", result);
}, "Empty hint should reject the promise.");
fedcm_test(async (t, mock) => {
const result = getCredential("https://other-idp.example/").then((c) => c.revoke("foo@bar.com"));
return promise_rejects_dom(t, "NetworkError", result);
}, "Provider URL should honor Content-Security-Policy.");
</script>