summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/bookmarks/test_711914.js
blob: 3712c8a77f0965a6386a71491bf0849c5f77447c (plain)
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
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

function run_test() {
  /**
   * Requests information to the service, so that bookmark's data is cached.
   * @param aItemId
   *        Id of the bookmark to be cached.
   */
  function forceBookmarkCaching(aItemId) {
    let parent = PlacesUtils.bookmarks.getFolderIdForItem(aItemId);
    PlacesUtils.bookmarks.getFolderIdForItem(parent);
  }

  let observer = {
    onBeginUpdateBatch: () => forceBookmarkCaching(itemId1),
    onEndUpdateBatch: () => forceBookmarkCaching(itemId1),
    onItemAdded: forceBookmarkCaching,
    onItemChanged: forceBookmarkCaching,
    onItemMoved: forceBookmarkCaching,
    onItemRemoved: function (id) {
      try {
        forceBookmarkCaching(id);
        do_throw("trying to fetch a removed bookmark should throw");
      } catch (ex) {}
    },
    onItemVisited: forceBookmarkCaching,
    QueryInterface: XPCOMUtils.generateQI([Ci.nsINavBookmarkObserver])
  };
  PlacesUtils.bookmarks.addObserver(observer, false);

  let folder1 = PlacesUtils.bookmarks
                           .createFolder(PlacesUtils.bookmarksMenuFolderId,
                                         "Folder1",
                                         PlacesUtils.bookmarks.DEFAULT_INDEX);
  let folder2 = PlacesUtils.bookmarks
                           .createFolder(folder1,
                                         "Folder2",
                                         PlacesUtils.bookmarks.DEFAULT_INDEX);
  PlacesUtils.bookmarks.insertBookmark(folder2,
                                       NetUtil.newURI("http://mozilla.org/"),
                                       PlacesUtils.bookmarks.DEFAULT_INDEX,
                                       "Mozilla");

  PlacesUtils.bookmarks.removeFolderChildren(folder1);

  // Check title is correctly reported.
  do_check_eq(PlacesUtils.bookmarks.getItemTitle(folder1), "Folder1");
  try {
    PlacesUtils.bookmarks.getItemTitle(folder2);
    do_throw("trying to fetch a removed bookmark should throw");
  } catch (ex) {}

  PlacesUtils.bookmarks.removeObserver(observer, false);
}