toolkit/components/places/tests/unit/test_getPlacesInfo.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 function promiseGetPlacesInfo(aPlacesIdentifiers) {
     5   let deferred = Promise.defer();
     6   PlacesUtils.asyncHistory.getPlacesInfo(aPlacesIdentifiers, {
     7     _results: [],
     8     _errors: [],
    10     handleResult: function handleResult(aPlaceInfo) {
    11       this._results.push(aPlaceInfo);
    12     },
    13     handleError: function handleError(aResultCode, aPlaceInfo) {
    14       this._errors.push({ resultCode: aResultCode, info: aPlaceInfo });
    15     },
    16     handleCompletion: function handleCompletion() {
    17       deferred.resolve({ errors: this._errors, results: this._results });
    18     }
    19   });
    21   return deferred.promise;
    22 }
    24 function ensurePlacesInfoObjectsAreEqual(a, b) {
    25   do_check_true(a.uri.equals(b.uri));
    26   do_check_eq(a.title, b.title);
    27   do_check_eq(a.guid, b.guid);
    28   do_check_eq(a.placeId, b.placeId);
    29 }
    31 function test_getPlacesInfoExistentPlace() {
    32   let testURI = NetUtil.newURI("http://www.example.tld");
    33   yield promiseAddVisits(testURI);
    35   let getPlacesInfoResult = yield promiseGetPlacesInfo([testURI]);
    36   do_check_eq(getPlacesInfoResult.results.length, 1);
    37   do_check_eq(getPlacesInfoResult.errors.length, 0);
    39   let placeInfo = getPlacesInfoResult.results[0];
    40   do_check_true(placeInfo instanceof Ci.mozIPlaceInfo);
    42   do_check_true(placeInfo.uri.equals(testURI));
    43   do_check_eq(placeInfo.title, "test visit for " + testURI.spec);
    44   do_check_true(placeInfo.guid.length > 0);
    45   do_check_eq(placeInfo.visits, null);
    46 }
    47 add_task(test_getPlacesInfoExistentPlace);
    49 function test_getPlacesInfoNonExistentPlace() {
    50   let testURI = NetUtil.newURI("http://www.example_non_existent.tld");
    51   let getPlacesInfoResult = yield promiseGetPlacesInfo(testURI);
    52   do_check_eq(getPlacesInfoResult.results.length, 0);
    53   do_check_eq(getPlacesInfoResult.errors.length, 1);
    54 }
    55 add_task(test_getPlacesInfoNonExistentPlace);
    57 function test_promisedHelper() {
    58   let (uri = NetUtil.newURI("http://www.helper_existent_example.tld")) {
    59     yield promiseAddVisits(uri);
    60     let placeInfo = yield PlacesUtils.promisePlaceInfo(uri);
    61     do_check_true(placeInfo instanceof Ci.mozIPlaceInfo);
    62   };
    64   let (uri = NetUtil.newURI("http://www.helper_non_existent_example.tld")) {
    65     try {
    66       let placeInfo = yield PlacesUtils.promisePlaceInfo(uri);
    67       do_throw("PlacesUtils.promisePlaceInfo should have rejected the promise");
    68     }
    69     catch(ex) { }
    70   };
    71 }
    72 add_task(test_promisedHelper);
    74 function test_infoByGUID() {
    75   let testURI = NetUtil.newURI("http://www.guid_example.tld");
    76   yield promiseAddVisits(testURI);
    78   let placeInfoByURI = yield PlacesUtils.promisePlaceInfo(testURI);
    79   let placeInfoByGUID = yield PlacesUtils.promisePlaceInfo(placeInfoByURI.guid);
    80   ensurePlacesInfoObjectsAreEqual(placeInfoByURI, placeInfoByGUID);
    81 }
    82 add_task(test_infoByGUID);
    84 function test_invalid_guid() {
    85   try {
    86     let placeInfoByGUID = yield PlacesUtils.promisePlaceInfo("###");
    87     do_throw("getPlacesInfo should fail for invalid guids")
    88   }
    89   catch(ex) { }
    90 }
    91 add_task(test_invalid_guid);
    93 function test_mixed_selection() {
    94   let placeInfo1, placeInfo2;
    95   let (uri = NetUtil.newURI("http://www.mixed_selection_test_1.tld")) {
    96     yield promiseAddVisits(uri);
    97     placeInfo1 = yield PlacesUtils.promisePlaceInfo(uri);
    98   };
   100   let (uri = NetUtil.newURI("http://www.mixed_selection_test_2.tld")) {
   101     yield promiseAddVisits(uri);
   102     placeInfo2 = yield PlacesUtils.promisePlaceInfo(uri);
   103   };
   105   let getPlacesInfoResult = yield promiseGetPlacesInfo([placeInfo1.uri, placeInfo2.guid]);
   106   do_check_eq(getPlacesInfoResult.results.length, 2);
   107   do_check_eq(getPlacesInfoResult.errors.length, 0);
   109   do_check_eq(getPlacesInfoResult.results[0].uri.spec, placeInfo1.uri.spec);
   110   do_check_eq(getPlacesInfoResult.results[1].guid, placeInfo2.guid);
   111 }
   112 add_task(test_mixed_selection);
   114 function run_test() {
   115   run_next_test();
   116 }

mercurial