Bug 1245346 Add test for onUpdated while lacking tab permissions r?kmag
MozReview-Commit-ID: EZysUdjnSJK
--- 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);