summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/queries/test_sort-date-site-grouping.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/places/tests/queries/test_sort-date-site-grouping.js')
-rw-r--r--toolkit/components/places/tests/queries/test_sort-date-site-grouping.js225
1 files changed, 0 insertions, 225 deletions
diff --git a/toolkit/components/places/tests/queries/test_sort-date-site-grouping.js b/toolkit/components/places/tests/queries/test_sort-date-site-grouping.js
deleted file mode 100644
index 7ca50e6de..000000000
--- a/toolkit/components/places/tests/queries/test_sort-date-site-grouping.js
+++ /dev/null
@@ -1,225 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim:set ts=2 sw=2 sts=2 et: */
-/* ***** BEGIN LICENSE BLOCK *****
- Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/
- * ***** END LICENSE BLOCK ***** */
-
-// This test ensures that the date and site type of |place:| query maintains
-// its quantifications correctly. Namely, it ensures that the date part of the
-// query is not lost when the domain queries are made.
-
-// We specifically craft these entries so that if a by Date and Site sorting is
-// applied, we find one domain in the today range, and two domains in the older
-// than six months range.
-// The correspondence between item in |testData| and date range is stored in
-// leveledTestData.
-var testData = [
- {
- isVisit: true,
- uri: "file:///directory/1",
- lastVisit: today,
- title: "test visit",
- isInQuery: true
- },
- {
- isVisit: true,
- uri: "http://example.com/1",
- lastVisit: today,
- title: "test visit",
- isInQuery: true
- },
- {
- isVisit: true,
- uri: "http://example.com/2",
- lastVisit: today,
- title: "test visit",
- isInQuery: true
- },
- {
- isVisit: true,
- uri: "file:///directory/2",
- lastVisit: olderthansixmonths,
- title: "test visit",
- isInQuery: true
- },
- {
- isVisit: true,
- uri: "http://example.com/3",
- lastVisit: olderthansixmonths,
- title: "test visit",
- isInQuery: true
- },
- {
- isVisit: true,
- uri: "http://example.com/4",
- lastVisit: olderthansixmonths,
- title: "test visit",
- isInQuery: true
- },
- {
- isVisit: true,
- uri: "http://example.net/1",
- lastVisit: olderthansixmonths + 1000,
- title: "test visit",
- isInQuery: true
- }
-];
-var domainsInRange = [2, 3];
-var leveledTestData = [// Today
- [[0], // Today, local files
- [1, 2]], // Today, example.com
- // Older than six months
- [[3], // Older than six months, local files
- [4, 5], // Older than six months, example.com
- [6] // Older than six months, example.net
- ]];
-
-// This test data is meant for live updating. The |levels| property indicates
-// date range index and then domain index.
-var testDataAddedLater = [
- {
- isVisit: true,
- uri: "http://example.com/5",
- lastVisit: olderthansixmonths,
- title: "test visit",
- isInQuery: true,
- levels: [1, 1]
- },
- {
- isVisit: true,
- uri: "http://example.com/6",
- lastVisit: olderthansixmonths,
- title: "test visit",
- isInQuery: true,
- levels: [1, 1]
- },
- {
- isVisit: true,
- uri: "http://example.com/7",
- lastVisit: today,
- title: "test visit",
- isInQuery: true,
- levels: [0, 1]
- },
- {
- isVisit: true,
- uri: "file:///directory/3",
- lastVisit: today,
- title: "test visit",
- isInQuery: true,
- levels: [0, 0]
- }
-];
-
-function run_test()
-{
- run_next_test();
-}
-
-add_task(function* test_sort_date_site_grouping()
-{
- yield task_populateDB(testData);
-
- // On Linux, the (local files) folder is shown after sites unlike Mac/Windows.
- // Thus, we avoid running this test on Linux but this should be re-enabled
- // after bug 624024 is resolved.
- let isLinux = ("@mozilla.org/gnome-gconf-service;1" in Components.classes);
- if (isLinux)
- return;
-
- // In this test, there are three levels of results:
- // 1st: Date queries. e.g., today, last week, or older than 6 months.
- // 2nd: Domain queries restricted to a date. e.g. mozilla.com today.
- // 3rd: Actual visits. e.g. mozilla.com/index.html today.
- //
- // We store all the third level result roots so that we can easily close all
- // containers and test live updating into specific results.
- let roots = [];
-
- let query = PlacesUtils.history.getNewQuery();
- let options = PlacesUtils.history.getNewQueryOptions();
- options.resultType = Ci.nsINavHistoryQueryOptions.RESULTS_AS_DATE_SITE_QUERY;
-
- let root = PlacesUtils.history.executeQuery(query, options).root;
- root.containerOpen = true;
-
- // This corresponds to the number of date ranges.
- do_check_eq(root.childCount, leveledTestData.length);
-
- // We pass off to |checkFirstLevel| to check the first level of results.
- for (let index = 0; index < leveledTestData.length; index++) {
- let node = root.getChild(index);
- checkFirstLevel(index, node, roots);
- }
-
- // Test live updating.
- for (let visit of testDataAddedLater) {
- yield task_populateDB([visit]);
- let oldLength = testData.length;
- let i = visit.levels[0];
- let j = visit.levels[1];
- testData.push(visit);
- leveledTestData[i][j].push(oldLength);
- compareArrayToResult(leveledTestData[i][j].
- map(x => testData[x]), roots[i][j]);
- }
-
- for (let i = 0; i < roots.length; i++) {
- for (let j = 0; j < roots[i].length; j++)
- roots[i][j].containerOpen = false;
- }
-
- root.containerOpen = false;
-});
-
-function checkFirstLevel(index, node, roots) {
- PlacesUtils.asContainer(node).containerOpen = true;
-
- do_check_true(PlacesUtils.nodeIsDay(node));
- PlacesUtils.asQuery(node);
- let queries = node.getQueries();
- let options = node.queryOptions;
-
- do_check_eq(queries.length, 1);
- let query = queries[0];
-
- do_check_true(query.hasBeginTime && query.hasEndTime);
-
- // Here we check the second level of results.
- let root = PlacesUtils.history.executeQuery(query, options).root;
- roots.push([]);
- root.containerOpen = true;
-
- do_check_eq(root.childCount, leveledTestData[index].length);
- for (var secondIndex = 0; secondIndex < root.childCount; secondIndex++) {
- let child = PlacesUtils.asQuery(root.getChild(secondIndex));
- checkSecondLevel(index, secondIndex, child, roots);
- }
- root.containerOpen = false;
- node.containerOpen = false;
-}
-
-function checkSecondLevel(index, secondIndex, child, roots) {
- let queries = child.getQueries();
- let options = child.queryOptions;
-
- do_check_eq(queries.length, 1);
- let query = queries[0];
-
- do_check_true(query.hasDomain);
- do_check_true(query.hasBeginTime && query.hasEndTime);
-
- let root = PlacesUtils.history.executeQuery(query, options).root;
- // We should now have that roots[index][secondIndex] is set to the second
- // level's results root.
- roots[index].push(root);
-
- // We pass off to compareArrayToResult to check the third level of
- // results.
- root.containerOpen = true;
- compareArrayToResult(leveledTestData[index][secondIndex].
- map(x => testData[x]), root);
- // We close |root|'s container later so that we can test live
- // updates into it.
-}