browser_permissionsPromptDeny.js (4757B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 6 const testPageURL = 7 "https://example.com/browser/dom/quota/test/browser/permissionsPrompt.html"; 8 9 addTest(async function testPermissionTemporaryDenied() { 10 registerPopupEventHandler("popupshowing", function () { 11 ok(true, "prompt showing"); 12 }); 13 registerPopupEventHandler("popupshown", function () { 14 ok(true, "prompt shown"); 15 triggerSecondaryCommand(this); 16 }); 17 registerPopupEventHandler("popuphidden", function () { 18 ok(true, "prompt hidden"); 19 }); 20 21 info("Creating tab"); 22 gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); 23 24 info("Loading test page: " + testPageURL); 25 BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, testPageURL); 26 await waitForMessage(false, gBrowser); 27 28 is( 29 getPermission(testPageURL, "persistent-storage"), 30 Ci.nsIPermissionManager.UNKNOWN_ACTION, 31 "Correct permission set" 32 ); 33 34 let tempBlock = SitePermissions.getAllForBrowser( 35 gBrowser.selectedBrowser 36 ).find( 37 p => 38 p.id == "persistent-storage" && 39 p.state == SitePermissions.BLOCK && 40 p.scope == SitePermissions.SCOPE_TEMPORARY 41 ); 42 ok(tempBlock, "Should have a temporary block permission on active browser"); 43 44 unregisterAllPopupEventHandlers(); 45 gBrowser.removeCurrentTab(); 46 removePermission(testPageURL, "persistent-storage"); 47 }); 48 49 addTest(async function testPermissionDenied() { 50 removePermission(testPageURL, "persistent-storage"); 51 52 registerPopupEventHandler("popupshowing", function () { 53 ok(true, "prompt showing"); 54 }); 55 registerPopupEventHandler("popupshown", function () { 56 ok(true, "prompt shown"); 57 triggerSecondaryCommand(this, /* remember = */ true); 58 }); 59 registerPopupEventHandler("popuphidden", function () { 60 ok(true, "prompt hidden"); 61 }); 62 63 info("Creating tab"); 64 gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); 65 66 info("Loading test page: " + testPageURL); 67 BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, testPageURL); 68 await waitForMessage(false, gBrowser); 69 70 is( 71 getPermission(testPageURL, "persistent-storage"), 72 Ci.nsIPermissionManager.DENY_ACTION, 73 "Correct permission set" 74 ); 75 unregisterAllPopupEventHandlers(); 76 gBrowser.removeCurrentTab(); 77 // Keep persistent-storage permission for the next test. 78 }); 79 80 addTest(async function testNoPermissionPrompt() { 81 registerPopupEventHandler("popupshowing", function () { 82 ok(false, "Shouldn't show a popup this time"); 83 }); 84 registerPopupEventHandler("popupshown", function () { 85 ok(false, "Shouldn't show a popup this time"); 86 }); 87 registerPopupEventHandler("popuphidden", function () { 88 ok(false, "Shouldn't show a popup this time"); 89 }); 90 91 info("Creating tab"); 92 gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); 93 94 info("Loading test page: " + testPageURL); 95 BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, testPageURL); 96 await waitForMessage(false, gBrowser); 97 98 is( 99 getPermission(testPageURL, "persistent-storage"), 100 Ci.nsIPermissionManager.DENY_ACTION, 101 "Correct permission set" 102 ); 103 unregisterAllPopupEventHandlers(); 104 gBrowser.removeCurrentTab(); 105 removePermission(testPageURL, "persistent-storage"); 106 }); 107 108 addTest(async function testPermissionDeniedDismiss() { 109 registerPopupEventHandler("popupshowing", function () { 110 ok(true, "prompt showing"); 111 }); 112 registerPopupEventHandler("popupshown", function () { 113 ok(true, "prompt shown"); 114 // Dismiss permission prompt. 115 dismissNotification(this); 116 }); 117 registerPopupEventHandler("popuphidden", function () { 118 ok(true, "prompt hidden"); 119 }); 120 121 info("Creating tab"); 122 gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser); 123 124 info("Loading test page: " + testPageURL); 125 BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, testPageURL); 126 await waitForMessage(false, gBrowser); 127 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. 131 is( 132 getPermission(testPageURL, "persistent-storage"), 133 Ci.nsIPermissionManager.UNKNOWN_ACTION, 134 "Correct permission set" 135 ); 136 137 let tempBlock = SitePermissions.getAllForBrowser( 138 gBrowser.selectedBrowser 139 ).find( 140 p => 141 p.id == "persistent-storage" && 142 p.state == SitePermissions.BLOCK && 143 p.scope == SitePermissions.SCOPE_TEMPORARY 144 ); 145 ok(tempBlock, "Should have a temporary block permission on active browser"); 146 147 unregisterAllPopupEventHandlers(); 148 gBrowser.removeCurrentTab(); 149 removePermission(testPageURL, "persistent-storage"); 150 });