|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
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 */ |
|
10 |
|
11 let gNow = getExpirablePRTime(); |
|
12 |
|
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); |
|
25 |
|
26 // Expire now. |
|
27 yield promiseForceExpirationStep(0); |
|
28 |
|
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/")); |
|
33 |
|
34 // Clean up. |
|
35 yield promiseClearHistory(); |
|
36 }); |
|
37 |
|
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); |
|
50 |
|
51 // Expire now. |
|
52 yield promiseForceExpirationStep(); |
|
53 |
|
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/")); |
|
58 |
|
59 // Clean up. |
|
60 yield promiseClearHistory(); |
|
61 }); |
|
62 |
|
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++ }); |
|
71 |
|
72 // Expire now. |
|
73 yield promiseForceExpirationStep(1); |
|
74 |
|
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); |
|
78 |
|
79 // Clean up. |
|
80 yield promiseClearHistory(); |
|
81 }); |
|
82 |
|
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++ }); |
|
91 |
|
92 // Expire now. |
|
93 yield promiseForceExpirationStep(-1); |
|
94 |
|
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/")); |
|
98 |
|
99 // Clean up. |
|
100 yield promiseClearHistory(); |
|
101 }); |
|
102 |
|
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); |
|
109 |
|
110 run_next_test(); |
|
111 } |