Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
4 /**
5 * What this is aimed to test:
6 *
7 * Expiration can be manually triggered through a debug topic, but that should
8 * only expire orphan entries, unless -1 is passed as limit.
9 */
11 let gNow = getExpirablePRTime();
13 add_task(function test_expire_orphans()
14 {
15 // Add visits to 2 pages and force a orphan expiration. Visits should survive.
16 yield promiseAddVisits({ uri: uri("http://page1.mozilla.org/"),
17 visitDate: gNow++ });
18 yield promiseAddVisits({ uri: uri("http://page2.mozilla.org/"),
19 visitDate: gNow++ });
20 // Create a orphan place.
21 let id = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
22 NetUtil.newURI("http://page3.mozilla.org/"),
23 PlacesUtils.bookmarks.DEFAULT_INDEX, "");
24 PlacesUtils.bookmarks.removeItem(id);
26 // Expire now.
27 yield promiseForceExpirationStep(0);
29 // Check that visits survived.
30 do_check_eq(visits_in_database("http://page1.mozilla.org/"), 1);
31 do_check_eq(visits_in_database("http://page2.mozilla.org/"), 1);
32 do_check_false(page_in_database("http://page3.mozilla.org/"));
34 // Clean up.
35 yield promiseClearHistory();
36 });
38 add_task(function test_expire_orphans_optionalarg()
39 {
40 // Add visits to 2 pages and force a orphan expiration. Visits should survive.
41 yield promiseAddVisits({ uri: uri("http://page1.mozilla.org/"),
42 visitDate: gNow++ });
43 yield promiseAddVisits({ uri: uri("http://page2.mozilla.org/"),
44 visitDate: gNow++ });
45 // Create a orphan place.
46 let id = PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
47 NetUtil.newURI("http://page3.mozilla.org/"),
48 PlacesUtils.bookmarks.DEFAULT_INDEX, "");
49 PlacesUtils.bookmarks.removeItem(id);
51 // Expire now.
52 yield promiseForceExpirationStep();
54 // Check that visits survived.
55 do_check_eq(visits_in_database("http://page1.mozilla.org/"), 1);
56 do_check_eq(visits_in_database("http://page2.mozilla.org/"), 1);
57 do_check_false(page_in_database("http://page3.mozilla.org/"));
59 // Clean up.
60 yield promiseClearHistory();
61 });
63 add_task(function test_expire_limited()
64 {
65 // Add visits to 2 pages and force a single expiration.
66 // Only 1 page should survive.
67 yield promiseAddVisits({ uri: uri("http://page1.mozilla.org/"),
68 visitDate: gNow++ });
69 yield promiseAddVisits({ uri: uri("http://page2.mozilla.org/"),
70 visitDate: gNow++ });
72 // Expire now.
73 yield promiseForceExpirationStep(1);
75 // Check that visits to the more recent page survived.
76 do_check_false(page_in_database("http://page1.mozilla.org/"));
77 do_check_eq(visits_in_database("http://page2.mozilla.org/"), 1);
79 // Clean up.
80 yield promiseClearHistory();
81 });
83 add_task(function test_expire_unlimited()
84 {
85 // Add visits to 2 pages and force a single expiration.
86 // Only 1 page should survive.
87 yield promiseAddVisits({ uri: uri("http://page1.mozilla.org/"),
88 visitDate: gNow++ });
89 yield promiseAddVisits({ uri: uri("http://page2.mozilla.org/"),
90 visitDate: gNow++ });
92 // Expire now.
93 yield promiseForceExpirationStep(-1);
95 // Check that visits to the more recent page survived.
96 do_check_false(page_in_database("http://page1.mozilla.org/"));
97 do_check_false(page_in_database("http://page2.mozilla.org/"));
99 // Clean up.
100 yield promiseClearHistory();
101 });
103 function run_test()
104 {
105 // Set interval to a large value so we don't expire on it.
106 setInterval(3600); // 1h
107 // Set maxPages to a low value, so it's easy to go over it.
108 setMaxPages(1);
110 run_next_test();
111 }