Bug 1245346 Add test for onUpdated while lacking tab permissions r?kmag draft
authorMatthew Wein <mwein@mozilla.com>
Tue, 19 Apr 2016 20:13:08 -0400
changeset 413346 32e41af45b59da251812fff5da9e478756cb746b
parent 413345 27c6658b2a9004dd996ce79b35a40bb66ce98feb
child 531218 47fb7ef58452f95184a72485ad8b0a0a11091114
push id29420
push usermwein@mozilla.com
push dateWed, 14 Sep 2016 06:05:51 +0000
reviewerskmag
bugs1245346
milestone51.0a1
Bug 1245346 Add test for onUpdated while lacking tab permissions r?kmag MozReview-Commit-ID: EZysUdjnSJK
browser/components/extensions/test/browser/browser_ext_tabs_onUpdated.js
--- a/browser/components/extensions/test/browser/browser_ext_tabs_onUpdated.js
+++ b/browser/components/extensions/test/browser/browser_ext_tabs_onUpdated.js
@@ -82,28 +82,26 @@ add_task(function* () {
     extension.awaitFinish("tabs.onUpdated"),
   ]);
 
   yield extension.unload();
 
   yield BrowserTestUtils.closeWindow(win1);
 });
 
-function* do_test_update(background) {
+function* do_test_update(background, withPermissions = true) {
   let win1 = yield BrowserTestUtils.openNewBrowserWindow();
 
   yield focusWindow(win1);
 
-  let extension = ExtensionTestUtils.loadExtension({
-    manifest: {
-      "permissions": ["tabs"],
-    },
-
-    background: background,
-  });
+  let manifest = {};
+  if (withPermissions) {
+    manifest.permissions = ["tabs"];
+  }
+  let extension = ExtensionTestUtils.loadExtension({manifest, background});
 
   yield Promise.all([
     yield extension.startup(),
     yield extension.awaitFinish("finish"),
   ]);
 
   yield extension.unload();
 
@@ -172,9 +170,28 @@ add_task(function* test_url() {
           return;
         }
       });
       browser.tabs.update(tab.id, {url: "about:blank"});
     });
   });
 });
 
+add_task(function* test_without_tabs_permission() {
+  yield do_test_update(function background() {
+    browser.tabs.create({url: "about:blank"}, function(tab) {
+      browser.tabs.onUpdated.addListener(function onUpdated(tabId, changeInfo) {
+        if (tabId == tab.id) {
+          browser.test.assertFalse("url" in changeInfo, "url should not be included without tabs permission");
+          browser.test.assertFalse("favIconUrl" in changeInfo, "favIconUrl should not be included without tabs permission");
+
+          if (changeInfo.status == "complete") {
+            browser.tabs.onUpdated.removeListener(onUpdated);
+            browser.tabs.remove(tabId);
+            browser.test.notifyPass("finish");
+          }
+        }
+      });
+    });
+  }, false /* withPermissions */);
+});
+
 add_task(forceGC);