gecko/toolkit/components/places/tests/unit/test_PlacesUtils_lazyobservers.js

49 lines
1.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
function run_test() {
do_test_pending();
const TEST_URI = NetUtil.newURI("http://moz.org/")
let observer = {
QueryInterface: XPCOMUtils.generateQI([
Ci.nsINavBookmarkObserver,
]),
onBeginUpdateBatch: function () {},
onEndUpdateBatch: function () {},
onItemAdded: function (aItemId, aParentId, aIndex, aItemType, aURI) {
do_check_true(aURI.equals(TEST_URI));
PlacesUtils.removeLazyBookmarkObserver(this);
do_test_finished();
},
onBeforeItemRemoved: function () {},
onItemRemoved: function () {},
onItemChanged: function () {},
onItemVisited: function () {},
onItemMoved: function () {},
};
// Check registration and removal with uninitialized bookmarks service.
PlacesUtils.addLazyBookmarkObserver(observer);
PlacesUtils.removeLazyBookmarkObserver(observer);
// Add a proper lazy observer we will test.
PlacesUtils.addLazyBookmarkObserver(observer);
// Check that we don't leak when adding and removing an observer while the
// bookmarks service is instantiated but no change happened (bug 721319).
PlacesUtils.bookmarks;
PlacesUtils.addLazyBookmarkObserver(observer);
PlacesUtils.removeLazyBookmarkObserver(observer);
try {
PlacesUtils.bookmarks.removeObserver(observer);
do_throw("Trying to remove a nonexisting observer should throw!");
} catch (ex) {}
PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
TEST_URI,
PlacesUtils.bookmarks.DEFAULT_INDEX,
"Bookmark title");
}