mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
e5ba4b039e
r=sdwilsh
87 lines
3.1 KiB
JavaScript
87 lines
3.1 KiB
JavaScript
/* 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.
|
|
*/
|
|
|
|
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 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 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.
|
|
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.
|
|
PlacesUtils.bookmarks.addObserver(bookmarksObserver, false);
|
|
}
|
|
|
|
function onSmartBookmarksCreation() {
|
|
// Check the created bookmarks still exist.
|
|
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.
|
|
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();
|
|
}
|