84 lines
2.4 KiB
HTML
84 lines
2.4 KiB
HTML
<!DOCTYPE html>
|
|
<title>Credential Management API: get() basics.</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script>
|
|
promise_test(async (t) => {
|
|
await promise_rejects_dom(
|
|
t,
|
|
"NotSupportedError",
|
|
navigator.credentials.get()
|
|
);
|
|
|
|
await promise_rejects_dom(
|
|
t,
|
|
"NotSupportedError",
|
|
navigator.credentials.get({})
|
|
);
|
|
|
|
await promise_rejects_dom(
|
|
t,
|
|
"NotSupportedError",
|
|
navigator.credentials.get({ x: "y" })
|
|
);
|
|
|
|
await promise_rejects_dom(
|
|
t,
|
|
"NotSupportedError",
|
|
navigator.credentials.get({ x: "y", y: "z" })
|
|
);
|
|
|
|
await promise_rejects_dom(
|
|
t,
|
|
"NotSupportedError",
|
|
navigator.credentials.get({ x: "y" })
|
|
);
|
|
|
|
await promise_rejects_dom(
|
|
t,
|
|
"NotSupportedError",
|
|
navigator.credentials.get({ mediation: "required" })
|
|
);
|
|
|
|
const abortController = new AbortController();
|
|
const { signal } = abortController;
|
|
await promise_rejects_dom(
|
|
t,
|
|
"NotSupportedError",
|
|
navigator.credentials.get({ signal })
|
|
);
|
|
|
|
await promise_rejects_dom(
|
|
t,
|
|
"NotSupportedError",
|
|
navigator.credentials.get({ signal, mediation: "required" })
|
|
);
|
|
}, "Calling navigator.credentials.get() without a valid matching interface.");
|
|
|
|
promise_test(function(t) {
|
|
const controller = new AbortController();
|
|
controller.abort("custom reason");
|
|
|
|
return promise_rejects_exactly(t, "custom reason",
|
|
navigator.credentials.get({ signal: controller.signal }));
|
|
}, "navigator.credentials.get() aborted with custom reason");
|
|
|
|
promise_test(async function(t) {
|
|
const reasons = [{}, [], new Error("custom error")];
|
|
|
|
for (let reason of reasons) {
|
|
const result = navigator.credentials.get({ signal: AbortSignal.abort(reason) });
|
|
await promise_rejects_exactly(t, reason, result);
|
|
}
|
|
}, "navigator.credentials.get() aborted with different objects");
|
|
|
|
promise_test(function(t) {
|
|
const error = new Error("custom error");
|
|
const controller = new AbortController();
|
|
|
|
const result = navigator.credentials.get({ signal: controller.signal });
|
|
controller.abort(error); // aborted after the promise is created
|
|
|
|
return promise_rejects_exactly(t, error, result);
|
|
}, "navigator.credentials.get() rejects when aborted after the promise creation");
|
|
</script>
|