Bug 1337975 - Fix intermittent tabs.create test_urlbar_focus draft 1337975-focus-itmtnt
authorTomislav Jovanovic <tomica@gmail.com>
Thu, 02 Mar 2017 22:39:06 +0100
branch1337975-focus-itmtnt
changeset 492247 885f45cf96a0747e436d9aa8425dd26a0523d8ab
parent 491167 ec8ac10801d6c054a3e74f89fd1857c0bdac638b
child 724646 dee02729c59f995641978900b5f3f80c6ef2b20e
push id47570
push userbmo:tomica@gmail.com
push dateThu, 02 Mar 2017 23:08:29 +0000
bugs1337975
milestone54.0a1
Bug 1337975 - Fix intermittent tabs.create test_urlbar_focus MozReview-Commit-ID: J16ztP81Zov
browser/components/extensions/test/browser/browser_ext_tabs_create.js
--- a/browser/components/extensions/test/browser/browser_ext_tabs_create.js
+++ b/browser/components/extensions/test/browser/browser_ext_tabs_create.js
@@ -162,28 +162,37 @@ add_task(function* test_create_options()
   yield extension.unload();
 
   yield BrowserTestUtils.removeTab(tab);
 });
 
 add_task(function* test_urlbar_focus() {
   const extension = ExtensionTestUtils.loadExtension({
     background() {
+      browser.tabs.onUpdated.addListener(function onUpdated(_, info) {
+        if (info.status === "complete") {
+          browser.test.sendMessage("complete");
+          browser.tabs.onUpdated.removeListener(onUpdated);
+        }
+      });
       browser.test.onMessage.addListener(async (cmd, ...args) => {
         const result = await browser.tabs[cmd](...args);
         browser.test.sendMessage("result", result);
       });
     },
   });
 
   yield extension.startup();
 
   // Test content is focused after opening a regular url
   extension.sendMessage("create", {url: "https://example.com"});
-  const tab1 = yield extension.awaitMessage("result");
+  const [tab1] = yield Promise.all([
+    extension.awaitMessage("result"),
+    extension.awaitMessage("complete"),
+  ]);
 
   is(document.activeElement.tagName, "browser", "Content focused after opening a web page");
 
   extension.sendMessage("remove", tab1.id);
   yield extension.awaitMessage("result");
 
   // Test urlbar is focused after opening an empty tab
   extension.sendMessage("create", {});