toolkit/components/places/tests/expiration/test_debug_expiration.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     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 }

mercurial