toolkit/components/places/tests/unit/test_update_frecency_after_delete.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:aafe1ffb9592
1 /* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim:set ts=2 sw=2 sts=2 et: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7 /**
8 * Bug 455315
9 * https://bugzilla.mozilla.org/show_bug.cgi?id=412132
10 *
11 * Ensures that the frecency of a bookmark's URI is what it should be after the
12 * bookmark is deleted.
13 */
14
15 add_test(function removed_bookmark()
16 {
17 do_log_info("After removing bookmark, frecency of bookmark's URI should be " +
18 "zero if URI is unvisited and no longer bookmarked.");
19 const TEST_URI = NetUtil.newURI("http://example.com/1");
20 let id = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
21 TEST_URI,
22 PlacesUtils.bookmarks.DEFAULT_INDEX,
23 "bookmark title");
24 promiseAsyncUpdates().then(function ()
25 {
26 do_log_info("Bookmarked => frecency of URI should be != 0");
27 do_check_neq(frecencyForUrl(TEST_URI), 0);
28
29 PlacesUtils.bookmarks.removeItem(id);
30
31 promiseAsyncUpdates().then(function ()
32 {
33 do_log_info("Unvisited URI no longer bookmarked => frecency should = 0");
34 do_check_eq(frecencyForUrl(TEST_URI), 0);
35
36 remove_all_bookmarks();
37 promiseClearHistory().then(run_next_test);
38 });
39 });
40 });
41
42 add_test(function removed_but_visited_bookmark()
43 {
44 do_log_info("After removing bookmark, frecency of bookmark's URI should " +
45 "not be zero if URI is visited.");
46 const TEST_URI = NetUtil.newURI("http://example.com/1");
47 let id = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
48 TEST_URI,
49 PlacesUtils.bookmarks.DEFAULT_INDEX,
50 "bookmark title");
51 promiseAsyncUpdates().then(function ()
52 {
53 do_log_info("Bookmarked => frecency of URI should be != 0");
54 do_check_neq(frecencyForUrl(TEST_URI), 0);
55
56 promiseAddVisits(TEST_URI).then(function () {
57 PlacesUtils.bookmarks.removeItem(id);
58
59 promiseAsyncUpdates().then(function ()
60 {
61 do_log_info("*Visited* URI no longer bookmarked => frecency should != 0");
62 do_check_neq(frecencyForUrl(TEST_URI), 0);
63
64 remove_all_bookmarks();
65 promiseClearHistory().then(run_next_test);
66 });
67 });
68 });
69 });
70
71 add_test(function remove_bookmark_still_bookmarked()
72 {
73 do_log_info("After removing bookmark, frecency of bookmark's URI should ",
74 "not be zero if URI is still bookmarked.");
75 const TEST_URI = NetUtil.newURI("http://example.com/1");
76 let id1 = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
77 TEST_URI,
78 PlacesUtils.bookmarks.DEFAULT_INDEX,
79 "bookmark 1 title");
80 let id2 = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
81 TEST_URI,
82 PlacesUtils.bookmarks.DEFAULT_INDEX,
83 "bookmark 2 title");
84 promiseAsyncUpdates().then(function ()
85 {
86 do_log_info("Bookmarked => frecency of URI should be != 0");
87 do_check_neq(frecencyForUrl(TEST_URI), 0);
88
89 PlacesUtils.bookmarks.removeItem(id1);
90
91 promiseAsyncUpdates().then(function ()
92 {
93 do_log_info("URI still bookmarked => frecency should != 0");
94 do_check_neq(frecencyForUrl(TEST_URI), 0);
95
96 remove_all_bookmarks();
97 promiseClearHistory().then(run_next_test);
98 });
99 });
100 });
101
102 add_test(function cleared_parent_of_visited_bookmark()
103 {
104 do_log_info("After removing all children from bookmark's parent, frecency " +
105 "of bookmark's URI should not be zero if URI is visited.");
106 const TEST_URI = NetUtil.newURI("http://example.com/1");
107 let id = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
108 TEST_URI,
109 PlacesUtils.bookmarks.DEFAULT_INDEX,
110 "bookmark title");
111 promiseAsyncUpdates().then(function ()
112 {
113 do_log_info("Bookmarked => frecency of URI should be != 0");
114 do_check_neq(frecencyForUrl(TEST_URI), 0);
115
116 promiseAddVisits(TEST_URI).then(function () {
117 PlacesUtils.bookmarks.removeFolderChildren(PlacesUtils.unfiledBookmarksFolderId);
118
119 promiseAsyncUpdates().then(function ()
120 {
121 do_log_info("*Visited* URI no longer bookmarked => frecency should != 0");
122 do_check_neq(frecencyForUrl(TEST_URI), 0);
123
124 remove_all_bookmarks();
125 promiseClearHistory().then(run_next_test);
126 });
127 });
128 });
129 });
130
131 add_test(function cleared_parent_of_bookmark_still_bookmarked()
132 {
133 do_log_info("After removing all children from bookmark's parent, frecency " +
134 "of bookmark's URI should not be zero if URI is still " +
135 "bookmarked.");
136 const TEST_URI = NetUtil.newURI("http://example.com/1");
137 let id1 = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.toolbarFolderId,
138 TEST_URI,
139 PlacesUtils.bookmarks.DEFAULT_INDEX,
140 "bookmark 1 title");
141
142 let id2 = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
143 TEST_URI,
144 PlacesUtils.bookmarks.DEFAULT_INDEX,
145 "bookmark 2 title");
146 promiseAsyncUpdates().then(function ()
147 {
148 do_log_info("Bookmarked => frecency of URI should be != 0");
149 do_check_neq(frecencyForUrl(TEST_URI), 0);
150
151 PlacesUtils.bookmarks.removeFolderChildren(PlacesUtils.unfiledBookmarksFolderId);
152
153 promiseAsyncUpdates().then(function ()
154 {
155 // URI still bookmarked => frecency should != 0.
156 do_check_neq(frecencyForUrl(TEST_URI), 0);
157
158 remove_all_bookmarks();
159 promiseClearHistory().then(run_next_test);
160 });
161 });
162 });
163
164 ///////////////////////////////////////////////////////////////////////////////
165
166 function run_test()
167 {
168 run_next_test();
169 }

mercurial