Bug 556721 - cleanup test_browserGlue_migrate.js
authorMarco Bonardo <mbonardo@mozilla.com>
Tue, 12 Apr 2011 16:31:49 +0200
changeset 68473 2b7578c84821836e6ebafecf0a1555741352da40
parent 67863 832de5e41bd2f7a99038df4d9eb902f86c68d6bb
child 68474 68571c323401a551fc02a16d46e57c618c30f036
push id76
push userbzbarsky@mozilla.com
push dateTue, 05 Jul 2011 17:00:57 +0000
treeherdermozilla-beta@d3a2732c35f1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs556721
milestone2.2a1pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 556721 - cleanup test_browserGlue_migrate.js r=sdwilsh
browser/components/places/tests/unit/test_browserGlue_migrate.js
--- a/browser/components/places/tests/unit/test_browserGlue_migrate.js
+++ b/browser/components/places/tests/unit/test_browserGlue_migrate.js
@@ -1,121 +1,86 @@
-/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* vim:set ts=2 sw=2 sts=2 et: */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Places Unit Test code.
- *
- * The Initial Developer of the Original Code is Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2009
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *  Marco Bonardo <mak77@bonardo.net>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
 
 /**
  * Tests that nsBrowserGlue does not overwrite bookmarks imported from the
  * migrators.  They usually run before nsBrowserGlue, so if we find any
  * bookmark on init, we should not try to import.
  */
 
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-XPCOMUtils.defineLazyServiceGetter(this, "bs",
-                                   "@mozilla.org/browser/nav-bookmarks-service;1",
-                                   "nsINavBookmarksService");
-XPCOMUtils.defineLazyServiceGetter(this, "anno",
-                                   "@mozilla.org/browser/annotation-service;1",
-                                   "nsIAnnotationService");
-
-let bookmarksObserver = {
-  onBeginUpdateBatch: function() {},
-  onEndUpdateBatch: function() {
-    let itemId = bs.getIdForItemAt(bs.toolbarFolder, 0);
-    do_check_neq(itemId, -1);
-    if (anno.itemHasAnnotation(itemId, "Places/SmartBookmark"))
-      continue_test();
-  },
-  onItemAdded: function() {},
-  onBeforeItemRemoved: function(id) {},
-  onItemRemoved: function(id, folder, index, itemType) {},
-  onItemChanged: function() {},
-  onItemVisited: function(id, visitID, time) {},
-  onItemMoved: function() {},
-  QueryInterface: XPCOMUtils.generateQI([Ci.nsINavBookmarkObserver])
-};
-
 const PREF_SMART_BOOKMARKS_VERSION = "browser.places.smartBookmarksVersion";
 
 function run_test() {
   do_test_pending();
 
   // Create our bookmarks.html copying bookmarks.glue.html to the profile
-  // folder.  It will be ignored.
+  // folder.  It should be ignored.
   create_bookmarks_html("bookmarks.glue.html");
 
   // Remove current database file.
   let db = gProfD.clone();
   db.append("places.sqlite");
   if (db.exists()) {
     db.remove(false);
     do_check_false(db.exists());
   }
 
-  // Initialize Places through the History Service.
-  let hs = Cc["@mozilla.org/browser/nav-history-service;1"].
-           getService(Ci.nsINavHistoryService);
-  // Check a new database has been created.
-  // nsBrowserGlue uses databaseStatus to manage initialization.
-  do_check_eq(hs.databaseStatus, hs.DATABASE_STATUS_CREATE);
+  // Initialize Places through the History Service and check that a new
+  // database has been created.
+  do_check_eq(PlacesUtils.history.databaseStatus,
+              PlacesUtils.history.DATABASE_STATUS_CREATE);
 
   // A migrator would run before nsBrowserGlue, so we mimic that behavior
   // adding a bookmark.
-  bs.insertBookmark(bs.bookmarksMenuFolder, uri("http://mozilla.org/"),
-                    bs.DEFAULT_INDEX, "migrated");
+  PlacesUtils.bookmarks.insertBookmark(PlacesUtils.bookmarks.bookmarksMenuFolder, uri("http://mozilla.org/"),
+                    PlacesUtils.bookmarks.DEFAULT_INDEX, "migrated");
 
   // Initialize nsBrowserGlue.
   let bg = Cc["@mozilla.org/browser/browserglue;1"].
            getService(Ci.nsIBrowserGlue);
 
+  let bookmarksObserver = {
+    onBeginUpdateBatch: function() {},
+    onEndUpdateBatch: function() {
+      // Check if the currently finished batch created the smart bookmarks.
+      let itemId =
+        PlacesUtils.bookmarks.getIdForItemAt(PlacesUtils.toolbarFolderId, 0);
+      do_check_neq(itemId, -1);
+      if (PlacesUtils.annotations
+                     .itemHasAnnotation(itemId, "Places/SmartBookmark")) {
+        do_execute_soon(onSmartBookmarksCreation);
+      }
+    },
+    onItemAdded: function() {},
+    onBeforeItemRemoved: function(id) {},
+    onItemRemoved: function(id, folder, index, itemType) {},
+    onItemChanged: function() {},
+    onItemVisited: function(id, visitID, time) {},
+    onItemMoved: function() {},
+    QueryInterface: XPCOMUtils.generateQI([Ci.nsINavBookmarkObserver])
+  };
   // The test will continue once import has finished and smart bookmarks
   // have been created.
-  bs.addObserver(bookmarksObserver, false);
+  PlacesUtils.bookmarks.addObserver(bookmarksObserver, false);
 }
 
-function continue_test() {
+function onSmartBookmarksCreation() {
   // Check the created bookmarks still exist.
-  let itemId = bs.getIdForItemAt(bs.bookmarksMenuFolder, SMART_BOOKMARKS_ON_MENU);
-  do_check_eq(bs.getItemTitle(itemId), "migrated");
+  let itemId =
+    PlacesUtils.bookmarks.getIdForItemAt(PlacesUtils.bookmarksMenuFolderId,
+                                         SMART_BOOKMARKS_ON_MENU);
+  do_check_eq(PlacesUtils.bookmarks.getItemTitle(itemId), "migrated");
 
   // Check that we have not imported any new bookmark.
-  do_check_eq(bs.getIdForItemAt(bs.bookmarksMenuFolder, SMART_BOOKMARKS_ON_MENU + 1), -1);
-  do_check_eq(bs.getIdForItemAt(bs.toolbarFolder, SMART_BOOKMARKS_ON_MENU), -1);
+  itemId =
+    PlacesUtils.bookmarks.getIdForItemAt(PlacesUtils.bookmarksMenuFolderId,
+                                         SMART_BOOKMARKS_ON_MENU + 1)
+  do_check_eq(itemId, -1);
+  itemId =
+    PlacesUtils.bookmarks.getIdForItemAt(PlacesUtils.toolbarFolderId,
+                                         SMART_BOOKMARKS_ON_MENU)
+  do_check_eq(itemId, -1);
 
   remove_bookmarks_html();
 
   do_test_finished();
 }