summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/bookmarks/test_405938_restore_queries.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/places/tests/bookmarks/test_405938_restore_queries.js')
-rw-r--r--toolkit/components/places/tests/bookmarks/test_405938_restore_queries.js221
1 files changed, 0 insertions, 221 deletions
diff --git a/toolkit/components/places/tests/bookmarks/test_405938_restore_queries.js b/toolkit/components/places/tests/bookmarks/test_405938_restore_queries.js
deleted file mode 100644
index e317cc2e9..000000000
--- a/toolkit/components/places/tests/bookmarks/test_405938_restore_queries.js
+++ /dev/null
@@ -1,221 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 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/. */
-
-var tests = [];
-
-/*
-
-Backup/restore tests example:
-
-var myTest = {
- populate: function () { ... add bookmarks ... },
- validate: function () { ... query for your bookmarks ... }
-}
-
-this.push(myTest);
-
-*/
-
-/*
-
-test summary:
-- create folders with content
-- create a query bookmark for those folders
-- backs up bookmarks
-- restores bookmarks
-- confirms that the query has the new ids for the same folders
-
-scenarios:
-- 1 folder (folder shortcut)
-- n folders (single query)
-- n folders (multiple queries)
-
-*/
-
-const DEFAULT_INDEX = PlacesUtils.bookmarks.DEFAULT_INDEX;
-
-var test = {
- _testRootId: null,
- _testRootTitle: "test root",
- _folderIds: [],
- _bookmarkURIs: [],
- _count: 3,
-
- populate: function populate() {
- // folder to hold this test
- PlacesUtils.bookmarks.removeFolderChildren(PlacesUtils.toolbarFolderId);
- this._testRootId =
- PlacesUtils.bookmarks.createFolder(PlacesUtils.toolbarFolderId,
- this._testRootTitle, DEFAULT_INDEX);
-
- // create test folders each with a bookmark
- for (var i = 0; i < this._count; i++) {
- var folderId =
- PlacesUtils.bookmarks.createFolder(this._testRootId, "folder" + i, DEFAULT_INDEX);
- this._folderIds.push(folderId)
-
- var bookmarkURI = uri("http://" + i);
- PlacesUtils.bookmarks.insertBookmark(folderId, bookmarkURI,
- DEFAULT_INDEX, "bookmark" + i);
- this._bookmarkURIs.push(bookmarkURI);
- }
-
- // create a query URI with 1 folder (ie: folder shortcut)
- this._queryURI1 = uri("place:folder=" + this._folderIds[0] + "&queryType=1");
- this._queryTitle1 = "query1";
- PlacesUtils.bookmarks.insertBookmark(this._testRootId, this._queryURI1,
- DEFAULT_INDEX, this._queryTitle1);
-
- // create a query URI with _count folders
- this._queryURI2 = uri("place:folder=" + this._folderIds.join("&folder=") + "&queryType=1");
- this._queryTitle2 = "query2";
- PlacesUtils.bookmarks.insertBookmark(this._testRootId, this._queryURI2,
- DEFAULT_INDEX, this._queryTitle2);
-
- // create a query URI with _count queries (each with a folder)
- // first get a query object for each folder
- var queries = this._folderIds.map(function(aFolderId) {
- var query = PlacesUtils.history.getNewQuery();
- query.setFolders([aFolderId], 1);
- return query;
- });
- var options = PlacesUtils.history.getNewQueryOptions();
- options.queryType = options.QUERY_TYPE_BOOKMARKS;
- this._queryURI3 =
- uri(PlacesUtils.history.queriesToQueryString(queries, queries.length, options));
- this._queryTitle3 = "query3";
- PlacesUtils.bookmarks.insertBookmark(this._testRootId, this._queryURI3,
- DEFAULT_INDEX, this._queryTitle3);
- },
-
- clean: function () {},
-
- validate: function validate() {
- // Throw a wrench in the works by inserting some new bookmarks,
- // ensuring folder ids won't be the same, when restoring.
- for (let i = 0; i < 10; i++) {
- PlacesUtils.bookmarks.
- insertBookmark(PlacesUtils.bookmarksMenuFolderId, uri("http://aaaa"+i), DEFAULT_INDEX, "");
- }
-
- var toolbar =
- PlacesUtils.getFolderContents(PlacesUtils.toolbarFolderId,
- false, true).root;
- do_check_true(toolbar.childCount, 1);
-
- var folderNode = toolbar.getChild(0);
- do_check_eq(folderNode.type, folderNode.RESULT_TYPE_FOLDER);
- do_check_eq(folderNode.title, this._testRootTitle);
- folderNode.QueryInterface(Ci.nsINavHistoryQueryResultNode);
- folderNode.containerOpen = true;
-
- // |_count| folders + the query node
- do_check_eq(folderNode.childCount, this._count+3);
-
- for (let i = 0; i < this._count; i++) {
- var subFolder = folderNode.getChild(i);
- do_check_eq(subFolder.title, "folder"+i);
- subFolder.QueryInterface(Ci.nsINavHistoryContainerResultNode);
- subFolder.containerOpen = true;
- do_check_eq(subFolder.childCount, 1);
- var child = subFolder.getChild(0);
- do_check_eq(child.title, "bookmark"+i);
- do_check_true(uri(child.uri).equals(uri("http://" + i)))
- }
-
- // validate folder shortcut
- this.validateQueryNode1(folderNode.getChild(this._count));
-
- // validate folders query
- this.validateQueryNode2(folderNode.getChild(this._count + 1));
-
- // validate multiple queries query
- this.validateQueryNode3(folderNode.getChild(this._count + 2));
-
- // clean up
- folderNode.containerOpen = false;
- toolbar.containerOpen = false;
- },
-
- validateQueryNode1: function validateQueryNode1(aNode) {
- do_check_eq(aNode.title, this._queryTitle1);
- do_check_true(PlacesUtils.nodeIsFolder(aNode));
-
- aNode.QueryInterface(Ci.nsINavHistoryContainerResultNode);
- aNode.containerOpen = true;
- do_check_eq(aNode.childCount, 1);
- var child = aNode.getChild(0);
- do_check_true(uri(child.uri).equals(uri("http://0")))
- do_check_eq(child.title, "bookmark0")
- aNode.containerOpen = false;
- },
-
- validateQueryNode2: function validateQueryNode2(aNode) {
- do_check_eq(aNode.title, this._queryTitle2);
- do_check_true(PlacesUtils.nodeIsQuery(aNode));
-
- aNode.QueryInterface(Ci.nsINavHistoryContainerResultNode);
- aNode.containerOpen = true;
- do_check_eq(aNode.childCount, this._count);
- for (var i = 0; i < aNode.childCount; i++) {
- var child = aNode.getChild(i);
- do_check_true(uri(child.uri).equals(uri("http://" + i)))
- do_check_eq(child.title, "bookmark" + i)
- }
- aNode.containerOpen = false;
- },
-
- validateQueryNode3: function validateQueryNode3(aNode) {
- do_check_eq(aNode.title, this._queryTitle3);
- do_check_true(PlacesUtils.nodeIsQuery(aNode));
-
- aNode.QueryInterface(Ci.nsINavHistoryContainerResultNode);
- aNode.containerOpen = true;
- do_check_eq(aNode.childCount, this._count);
- for (var i = 0; i < aNode.childCount; i++) {
- var child = aNode.getChild(i);
- do_check_true(uri(child.uri).equals(uri("http://" + i)))
- do_check_eq(child.title, "bookmark" + i)
- }
- aNode.containerOpen = false;
- }
-}
-tests.push(test);
-
-function run_test() {
- run_next_test();
-}
-
-add_task(function* () {
- // make json file
- let jsonFile = OS.Path.join(OS.Constants.Path.profileDir, "bookmarks.json");
-
- // populate db
- tests.forEach(function(aTest) {
- aTest.populate();
- // sanity
- aTest.validate();
- });
-
- // export json to file
- yield BookmarkJSONUtils.exportToFile(jsonFile);
-
- // clean
- tests.forEach(function(aTest) {
- aTest.clean();
- });
-
- // restore json file
- yield BookmarkJSONUtils.importFromFile(jsonFile, true);
-
- // validate
- tests.forEach(function(aTest) {
- aTest.validate();
- });
-
- // clean up
- yield OS.File.remove(jsonFile);
-});