blob: 4a39112d21e8ac4e0fd8baf2420ee34c5d8b8e32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
const knownPermissions: Deno.PermissionName[] = [
"run",
"read",
"write",
"net",
"env",
"plugin",
"hrtime",
];
export function assert(cond: unknown): asserts cond {
if (!cond) {
throw Error("Assertion failed");
}
}
function genFunc(grant: Deno.PermissionName): [string, () => Promise<void>] {
const gen: () => Promise<void> = async function Granted(): Promise<void> {
const status0 = await navigator.permissions.query({ name: grant });
assert(status0 != null);
assert(status0.state === "granted");
const status1 = await navigator.permissions.revoke({ name: grant });
assert(status1 != null);
assert(status1.state === "prompt");
};
const name = grant + "Granted";
return [name, gen];
}
for (const grant of knownPermissions) {
const [name, fn] = genFunc(grant);
Deno.test(name, fn);
}
|