/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ // This is a test for asyncExecuteLegacyQueries API. let tests = [ function test_history_query() { let uri = NetUtil.newURI("http://test.visit.mozilla.com/"); let title = "Test visit"; visit(uri, title); let options = PlacesUtils.history.getNewQueryOptions(); options.sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_DATE_DESCENDING; let query = PlacesUtils.history.getNewQuery(); PlacesUtils.history.QueryInterface(Ci.nsPIPlacesDatabase) .asyncExecuteLegacyQueries([query], 1, options, { handleResult: function (aResultSet) { for (let row; (row = aResultSet.getNextRow());) { try { do_check_eq(row.getResultByIndex(1), uri.spec); do_check_eq(row.getResultByIndex(2), title); } catch (e) { do_throw("Error while fetching page data."); } } }, handleError: function (aError) { do_throw("Async execution error (" + aError.result + "): " + aError.message); }, handleCompletion: function (aReason) { run_next_test(); }, }); }, function test_bookmarks_query() { let uri = NetUtil.newURI("http://test.bookmark.mozilla.com/"); let title = "Test bookmark"; bookmark(uri, title); let options = PlacesUtils.history.getNewQueryOptions(); options.sortingMode = Ci.nsINavHistoryQueryOptions.SORT_BY_LASMODIFIED_DESCENDING; options.queryType = options.QUERY_TYPE_BOOKMARKS; let query = PlacesUtils.history.getNewQuery(); PlacesUtils.history.QueryInterface(Ci.nsPIPlacesDatabase) .asyncExecuteLegacyQueries([query], 1, options, { handleResult: function (aResultSet) { for (let row; (row = aResultSet.getNextRow());) { try { do_check_eq(row.getResultByIndex(1), uri.spec); do_check_eq(row.getResultByIndex(2), title); } catch (e) { do_throw("Error while fetching page data."); } } }, handleError: function (aError) { do_throw("Async execution error (" + aError.result + "): " + aError.message); }, handleCompletion: function (aReason) { run_next_test(); }, }); }, ]; function visit(aURI, aTitle) { PlacesUtils.history.addVisit(aURI, Date.now() * 1000, null, PlacesUtils.history.TRANSITION_TYPED, false, 0); setPageTitle(aURI, aTitle); } function bookmark(aURI, aTitle) { PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId, aURI, PlacesUtils.bookmarks.DEFAULT_INDEX, aTitle); } function run_test() { do_test_pending(); run_next_test(); } function run_next_test() { if (tests.length == 0) { do_test_finished(); return; } let test = tests.shift(); waitForClearHistory(function() { remove_all_bookmarks(); do_execute_soon(test); }); }