Bug 1473640 - Update wait condition for Activity Stream mochitest to avoid Linux failure. draft
authorAndrei Oprea <andrei.br92@gmail.com>
Fri, 06 Jul 2018 11:57:01 +0200
changeset 815568 3a9210bb12153aa4c53339e3d3c3d52f46066505
parent 815516 ffb7b5015fc331bdc4c5e6ab52b9de669faa8864
push id115560
push userbmo:andrei.br92@gmail.com
push dateMon, 09 Jul 2018 12:05:44 +0000
bugs1473640
milestone63.0a1
Bug 1473640 - Update wait condition for Activity Stream mochitest to avoid Linux failure. MozReview-Commit-ID: Dw4M16ikY6r
browser/components/preferences/in-content/tests/browser_hometab_restore_defaults.js
--- a/browser/components/preferences/in-content/tests/browser_hometab_restore_defaults.js
+++ b/browser/components/preferences/in-content/tests/browser_hometab_restore_defaults.js
@@ -1,9 +1,9 @@
-add_task(async function testRestoreDefaultsBtn() {
+add_task(async function testRestoreDefaultsBtn_visible() {
   const before = SpecialPowers.Services.prefs.getStringPref("browser.newtabpage.activity-stream.feeds.section.topstories.options", "");
 
   await SpecialPowers.pushPrefEnv({set: [
     // Hide Pocket pref so we don't trigger network requests when we reset all preferences
     ["browser.newtabpage.activity-stream.feeds.section.topstories.options", JSON.stringify(Object.assign({}, JSON.parse(before), {hidden: true}))],
     // Set a user pref to false to force the Restore Defaults button to be visible
     ["browser.newtabpage.activity-stream.feeds.topsites", false]
   ]});
@@ -35,28 +35,32 @@ add_task(async function testRestoreDefau
 
   const topsitesPref = await SpecialPowers.Services.prefs.getBoolPref("browser.newtabpage.activity-stream.feeds.topsites");
   Assert.ok(topsitesPref, "Topsites pref should have the default value");
 
   await SpecialPowers.popPrefEnv();
   BrowserTestUtils.removeTab(tab);
 });
 
-add_task(async function testRestoreDefaultsBtn() {
+add_task(async function testRestoreDefaultsBtn_hidden() {
   const before = SpecialPowers.Services.prefs.getStringPref("browser.newtabpage.activity-stream.feeds.section.topstories.options", "");
 
   await SpecialPowers.pushPrefEnv({set: [
     // Hide Pocket pref so we don't trigger network requests when we reset all preferences
     ["browser.newtabpage.activity-stream.feeds.section.topstories.options", JSON.stringify(Object.assign({}, JSON.parse(before), {hidden: true}))],
   ]});
 
   let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "about:preferences#home", false);
   let browser = tab.linkedBrowser;
 
   await BrowserTestUtils.waitForCondition(() => ContentTask.spawn(browser, {},
+    () => content.document.getElementById("restoreDefaultHomePageBtn") !== null),
+    "Wait for the button to be added to the page");
+
+  await BrowserTestUtils.waitForCondition(() => ContentTask.spawn(browser, {},
     () => content.document.querySelector("[data-subcategory='topsites'] checkbox") !== null),
     "Wait for the preference checkbox to load");
 
   const btnDefault = await ContentTask.spawn(browser, {}, () => content.document.getElementById("restoreDefaultHomePageBtn").style.visibility);
   Assert.equal(btnDefault, "hidden", "When no prefs are changed button should not show up");
 
   await BrowserTestUtils.waitForCondition(() => ContentTask.spawn(browser, {},
     () => content.document.querySelector("[data-subcategory='topsites'] checkbox").checked),