diff options
Diffstat (limited to 'toolkit/components/places/tests/bookmarks/test_bookmarks_notifications.js')
-rw-r--r-- | toolkit/components/places/tests/bookmarks/test_bookmarks_notifications.js | 527 |
1 files changed, 0 insertions, 527 deletions
diff --git a/toolkit/components/places/tests/bookmarks/test_bookmarks_notifications.js b/toolkit/components/places/tests/bookmarks/test_bookmarks_notifications.js deleted file mode 100644 index 02787425d..000000000 --- a/toolkit/components/places/tests/bookmarks/test_bookmarks_notifications.js +++ /dev/null @@ -1,527 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -add_task(function* insert_separator_notification() { - let observer = expectNotifications(); - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_SEPARATOR, - parentGuid: PlacesUtils.bookmarks.unfiledGuid}); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - observer.check([ { name: "onItemAdded", - arguments: [ itemId, parentId, bm.index, bm.type, - null, null, bm.dateAdded, - bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* insert_folder_notification() { - let observer = expectNotifications(); - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - title: "a folder" }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - observer.check([ { name: "onItemAdded", - arguments: [ itemId, parentId, bm.index, bm.type, - null, bm.title, bm.dateAdded, - bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* insert_folder_notitle_notification() { - let observer = expectNotifications(); - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - observer.check([ { name: "onItemAdded", - arguments: [ itemId, parentId, bm.index, bm.type, - null, null, bm.dateAdded, - bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* insert_bookmark_notification() { - let observer = expectNotifications(); - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://example.com/"), - title: "a bookmark" }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - observer.check([ { name: "onItemAdded", - arguments: [ itemId, parentId, bm.index, bm.type, - bm.url, bm.title, bm.dateAdded, - bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* insert_bookmark_notitle_notification() { - let observer = expectNotifications(); - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://example.com/") }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - observer.check([ { name: "onItemAdded", - arguments: [ itemId, parentId, bm.index, bm.type, - bm.url, null, bm.dateAdded, - bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* insert_bookmark_tag_notification() { - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://tag.example.com/") }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - let tagFolder = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.tagsGuid, - title: "tag" }); - let observer = expectNotifications(); - let tag = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: tagFolder.guid, - url: new URL("http://tag.example.com/") }); - let tagId = yield PlacesUtils.promiseItemId(tag.guid); - let tagParentId = yield PlacesUtils.promiseItemId(tag.parentGuid); - - observer.check([ { name: "onItemAdded", - arguments: [ tagId, tagParentId, tag.index, tag.type, - tag.url, null, tag.dateAdded, - tag.guid, tag.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemChanged", - arguments: [ itemId, "tags", false, "", - bm.lastModified, bm.type, parentId, - bm.guid, bm.parentGuid, "", - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* update_bookmark_lastModified() { - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://lastmod.example.com/") }); - let observer = expectNotifications(); - bm = yield PlacesUtils.bookmarks.update({ guid: bm.guid, - lastModified: new Date() }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - observer.check([ { name: "onItemChanged", - arguments: [ itemId, "lastModified", false, - `${bm.lastModified * 1000}`, bm.lastModified, - bm.type, parentId, bm.guid, bm.parentGuid, "", - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* update_bookmark_title() { - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://title.example.com/") }); - let observer = expectNotifications(); - bm = yield PlacesUtils.bookmarks.update({ guid: bm.guid, - title: "new title" }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - observer.check([ { name: "onItemChanged", - arguments: [ itemId, "title", false, bm.title, - bm.lastModified, bm.type, parentId, bm.guid, - bm.parentGuid, "", Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* update_bookmark_uri() { - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://url.example.com/") }); - let observer = expectNotifications(); - bm = yield PlacesUtils.bookmarks.update({ guid: bm.guid, - url: "http://mozilla.org/" }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - observer.check([ { name: "onItemChanged", - arguments: [ itemId, "uri", false, bm.url.href, - bm.lastModified, bm.type, parentId, bm.guid, - bm.parentGuid, "http://url.example.com/", - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* update_move_same_folder() { - // Ensure there are at least two items in place (others test do so for us, - // but we don't have to depend on that). - yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_SEPARATOR, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://move.example.com/") }); - let bmItemId = yield PlacesUtils.promiseItemId(bm.guid); - let bmParentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - let bmOldIndex = bm.index; - - let observer = expectNotifications(); - bm = yield PlacesUtils.bookmarks.update({ guid: bm.guid, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - index: 0 }); - Assert.equal(bm.index, 0); - observer.check([ { name: "onItemMoved", - arguments: [ bmItemId, bmParentId, bmOldIndex, bmParentId, bm.index, - bm.type, bm.guid, bm.parentGuid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); - - // Test that we get the right index for DEFAULT_INDEX input. - bmOldIndex = 0; - observer = expectNotifications(); - bm = yield PlacesUtils.bookmarks.update({ guid: bm.guid, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - index: PlacesUtils.bookmarks.DEFAULT_INDEX }); - Assert.ok(bm.index > 0); - observer.check([ { name: "onItemMoved", - arguments: [ bmItemId, bmParentId, bmOldIndex, bmParentId, bm.index, - bm.type, bm.guid, bm.parentGuid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* update_move_different_folder() { - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://move.example.com/") }); - let folder = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let bmItemId = yield PlacesUtils.promiseItemId(bm.guid); - let bmOldParentId = PlacesUtils.unfiledBookmarksFolderId; - let bmOldIndex = bm.index; - - let observer = expectNotifications(); - bm = yield PlacesUtils.bookmarks.update({ guid: bm.guid, - parentGuid: folder.guid, - index: PlacesUtils.bookmarks.DEFAULT_INDEX }); - Assert.equal(bm.index, 0); - let bmNewParentId = yield PlacesUtils.promiseItemId(folder.guid); - observer.check([ { name: "onItemMoved", - arguments: [ bmItemId, bmOldParentId, bmOldIndex, bmNewParentId, - bm.index, bm.type, bm.guid, - PlacesUtils.bookmarks.unfiledGuid, - bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* remove_bookmark() { - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://remove.example.com/") }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - let observer = expectNotifications(); - bm = yield PlacesUtils.bookmarks.remove(bm.guid); - // TODO (Bug 653910): onItemAnnotationRemoved notified even if there were no - // annotations. - observer.check([ { name: "onItemRemoved", - arguments: [ itemId, parentId, bm.index, bm.type, bm.url, - bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* remove_folder() { - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - let observer = expectNotifications(); - bm = yield PlacesUtils.bookmarks.remove(bm.guid); - observer.check([ { name: "onItemRemoved", - arguments: [ itemId, parentId, bm.index, bm.type, null, - bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* remove_bookmark_tag_notification() { - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.unfiledGuid, - url: new URL("http://untag.example.com/") }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - let tagFolder = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.tagsGuid, - title: "tag" }); - let tag = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: tagFolder.guid, - url: new URL("http://untag.example.com/") }); - let tagId = yield PlacesUtils.promiseItemId(tag.guid); - let tagParentId = yield PlacesUtils.promiseItemId(tag.parentGuid); - - let observer = expectNotifications(); - yield PlacesUtils.bookmarks.remove(tag.guid); - - observer.check([ { name: "onItemRemoved", - arguments: [ tagId, tagParentId, tag.index, tag.type, - tag.url, tag.guid, tag.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemChanged", - arguments: [ itemId, "tags", false, "", - bm.lastModified, bm.type, parentId, - bm.guid, bm.parentGuid, "", - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* remove_folder_notification() { - let folder1 = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let folder1Id = yield PlacesUtils.promiseItemId(folder1.guid); - let folder1ParentId = yield PlacesUtils.promiseItemId(folder1.parentGuid); - - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: folder1.guid, - url: new URL("http://example.com/") }); - let bmItemId = yield PlacesUtils.promiseItemId(bm.guid); - - let folder2 = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: folder1.guid }); - let folder2Id = yield PlacesUtils.promiseItemId(folder2.guid); - - let bm2 = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: folder2.guid, - url: new URL("http://example.com/") }); - let bm2ItemId = yield PlacesUtils.promiseItemId(bm2.guid); - - let observer = expectNotifications(); - yield PlacesUtils.bookmarks.remove(folder1.guid); - - observer.check([ { name: "onItemRemoved", - arguments: [ bm2ItemId, folder2Id, bm2.index, bm2.type, - bm2.url, bm2.guid, bm2.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ folder2Id, folder1Id, folder2.index, - folder2.type, null, folder2.guid, - folder2.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ bmItemId, folder1Id, bm.index, bm.type, - bm.url, bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ folder1Id, folder1ParentId, folder1.index, - folder1.type, null, folder1.guid, - folder1.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] } - ]); -}); - -add_task(function* eraseEverything_notification() { - // Let's start from a clean situation. - yield PlacesUtils.bookmarks.eraseEverything(); - - let folder1 = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let folder1Id = yield PlacesUtils.promiseItemId(folder1.guid); - let folder1ParentId = yield PlacesUtils.promiseItemId(folder1.parentGuid); - - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: folder1.guid, - url: new URL("http://example.com/") }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - let folder2 = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let folder2Id = yield PlacesUtils.promiseItemId(folder2.guid); - let folder2ParentId = yield PlacesUtils.promiseItemId(folder2.parentGuid); - - let toolbarBm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.toolbarGuid, - url: new URL("http://example.com/") }); - let toolbarBmId = yield PlacesUtils.promiseItemId(toolbarBm.guid); - let toolbarBmParentId = yield PlacesUtils.promiseItemId(toolbarBm.parentGuid); - - let menuBm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: PlacesUtils.bookmarks.menuGuid, - url: new URL("http://example.com/") }); - let menuBmId = yield PlacesUtils.promiseItemId(menuBm.guid); - let menuBmParentId = yield PlacesUtils.promiseItemId(menuBm.parentGuid); - - let observer = expectNotifications(); - yield PlacesUtils.bookmarks.eraseEverything(); - - // Bookmarks should always be notified before their parents. - observer.check([ { name: "onItemRemoved", - arguments: [ itemId, parentId, bm.index, bm.type, - bm.url, bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ folder2Id, folder2ParentId, folder2.index, - folder2.type, null, folder2.guid, - folder2.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ folder1Id, folder1ParentId, folder1.index, - folder1.type, null, folder1.guid, - folder1.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ menuBmId, menuBmParentId, - menuBm.index, menuBm.type, - menuBm.url, menuBm.guid, - menuBm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ toolbarBmId, toolbarBmParentId, - toolbarBm.index, toolbarBm.type, - toolbarBm.url, toolbarBm.guid, - toolbarBm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - ]); -}); - -add_task(function* eraseEverything_reparented_notification() { - // Let's start from a clean situation. - yield PlacesUtils.bookmarks.eraseEverything(); - - let folder1 = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let folder1Id = yield PlacesUtils.promiseItemId(folder1.guid); - let folder1ParentId = yield PlacesUtils.promiseItemId(folder1.parentGuid); - - let bm = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - parentGuid: folder1.guid, - url: new URL("http://example.com/") }); - let itemId = yield PlacesUtils.promiseItemId(bm.guid); - - let folder2 = yield PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid }); - let folder2Id = yield PlacesUtils.promiseItemId(folder2.guid); - let folder2ParentId = yield PlacesUtils.promiseItemId(folder2.parentGuid); - - bm.parentGuid = folder2.guid; - bm = yield PlacesUtils.bookmarks.update(bm); - let parentId = yield PlacesUtils.promiseItemId(bm.parentGuid); - - let observer = expectNotifications(); - yield PlacesUtils.bookmarks.eraseEverything(); - - // Bookmarks should always be notified before their parents. - observer.check([ { name: "onItemRemoved", - arguments: [ itemId, parentId, bm.index, bm.type, - bm.url, bm.guid, bm.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ folder2Id, folder2ParentId, folder2.index, - folder2.type, null, folder2.guid, - folder2.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - { name: "onItemRemoved", - arguments: [ folder1Id, folder1ParentId, folder1.index, - folder1.type, null, folder1.guid, - folder1.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT ] }, - ]); -}); - -add_task(function* reorder_notification() { - let bookmarks = [ - { type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - url: "http://example1.com/", - parentGuid: PlacesUtils.bookmarks.unfiledGuid - }, - { type: PlacesUtils.bookmarks.TYPE_FOLDER, - parentGuid: PlacesUtils.bookmarks.unfiledGuid - }, - { type: PlacesUtils.bookmarks.TYPE_SEPARATOR, - parentGuid: PlacesUtils.bookmarks.unfiledGuid - }, - { type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - url: "http://example2.com/", - parentGuid: PlacesUtils.bookmarks.unfiledGuid - }, - { type: PlacesUtils.bookmarks.TYPE_BOOKMARK, - url: "http://example3.com/", - parentGuid: PlacesUtils.bookmarks.unfiledGuid - }, - ]; - let sorted = []; - for (let bm of bookmarks) { - sorted.push(yield PlacesUtils.bookmarks.insert(bm)); - } - - // Randomly reorder the array. - sorted.sort(() => 0.5 - Math.random()); - - let observer = expectNotifications(); - yield PlacesUtils.bookmarks.reorder(PlacesUtils.bookmarks.unfiledGuid, - sorted.map(bm => bm.guid)); - - let expectedNotifications = []; - for (let i = 0; i < sorted.length; ++i) { - let child = sorted[i]; - let childId = yield PlacesUtils.promiseItemId(child.guid); - expectedNotifications.push({ name: "onItemMoved", - arguments: [ childId, - PlacesUtils.unfiledBookmarksFolderId, - child.index, - PlacesUtils.unfiledBookmarksFolderId, - i, - child.type, - child.guid, - child.parentGuid, - child.parentGuid, - Ci.nsINavBookmarksService.SOURCE_DEFAULT - ] }); - } - observer.check(expectedNotifications); -}); - -function expectNotifications() { - let notifications = []; - let observer = new Proxy(NavBookmarkObserver, { - get(target, name) { - if (name == "check") { - PlacesUtils.bookmarks.removeObserver(observer); - return expectedNotifications => - Assert.deepEqual(notifications, expectedNotifications); - } - - if (name.startsWith("onItem")) { - return (...origArgs) => { - let args = Array.from(origArgs, arg => { - if (arg && arg instanceof Ci.nsIURI) - return new URL(arg.spec); - if (arg && typeof(arg) == "number" && arg >= Date.now() * 1000) - return new Date(parseInt(arg/1000)); - return arg; - }); - notifications.push({ name: name, arguments: args }); - } - } - - if (name in target) - return target[name]; - return undefined; - } - }); - PlacesUtils.bookmarks.addObserver(observer, false); - return observer; -} - -function run_test() { - run_next_test(); -} |