Bug 1287007 - Fix timing issue in browser/page action tests
MozReview-Commit-ID: 9L0ttaq42Ga
--- a/browser/components/extensions/test/browser/browser_ext_browserAction_pageAction_icon.js
+++ b/browser/components/extensions/test/browser/browser_ext_browserAction_pageAction_icon.js
@@ -179,20 +179,22 @@ add_task(function* testDetailsObjects()
browser.test.fail("expecting 'setIcon' message");
}
let details = iconDetails[test.index];
let detailString = JSON.stringify(details);
browser.test.log(`Setting browerAction/pageAction to ${detailString} expecting URLs ${JSON.stringify(details.resolutions)}`);
- browser.browserAction.setIcon(Object.assign({tabId}, details.details));
- browser.pageAction.setIcon(Object.assign({tabId}, details.details));
-
- browser.test.sendMessage("iconSet");
+ Promise.all([
+ browser.browserAction.setIcon(Object.assign({tabId}, details.details)),
+ browser.pageAction.setIcon(Object.assign({tabId}, details.details)),
+ ]).then(() => {
+ browser.test.sendMessage("iconSet");
+ });
});
// Generate a list of tests and resolutions to send back to the test
// context.
//
// This process is a bit convoluted, because the outer test context needs
// to handle checking the button nodes and changing the screen resolution,
// but it can't pass us icon definitions with ImageData objects. This
--- a/browser/components/extensions/test/browser/browser_ext_popup_shutdown.js
+++ b/browser/components/extensions/test/browser/browser_ext_popup_shutdown.js
@@ -1,17 +1,18 @@
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
let getExtension = () => {
return ExtensionTestUtils.loadExtension({
background() {
browser.tabs.query({active: true, currentWindow: true}, tabs => {
- browser.pageAction.show(tabs[0].id);
+ browser.pageAction.show(tabs[0].id)
+ .then(() => { browser.test.sendMessage("pageAction ready"); });
});
},
manifest: {
"browser_action": {
"default_popup": "popup.html",
"browser_style": false,
},
@@ -29,45 +30,48 @@ let getExtension = () => {
});
};
add_task(function* testStandaloneBrowserAction() {
info("Test stand-alone browserAction popup");
let extension = getExtension();
yield extension.startup();
+ yield extension.awaitMessage("pageAction ready");
clickBrowserAction(extension);
let browser = yield awaitExtensionPanel(extension);
let panel = getPanelForNode(browser);
yield extension.unload();
is(panel.parentNode, null, "Panel should be removed from the document");
});
add_task(function* testMenuPanelBrowserAction() {
let extension = getExtension();
yield extension.startup();
+ yield extension.awaitMessage("pageAction ready");
let widget = getBrowserActionWidget(extension);
CustomizableUI.addWidgetToArea(widget.id, CustomizableUI.AREA_PANEL);
clickBrowserAction(extension);
let browser = yield awaitExtensionPanel(extension);
let panel = getPanelForNode(browser);
yield extension.unload();
is(panel.state, "closed", "Panel should be closed");
});
add_task(function* testPageAction() {
let extension = getExtension();
yield extension.startup();
+ yield extension.awaitMessage("pageAction ready");
clickPageAction(extension);
let browser = yield awaitExtensionPanel(extension);
let panel = getPanelForNode(browser);
yield extension.unload();
yield new Promise(resolve => setTimeout(resolve, 0));