Bug 802575 - Follow-up - make menubar tests wait for mail startup to complete. r+a=Standard8
authorMike Conley <mconley@mozilla.com>
Wed, 24 Oct 2012 13:46:50 -0400
changeset 12511 994992a767aaea5f6aab838bfdcafcd24bdcb316
parent 12510 5172c9cf64176c9ce2731d85aef1d16ed40da4aa
child 12512 6726e97a0d3c7da738a6b5b4407a6001957230bc
push id756
push usermconley@mozilla.com
push dateWed, 24 Oct 2012 17:47:08 +0000
treeherdercomm-aurora@994992a767aa [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs802575
Bug 802575 - Follow-up - make menubar tests wait for mail startup to complete. r+a=Standard8
mail/test/mozmill/override-main-menu-collapse/test-override-mainmenu-collapse.js
mail/test/mozmill/startup-firstrun/test-menubar-collapsed.js
--- a/mail/test/mozmill/override-main-menu-collapse/test-override-mainmenu-collapse.js
+++ b/mail/test/mozmill/override-main-menu-collapse/test-override-mainmenu-collapse.js
@@ -5,20 +5,47 @@
 /**
  * Tests that the main menu will NOT be collapsed by default if Thunderbird
  * starts with no accounts created, and mail.main_menu.collapse_by_default set
  * to false.
  */
 
 let MODULE_NAME = "test-override-main-menu-collapse";
 let RELATIVE_ROOT = "../shared-modules";
-let MODULE_REQUIRES = ["folder-display-helpers"];
+let MODULE_REQUIRES = ["folder-display-helpers",
+                       "window-helpers"];
+
+Cu.import("resource://gre/modules/Services.jsm");
 
 function setupModule(module) {
   collector.getModule("folder-display-helpers").installInto(module);
+  collector.getModule("window-helpers").installInto(module);
 }
 
 function test_main_menu_not_collapsed() {
+  // Due to random oranges on slower machines, we need to ensure that startup
+  // is complete before running this test.
+  let done = false;
+  let observer = {
+    observe: function(aSubject, aTopic, aData) {
+      if (aTopic == "mail-startup-done") {
+        done = true;
+      }
+    }
+  };
+  Services.obs.addObserver(observer, "mail-startup-done", false);
+
+  // Since no accounts were set up, and the account provisoner was disabled
+  // in prefs.js, the wizard will show up. Find it, and close it. This will
+  // cause mail-startup-done to eventually be fired.
+  let wizard = wait_for_existing_window("mail:autoconfig");
+  close_window(wizard);
+
+  // Spin the event loop until mail-startup-done is fired.
+  mc.waitFor(function () done);
+
   let mainMenu = mc.e("mail-toolbar-menubar2");
   assert_false(mainMenu.hasAttribute("autohide"),
                "The main menu should not have the autohide attribute.");
+
+  Services.obs.removeObserver(observer, "mail-startup-done");
 }
 test_main_menu_not_collapsed.EXCLUDED_PLATFORMS = ["Darwin"];
--- a/mail/test/mozmill/startup-firstrun/test-menubar-collapsed.js
+++ b/mail/test/mozmill/startup-firstrun/test-menubar-collapsed.js
@@ -4,20 +4,45 @@
 
 /**
  * Tests that the main menu will be collapsed by default if Thunderbird starts
  * with no accounts created.
  */
 
 let MODULE_NAME = "test-main-menu-collapsed";
 let RELATIVE_ROOT = "../shared-modules";
-let MODULE_REQUIRES = ["folder-display-helpers"];
+let MODULE_REQUIRES = ["folder-display-helpers",
+                       "window-helpers"];
 
 function setupModule(module) {
   collector.getModule("folder-display-helpers").installInto(module);
+  collector.getModule("window-helpers").installInto(module);
 }
 
 function test_main_menu_collapsed() {
+  // Due to random oranges on slower machines, we need to ensure that startup
+  // is complete before running this test.
+  let done = false;
+  let observer = {
+    observe: function(aSubject, aTopic, aData) {
+      if (aTopic == "mail-startup-done") {
+        done = true;
+      }
+    }
+  };
+  Services.obs.addObserver(observer, "mail-startup-done", false);
+
+  // Since no accounts were set up, and the account provisoner was disabled
+  // in prefs.js, the wizard will show up. Find it, and close it. This will
+  // cause mail-startup-done to eventually be fired.
+  let wizard = wait_for_existing_window("mail:autoconfig");
+  close_window(wizard);
+
+  // Spin the event loop until mail-startup-done is fired.
+  mc.waitFor(function () done);
+
   let mainMenu = mc.e("mail-toolbar-menubar2");
   assert_equals(mainMenu.getAttribute("autohide"), "true",
                 "The main menu should have the autohide attribute set to true.");
+
+  Services.obs.removeObserver(observer, "mail-startup-done");
 }
 test_main_menu_collapsed.EXCLUDED_PLATFORMS = ["Darwin"];