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:48:28 -0400
changeset 13506 97dd0c4aadee02c20f8b22ccfef66442d1bc5e83
parent 13505 40b0e18f5f7e18d44bb44f313e92a364be0daf0b
child 13507 18f28032dc592638620319ae93d92a4429a9bab8
push idunknown
push userunknown
push dateunknown
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"];