1
var bm = require("../shared-modules/bookmarks");
3
const LOCAL_TEST_FOLDER = collector.addHttpResource('../test-files/');
4
const LOCAL_TEST_PAGE = LOCAL_TEST_FOLDER + 'test.html';
6
var setupModule = function(module) {
7
module.controller = mozmill.getBrowserController();
10
module.fake_synchroniser = {
11
guid_from_id: function (item_id) {
15
module.observer = null;
16
Cu.import("resource://mozmill/modules/jum.js", module.jum);
17
Cu.import("resource://bindwood/sync.jsm", module.sync);
21
var setupTest = function(test) {
22
observer = new sync.BookmarksObserver(fake_synchroniser);
23
bm.bookmarksService.addObserver(observer, false);
26
var teardownTest = function(test) {
27
bm.bookmarksService.removeObserver(observer);
31
var testQueryInterface = function() {
33
observer.QueryInterface(Ci.nsISupports), observer);
35
observer.QueryInterface(Ci.nsINavBookmarkObserver), observer);
36
if (Ci.nsINavBookmarkObserver_MOZILLA_1_9_1_ADDITIONS) {
38
observer.QueryInterface(Ci.nsINavBookmarkObserver_MOZILLA_1_9_1_ADDITIONS), observer);
42
var assertChanged = function (item_id) {
43
var guid = fake_synchroniser.guid_from_id(item_id);
44
return observer.changed_guids[guid] != null;
47
var assertNotChanged = function (item_id) {
48
var guid = fake_synchroniser.guid_from_id(item_id);
49
return observer.changed_guids[guid] == null;
52
var testClearChanges = function() {
54
observer.record_change(dummy_id);
55
assertChanged(dummy_id);
56
observer.clear_changes(dummy_id);
57
assertNotChanged(dummy_id);
60
var testAddBookmark = function() {
61
var uri = bm.createURI(LOCAL_TEST_PAGE);
62
var bookmark_id = bm.bookmarksService.insertBookmark(
63
bm.bookmarksService.toolbarFolder,
65
bm.bookmarksService.DEFAULT_INDEX,
67
assertChanged(bookmark_id);
68
assertChanged(bm.bookmarksService.toolbarFolder);
71
var testRemoveBookmark = function() {
72
var uri = bm.createURI(LOCAL_TEST_PAGE);
73
var bookmark_id = bm.bookmarksService.insertBookmark(
74
bm.bookmarksService.toolbarFolder,
76
bm.bookmarksService.DEFAULT_INDEX,
78
observer.clear_changes();
80
bm.bookmarksService.removeItem(bookmark_id);
81
assertChanged(bookmark_id);
82
assertChanged(bm.bookmarksService.toolbarFolder);
85
var testMoveBookmarkSameFolder = function() {
86
var uri1 = bm.createURI(LOCAL_TEST_PAGE + "#one");
87
var uri2 = bm.createURI(LOCAL_TEST_PAGE + "#two");
88
var folder_id = bm.bookmarksService.createFolder(
89
bm.bookmarksService.toolbarFolder,
90
"Folder", bm.bookmarksService.DEFAULT_INDEX);
91
var bookmark1_id = bm.bookmarksService.insertBookmark(
92
folder_id, uri1, bm.bookmarksService.DEFAULT_INDEX,
94
var bookmark2_id = bm.bookmarksService.insertBookmark(
95
folder_id, uri2, bm.bookmarksService.DEFAULT_INDEX,
97
observer.clear_changes();
99
// If we move a bookmark within the same folder (i.e. no parent
100
// change), then only the parent folder has changed.
101
bm.bookmarksService.moveItem(bookmark2_id, folder_id, 0);
102
assertChanged(folder_id);
103
assertNotChanged(bookmark2_id);
106
var testMoveBookmarkDifferentFolder = function() {
107
var uri = bm.createURI(LOCAL_TEST_PAGE);
108
var folder1_id = bm.bookmarksService.createFolder(
109
bm.bookmarksService.toolbarFolder,
110
"Folder 1", bm.bookmarksService.DEFAULT_INDEX);
111
var folder2_id = bm.bookmarksService.createFolder(
112
bm.bookmarksService.toolbarFolder,
113
"Folder 2", bm.bookmarksService.DEFAULT_INDEX);
114
var bookmark_id = bm.bookmarksService.insertBookmark(
115
folder1_id, uri, bm.bookmarksService.DEFAULT_INDEX,
117
observer.clear_changes();
119
bm.bookmarksService.moveItem(
120
bookmark_id, folder2_id, bm.bookmarksService.DEFAULT_INDEX);
121
// The item is changed because it has a new parent. The two
122
// folders have changed because their child lists have changed.
123
assertChanged(bookmark_id);
124
assertChanged(folder1_id);
125
assertChanged(folder2_id);