Bug 1287007 - Fix timing issue in test_ext_storage.js
MozReview-Commit-ID: 63Ra7ThuHuf
--- a/toolkit/components/extensions/test/mochitest/test_ext_storage_content.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_storage_content.html
@@ -111,17 +111,21 @@ function contentScript() {
browser.test.assertFalse("test-prop1" in data, "prop1 absent");
browser.test.assertFalse("test-prop2" in data, "prop2 absent");
// Test cache invalidation.
}).then(() => {
return storage.set({"test-prop1": "value1", "test-prop2": "value2"});
}).then(() => {
globalChanges = {};
- browser.test.sendMessage("invalidate");
+ // Schedule sendMessage after onMessage because the other end immediately
+ // sends a message.
+ Promise.resolve().then(() => {
+ browser.test.sendMessage("invalidate");
+ });
return new Promise(resolve => browser.test.onMessage.addListener(resolve));
}).then(() => {
return check("test-prop1", "value1");
}).then(() => {
return check("test-prop2", "value2");
// Make sure we can store complex JSON data.
}).then(() => {
--- a/toolkit/components/extensions/test/xpcshell/test_ext_storage.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_storage.js
@@ -97,17 +97,21 @@ function backgroundScript() {
browser.test.assertFalse("test-prop1" in data, "prop1 absent");
browser.test.assertFalse("test-prop2" in data, "prop2 absent");
// Test cache invalidation.
}).then(() => {
return storage.set({"test-prop1": "value1", "test-prop2": "value2"});
}).then(() => {
globalChanges = {};
- browser.test.sendMessage("invalidate");
+ // Schedule sendMessage after onMessage because the other end immediately
+ // sends a message.
+ Promise.resolve().then(() => {
+ browser.test.sendMessage("invalidate");
+ });
return new Promise(resolve => browser.test.onMessage.addListener(resolve));
}).then(() => {
return check("test-prop1", "value1");
}).then(() => {
return check("test-prop2", "value2");
// Make sure we can store complex JSON data.
}).then(() => {