summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/test/mochitest/head_unlimitedStorage.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/extensions/test/mochitest/head_unlimitedStorage.js')
-rw-r--r--toolkit/components/extensions/test/mochitest/head_unlimitedStorage.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/toolkit/components/extensions/test/mochitest/head_unlimitedStorage.js b/toolkit/components/extensions/test/mochitest/head_unlimitedStorage.js
new file mode 100644
index 0000000000..dfec90b3e0
--- /dev/null
+++ b/toolkit/components/extensions/test/mochitest/head_unlimitedStorage.js
@@ -0,0 +1,45 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+/* exported checkSitePermissions */
+
+const { Services } = SpecialPowers;
+const { NetUtil } = SpecialPowers.ChromeUtils.import(
+ "resource://gre/modules/NetUtil.jsm"
+);
+
+function checkSitePermissions(uuid, expectedPermAction, assertMessage) {
+ if (!uuid) {
+ throw new Error(
+ "checkSitePermissions should not be called with an undefined uuid"
+ );
+ }
+
+ const baseURI = NetUtil.newURI(`moz-extension://${uuid}/`);
+ const principal = Services.scriptSecurityManager.createContentPrincipal(
+ baseURI,
+ {}
+ );
+
+ const sitePermissions = {
+ webextUnlimitedStorage: Services.perms.testPermissionFromPrincipal(
+ principal,
+ "WebExtensions-unlimitedStorage"
+ ),
+ persistentStorage: Services.perms.testPermissionFromPrincipal(
+ principal,
+ "persistent-storage"
+ ),
+ };
+
+ for (const [sitePermissionName, actualPermAction] of Object.entries(
+ sitePermissions
+ )) {
+ is(
+ actualPermAction,
+ expectedPermAction,
+ `The extension "${sitePermissionName}" SitePermission ${assertMessage} as expected`
+ );
+ }
+}