2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
7 "https://example.com/browser/dom/quota/test/browser/permissionsPrompt.html";
9 addTest(async
function testPermissionTemporaryDenied() {
10 registerPopupEventHandler("popupshowing", function () {
11 ok(true, "prompt showing");
13 registerPopupEventHandler("popupshown", function () {
14 ok(true, "prompt shown");
15 triggerSecondaryCommand(this);
17 registerPopupEventHandler("popuphidden", function () {
18 ok(true, "prompt hidden");
22 gBrowser
.selectedTab
= BrowserTestUtils
.addTab(gBrowser
);
24 info("Loading test page: " + testPageURL
);
25 BrowserTestUtils
.startLoadingURIString(gBrowser
.selectedBrowser
, testPageURL
);
26 await
waitForMessage(false, gBrowser
);
29 getPermission(testPageURL
, "persistent-storage"),
30 Ci
.nsIPermissionManager
.UNKNOWN_ACTION
,
31 "Correct permission set"
34 let tempBlock
= SitePermissions
.getAllForBrowser(
35 gBrowser
.selectedBrowser
38 p
.id
== "persistent-storage" &&
39 p
.state
== SitePermissions
.BLOCK
&&
40 p
.scope
== SitePermissions
.SCOPE_TEMPORARY
42 ok(tempBlock
, "Should have a temporary block permission on active browser");
44 unregisterAllPopupEventHandlers();
45 gBrowser
.removeCurrentTab();
46 removePermission(testPageURL
, "persistent-storage");
49 addTest(async
function testPermissionDenied() {
50 removePermission(testPageURL
, "persistent-storage");
52 registerPopupEventHandler("popupshowing", function () {
53 ok(true, "prompt showing");
55 registerPopupEventHandler("popupshown", function () {
56 ok(true, "prompt shown");
57 triggerSecondaryCommand(this, /* remember = */ true);
59 registerPopupEventHandler("popuphidden", function () {
60 ok(true, "prompt hidden");
64 gBrowser
.selectedTab
= BrowserTestUtils
.addTab(gBrowser
);
66 info("Loading test page: " + testPageURL
);
67 BrowserTestUtils
.startLoadingURIString(gBrowser
.selectedBrowser
, testPageURL
);
68 await
waitForMessage(false, gBrowser
);
71 getPermission(testPageURL
, "persistent-storage"),
72 Ci
.nsIPermissionManager
.DENY_ACTION
,
73 "Correct permission set"
75 unregisterAllPopupEventHandlers();
76 gBrowser
.removeCurrentTab();
77 // Keep persistent-storage permission for the next test.
80 addTest(async
function testNoPermissionPrompt() {
81 registerPopupEventHandler("popupshowing", function () {
82 ok(false, "Shouldn't show a popup this time");
84 registerPopupEventHandler("popupshown", function () {
85 ok(false, "Shouldn't show a popup this time");
87 registerPopupEventHandler("popuphidden", function () {
88 ok(false, "Shouldn't show a popup this time");
92 gBrowser
.selectedTab
= BrowserTestUtils
.addTab(gBrowser
);
94 info("Loading test page: " + testPageURL
);
95 BrowserTestUtils
.startLoadingURIString(gBrowser
.selectedBrowser
, testPageURL
);
96 await
waitForMessage(false, gBrowser
);
99 getPermission(testPageURL
, "persistent-storage"),
100 Ci
.nsIPermissionManager
.DENY_ACTION
,
101 "Correct permission set"
103 unregisterAllPopupEventHandlers();
104 gBrowser
.removeCurrentTab();
105 removePermission(testPageURL
, "persistent-storage");
108 addTest(async
function testPermissionDeniedDismiss() {
109 registerPopupEventHandler("popupshowing", function () {
110 ok(true, "prompt showing");
112 registerPopupEventHandler("popupshown", function () {
113 ok(true, "prompt shown");
114 // Dismiss permission prompt.
115 dismissNotification(this);
117 registerPopupEventHandler("popuphidden", function () {
118 ok(true, "prompt hidden");
121 info("Creating tab");
122 gBrowser
.selectedTab
= BrowserTestUtils
.addTab(gBrowser
);
124 info("Loading test page: " + testPageURL
);
125 BrowserTestUtils
.startLoadingURIString(gBrowser
.selectedBrowser
, testPageURL
);
126 await
waitForMessage(false, gBrowser
);
128 // Pressing ESC results in a temporary block permission on the browser object.
129 // So the global permission for the URL should still be unknown, but the browser
130 // should have a block permission with a temporary scope.
132 getPermission(testPageURL
, "persistent-storage"),
133 Ci
.nsIPermissionManager
.UNKNOWN_ACTION
,
134 "Correct permission set"
137 let tempBlock
= SitePermissions
.getAllForBrowser(
138 gBrowser
.selectedBrowser
141 p
.id
== "persistent-storage" &&
142 p
.state
== SitePermissions
.BLOCK
&&
143 p
.scope
== SitePermissions
.SCOPE_TEMPORARY
145 ok(tempBlock
, "Should have a temporary block permission on active browser");
147 unregisterAllPopupEventHandlers();
148 gBrowser
.removeCurrentTab();
149 removePermission(testPageURL
, "persistent-storage");