1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/* 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() {
// Create our bookmarks.html from bookmarks.glue.html.
create_bookmarks_html("bookmarks.glue.html");
// Remove current database file.
clearDB();
run_next_test();
}
do_register_cleanup(remove_bookmarks_html);
add_task(function* test_migrate_bookmarks() {
// Initialize Places through the History Service and check that a new
// database has been created.
Assert.equal(PlacesUtils.history.databaseStatus,
PlacesUtils.history.DATABASE_STATUS_CREATE);
// A migrator would run before nsBrowserGlue Places initialization, so mimic
// that behavior adding a bookmark and notifying the migration.
let bg = Cc["@mozilla.org/browser/browserglue;1"].getService(Ci.nsIObserver);
bg.observe(null, "initial-migration-will-import-default-bookmarks", null);
yield PlacesUtils.bookmarks.insert({
parentGuid: PlacesUtils.bookmarks.menuGuid,
index: PlacesUtils.bookmarks.DEFAULT_INDEX,
type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
url: "http://mozilla.org/",
title: "migrated"
});
let promise = promiseTopicObserved("places-browser-init-complete");
bg.observe(null, "initial-migration-did-import-default-bookmarks", null);
yield promise;
let bm = yield PlacesUtils.bookmarks.fetch({
parentGuid: PlacesUtils.bookmarks.toolbarGuid,
index: 0
});
yield checkItemHasAnnotation(bm.guid, SMART_BOOKMARKS_ANNO);
// Check the created bookmark still exists.
bm = yield PlacesUtils.bookmarks.fetch({
parentGuid: PlacesUtils.bookmarks.menuGuid,
index: SMART_BOOKMARKS_ON_MENU
});
Assert.equal(bm.title, "migrated");
// Check that we have not imported any new bookmark.
Assert.ok(!(yield PlacesUtils.bookmarks.fetch({
parentGuid: PlacesUtils.bookmarks.menuGuid,
index: SMART_BOOKMARKS_ON_MENU + 1
})));
Assert.ok(!(yield PlacesUtils.bookmarks.fetch({
parentGuid: PlacesUtils.bookmarks.toolbarGuid,
index: SMART_BOOKMARKS_ON_MENU
})));
});
|