зеркало из https://github.com/mozilla/gecko-dev.git
70 строки
2.6 KiB
HTML
70 строки
2.6 KiB
HTML
<!DOCTYPE html>
|
|
<title>Federated Credential Management API disconnect() basic errors.</title>
|
|
<link rel="help" href="https://fedidcg.github.io/FedCM">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/resources/testdriver.js"></script>
|
|
<script src="/resources/testdriver-vendor.js"></script>
|
|
|
|
<body>
|
|
|
|
<script type="module">
|
|
import {fedcm_test,
|
|
mark_signed_in,
|
|
set_fedcm_cookie,
|
|
fedcm_get_and_select_first_account,
|
|
manifest_origin,
|
|
request_options_with_mediation_required,
|
|
select_manifest,
|
|
disconnect_options} from './support/fedcm-helper.sub.js';
|
|
|
|
fedcm_test(async t => {
|
|
await mark_signed_in();
|
|
await set_fedcm_cookie();
|
|
// Get at least one connected account that can be disconnected.
|
|
const cred = await fedcm_get_and_select_first_account(t,
|
|
request_options_with_mediation_required());
|
|
const manifest = `${manifest_origin}/\
|
|
credential-management/support/fedcm/manifest.py`;
|
|
await promise_rejects_js(t, TypeError, IdentityCredential.disconnect({
|
|
configURL: manifest,
|
|
clientId: '1'
|
|
}));
|
|
await promise_rejects_js(t, TypeError, IdentityCredential.disconnect({
|
|
configURL: manifest,
|
|
accountHint: 'hint'
|
|
}));
|
|
return promise_rejects_js(t, TypeError, IdentityCredential.disconnect({
|
|
clientId: '1',
|
|
accountHint: 'hint'
|
|
}));
|
|
}, "disconnect requires 3 parameters: configURL, clientId, and accountHint");
|
|
|
|
fedcm_test(async t => {
|
|
await mark_signed_in();
|
|
await set_fedcm_cookie();
|
|
// Get at least one connected account that can be disconnected.
|
|
const cred = await fedcm_get_and_select_first_account(t,
|
|
request_options_with_mediation_required());
|
|
|
|
const manifest = `manifest_with_cross_origin_disconnect.sub.json`;
|
|
await select_manifest(t, request_options_with_mediation_required(manifest));
|
|
return promise_rejects_dom(t, 'NetworkError',
|
|
IdentityCredential.disconnect(disconnect_options('1234', manifest)));
|
|
}, "disconnect fails if the disconnect endpoint is cross-origin with respect\
|
|
to the config file");
|
|
|
|
fedcm_test(async t => {
|
|
await mark_signed_in();
|
|
await set_fedcm_cookie();
|
|
// Get at least one connected account that can be disconnected.
|
|
const cred = await fedcm_get_and_select_first_account(t,
|
|
request_options_with_mediation_required());
|
|
|
|
const manifest = `manifest_with_disconnect_failure.json`;
|
|
await select_manifest(t, request_options_with_mediation_required(manifest));
|
|
return promise_rejects_dom(t, 'NetworkError',
|
|
IdentityCredential.disconnect(disconnect_options('1234', manifest)));
|
|
}, "disconnect fails if the server sends failure");
|
|
</script>
|