Bug 1287007 - Fix timing issue in test_delay_update_webextension.js
The onUpdateAvailable listener is asynchronously notified, so the caller
(i.e. the test) cannot assume that a message sent immediately after
triggering an update would trigger the `browser.test.onMessage` listener
that was added in the onUpdateAvailable event handler.
MozReview-Commit-ID: 12n64f5l3RA
--- a/toolkit/mozapps/extensions/test/xpcshell/test_delay_update_webextension.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_delay_update_webextension.js
@@ -209,16 +209,17 @@ add_task(function* delay_updates_defer()
browser.test.onMessage.addListener(msg => {
if (msg == "allow") {
browser.test.notifyPass("allowed");
browser.runtime.reload();
} else {
browser.test.fail(`wrong message: ${msg}`);
}
});
+ browser.test.sendMessage("truly ready");
});
browser.test.sendMessage("ready");
},
}, DEFER_ID);
yield Promise.all([extension.startup(), extension.awaitMessage("ready")]);
let addon = yield promiseAddonByID(DEFER_ID);
@@ -244,16 +245,17 @@ add_task(function* delay_updates_defer()
do_check_eq(addon_postponed.version, "1.0");
do_check_eq(addon_postponed.name, "Generated extension");
do_check_true(addon_postponed.isCompatible);
do_check_false(addon_postponed.appDisabled);
do_check_true(addon_postponed.isActive);
do_check_eq(addon_postponed.type, "extension");
// add-on will not allow upgrade until message is received
+ yield extension.awaitMessage("truly ready");
extension.sendMessage("allow");
yield extension.awaitFinish("allowed");
// addon upgrade has been allowed
let [addon_allowed] = yield promiseInstalled;
yield promiseWebExtensionStartup();
do_check_neq(addon_allowed, null);