gecko/toolkit/components/places/tests/queries/test_searchTerms_includeHidden.js
Marco Bonardo 643d69f402 Bug 766799 - Notify hidden visits to history observers.
Redirect sources and framed visits are considered hidden and thus not shown in
common UI history queries.  So far were not even notified, but the right thing
to do is to let the observer handle them based on its needs.
r=Mano sr=Mossop
2012-12-20 23:45:00 +01:00

85 lines
2.1 KiB
JavaScript

/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// Tests the interaction of includeHidden and searchTerms search options.
let timeInMicroseconds = Date.now() * 1000;
const VISITS = [
{ isVisit: true,
transType: TRANSITION_TYPED,
uri: "http://redirect.example.com/",
title: "example",
isRedirect: true,
lastVisit: timeInMicroseconds--
},
{ isVisit: true,
transType: TRANSITION_TYPED,
uri: "http://target.example.com/",
title: "example",
lastVisit: timeInMicroseconds--
}
];
const HIDDEN_VISITS = [
{ isVisit: true,
transType: TRANSITION_FRAMED_LINK,
uri: "http://hidden.example.com/",
title: "red",
lastVisit: timeInMicroseconds--
},
];
const TEST_DATA = [
{ searchTerms: "example",
includeHidden: true,
expectedResults: 2
},
{ searchTerms: "example",
includeHidden: false,
expectedResults: 1
},
{ searchTerms: "red",
includeHidden: true,
expectedResults: 1
}
];
function run_test()
{
run_next_test();
}
add_task(function test_initalize()
{
yield task_populateDB(VISITS);
});
add_task(function test_searchTerms_includeHidden()
{
for (let data of TEST_DATA) {
let query = PlacesUtils.history.getNewQuery();
query.searchTerms = data.searchTerms;
let options = PlacesUtils.history.getNewQueryOptions();
options.includeHidden = data.includeHidden;
let root = PlacesUtils.history.executeQuery(query, options).root;
root.containerOpen = true;
let cc = root.childCount;
// Live update with hidden visits.
yield task_populateDB(HIDDEN_VISITS);
let cc_update = root.childCount;
root.containerOpen = false;
do_check_eq(cc, data.expectedResults);
do_check_eq(cc_update, data.expectedResults + (data.includeHidden ? 1 : 0));
PlacesUtils.bhistory.removePage(uri("http://hidden.example.com/"));
}
});