Bug 1333741 - Add tests for temporary permissions when reloading all the pages using the tab context menu. r=johannh draft
authorPaolo Amadini <paolo.mozmail@amadzone.org>
Fri, 10 Feb 2017 14:13:20 +0000
changeset 481852 cb62ffa7633c3b2a59840444f22b2b6e3a109efe
parent 481821 b9c6246f13ead0159d8a262959fae0efcbbca407
child 545294 704784d95f0b8274a86587036b240f57dbfdce8e
push id44928
push userpaolo.mozmail@amadzone.org
push dateFri, 10 Feb 2017 14:14:34 +0000
reviewersjohannh
bugs1333741
milestone54.0a1
Bug 1333741 - Add tests for temporary permissions when reloading all the pages using the tab context menu. r=johannh MozReview-Commit-ID: CNjj57WCTc1
browser/base/content/test/general/browser_temporary_permissions_navigation.js
--- a/browser/base/content/test/general/browser_temporary_permissions_navigation.js
+++ b/browser/base/content/test/general/browser_temporary_permissions_navigation.js
@@ -69,16 +69,46 @@ add_task(function* testTempPermissionOnR
       state: SitePermissions.UNKNOWN,
       scope: SitePermissions.SCOPE_PERSISTENT,
     });
 
     SitePermissions.remove(uri, id, browser);
   });
 });
 
+// Test that temporary permissions are not removed when reloading all tabs.
+add_task(function* testTempPermissionOnReloadAllTabs() {
+  let uri = NetUtil.newURI("https://example.com");
+  let id = "geo";
+
+  yield BrowserTestUtils.withNewTab(uri.spec, function*(browser) {
+    SitePermissions.set(uri, id, SitePermissions.BLOCK, SitePermissions.SCOPE_TEMPORARY, browser);
+
+    // Open the tab context menu.
+    let contextMenu = document.getElementById("tabContextMenu");
+    let popupShownPromise = BrowserTestUtils.waitForEvent(contextMenu, "popupshown");
+    EventUtils.synthesizeMouseAtCenter(gBrowser.selectedTab, {type: "contextmenu", button: 2});
+    yield popupShownPromise;
+
+    let reloadMenuItem = document.getElementById("context_reloadAllTabs");
+
+    let reloaded = Promise.all(gBrowser.visibleTabs.map(
+      tab => BrowserTestUtils.browserLoaded(gBrowser.getBrowserForTab(tab))));
+    EventUtils.synthesizeMouseAtCenter(reloadMenuItem, {});
+    yield reloaded;
+
+    Assert.deepEqual(SitePermissions.get(uri, id, browser), {
+      state: SitePermissions.BLOCK,
+      scope: SitePermissions.SCOPE_TEMPORARY,
+    });
+
+    SitePermissions.remove(uri, id, browser);
+  });
+});
+
 // Test that temporary permissions are persisted through navigation in a tab.
 add_task(function* testTempPermissionOnNavigation() {
   let uri = NetUtil.newURI("https://example.com/");
   let id = "geo";
 
   yield BrowserTestUtils.withNewTab(uri.spec, function*(browser) {
     SitePermissions.set(uri, id, SitePermissions.BLOCK, SitePermissions.SCOPE_TEMPORARY, browser);