browser/components/places/tests/unit/test_browserGlue_migrate.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 /**
     5  * Tests that nsBrowserGlue does not overwrite bookmarks imported from the
     6  * migrators.  They usually run before nsBrowserGlue, so if we find any
     7  * bookmark on init, we should not try to import.
     8  */
    10 const PREF_SMART_BOOKMARKS_VERSION = "browser.places.smartBookmarksVersion";
    12 function run_test() {
    13   do_test_pending();
    15   // Create our bookmarks.html copying bookmarks.glue.html to the profile
    16   // folder.  It should be ignored.
    17   create_bookmarks_html("bookmarks.glue.html");
    19   // Remove current database file.
    20   let db = gProfD.clone();
    21   db.append("places.sqlite");
    22   if (db.exists()) {
    23     db.remove(false);
    24     do_check_false(db.exists());
    25   }
    27   // Initialize Places through the History Service and check that a new
    28   // database has been created.
    29   do_check_eq(PlacesUtils.history.databaseStatus,
    30               PlacesUtils.history.DATABASE_STATUS_CREATE);
    32   // A migrator would run before nsBrowserGlue Places initialization, so mimic
    33   // that behavior adding a bookmark and notifying the migration.
    34   let bg = Cc["@mozilla.org/browser/browserglue;1"].
    35            getService(Ci.nsIObserver);
    37   bg.observe(null, "initial-migration-will-import-default-bookmarks", null);
    39   PlacesUtils.bookmarks.insertBookmark(PlacesUtils.bookmarks.bookmarksMenuFolder, uri("http://mozilla.org/"),
    40                     PlacesUtils.bookmarks.DEFAULT_INDEX, "migrated");
    42   let bookmarksObserver = {
    43     onBeginUpdateBatch: function() {},
    44     onEndUpdateBatch: function() {
    45       // Check if the currently finished batch created the smart bookmarks.
    46       let itemId =
    47         PlacesUtils.bookmarks.getIdForItemAt(PlacesUtils.toolbarFolderId, 0);
    48       do_check_neq(itemId, -1);
    49       if (PlacesUtils.annotations
    50                      .itemHasAnnotation(itemId, "Places/SmartBookmark")) {
    51         do_execute_soon(onSmartBookmarksCreation);
    52       }
    53     },
    54     onItemAdded: function() {},
    55     onItemRemoved: function(id, folder, index, itemType) {},
    56     onItemChanged: function() {},
    57     onItemVisited: function(id, visitID, time) {},
    58     onItemMoved: function() {},
    59     QueryInterface: XPCOMUtils.generateQI([Ci.nsINavBookmarkObserver])
    60   };
    61   // The test will continue once import has finished and smart bookmarks
    62   // have been created.
    63   PlacesUtils.bookmarks.addObserver(bookmarksObserver, false);
    65   bg.observe(null, "initial-migration-did-import-default-bookmarks", null);
    66 }
    68 function onSmartBookmarksCreation() {
    69   // Check the created bookmarks still exist.
    70   let itemId =
    71     PlacesUtils.bookmarks.getIdForItemAt(PlacesUtils.bookmarksMenuFolderId,
    72                                          SMART_BOOKMARKS_ON_MENU);
    73   do_check_eq(PlacesUtils.bookmarks.getItemTitle(itemId), "migrated");
    75   // Check that we have not imported any new bookmark.
    76   itemId =
    77     PlacesUtils.bookmarks.getIdForItemAt(PlacesUtils.bookmarksMenuFolderId,
    78                                          SMART_BOOKMARKS_ON_MENU + 1)
    79   do_check_eq(itemId, -1);
    80   itemId =
    81     PlacesUtils.bookmarks.getIdForItemAt(PlacesUtils.toolbarFolderId,
    82                                          SMART_BOOKMARKS_ON_MENU)
    83   do_check_eq(itemId, -1);
    85   remove_bookmarks_html();
    87   do_test_finished();
    88 }

mercurial