summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/unit/test_412132.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/places/tests/unit/test_412132.js')
-rw-r--r--toolkit/components/places/tests/unit/test_412132.js181
1 files changed, 181 insertions, 0 deletions
diff --git a/toolkit/components/places/tests/unit/test_412132.js b/toolkit/components/places/tests/unit/test_412132.js
new file mode 100644
index 0000000000..65653b5c0a
--- /dev/null
+++ b/toolkit/components/places/tests/unit/test_412132.js
@@ -0,0 +1,181 @@
+/* -*- 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/. */
+
+/*
+ * TEST DESCRIPTION:
+ *
+ * Tests patch to Bug 412132:
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=412132
+ */
+
+const TEST_URL0 = "http://example.com/";
+const TEST_URL1 = "http://example.com/1";
+const TEST_URL2 = "http://example.com/2";
+
+add_task(async function changeuri_unvisited_bookmark() {
+ info(
+ "After changing URI of bookmark, frecency of bookmark's " +
+ "original URI should be zero if original URI is unvisited and " +
+ "no longer bookmarked."
+ );
+ let bookmark = await PlacesUtils.bookmarks.insert({
+ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+ title: "bookmark title",
+ url: TEST_URL1,
+ });
+
+ await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
+
+ Assert.notEqual(
+ await PlacesTestUtils.getDatabaseValue("moz_places", "frecency", {
+ url: TEST_URL1,
+ }),
+ 0,
+ "Bookmarked => frecency of URI should be != 0"
+ );
+
+ await PlacesUtils.bookmarks.update({
+ guid: bookmark.guid,
+ url: TEST_URL2,
+ });
+
+ await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
+
+ Assert.equal(
+ await PlacesTestUtils.getDatabaseValue("moz_places", "frecency", {
+ url: TEST_URL1,
+ }),
+ 0,
+ "Unvisited URI no longer bookmarked => frecency should = 0"
+ );
+
+ await PlacesUtils.bookmarks.eraseEverything();
+ await PlacesUtils.history.clear();
+});
+
+add_task(async function changeuri_visited_bookmark() {
+ info(
+ "After changing URI of bookmark, frecency of bookmark's " +
+ "original URI should not be zero if original URI is visited."
+ );
+ let bookmark = await PlacesUtils.bookmarks.insert({
+ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+ title: "bookmark title",
+ url: TEST_URL1,
+ });
+
+ await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
+
+ Assert.notEqual(
+ await PlacesTestUtils.getDatabaseValue("moz_places", "frecency", {
+ url: TEST_URL1,
+ }),
+ 0,
+ "Bookmarked => frecency of URI should be != 0"
+ );
+
+ await PlacesTestUtils.addVisits(TEST_URL1);
+
+ await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
+
+ await PlacesUtils.bookmarks.update({
+ guid: bookmark.guid,
+ url: TEST_URL2,
+ });
+
+ await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
+
+ Assert.notEqual(
+ await PlacesTestUtils.getDatabaseValue("moz_places", "frecency", {
+ url: TEST_URL1,
+ }),
+ 0,
+ "*Visited* URI no longer bookmarked => frecency should != 0"
+ );
+
+ await PlacesUtils.bookmarks.eraseEverything();
+ await PlacesUtils.history.clear();
+});
+
+add_task(async function changeuri_bookmark_still_bookmarked() {
+ info(
+ "After changing URI of bookmark, frecency of bookmark's " +
+ "original URI should not be zero if original URI is still " +
+ "bookmarked."
+ );
+ let bookmark = await PlacesUtils.bookmarks.insert({
+ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+ title: "bookmark 1 title",
+ url: TEST_URL1,
+ });
+
+ await PlacesUtils.bookmarks.insert({
+ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+ title: "bookmark 2 title",
+ url: TEST_URL1,
+ });
+
+ await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
+
+ Assert.notEqual(
+ await PlacesTestUtils.getDatabaseValue("moz_places", "frecency", {
+ url: TEST_URL1,
+ }),
+ 0,
+ "Bookmarked => frecency of URI should be != 0"
+ );
+
+ await PlacesUtils.bookmarks.update({
+ guid: bookmark.guid,
+ url: TEST_URL2,
+ });
+
+ await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
+
+ info("URI still bookmarked => frecency should != 0");
+ Assert.notEqual(
+ await PlacesTestUtils.getDatabaseValue("moz_places", "frecency", {
+ url: TEST_URL2,
+ }),
+ 0
+ );
+
+ await PlacesUtils.bookmarks.eraseEverything();
+ await PlacesUtils.history.clear();
+});
+
+add_task(async function changeuri_nonexistent_bookmark() {
+ // Try a bogus guid.
+ await Assert.rejects(
+ PlacesUtils.bookmarks.update({
+ guid: "ABCDEDFGHIJK",
+ url: TEST_URL2,
+ }),
+ /No bookmarks found for the provided GUID/,
+ "Changing the URI of a non-existent bookmark should fail."
+ );
+
+ // Now add a bookmark, delete it, and check.
+ let bookmark = await PlacesUtils.bookmarks.insert({
+ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+ title: "bookmark title",
+ url: TEST_URL0,
+ });
+
+ await PlacesUtils.bookmarks.remove(bookmark.guid);
+
+ await Assert.rejects(
+ PlacesUtils.bookmarks.update({
+ guid: bookmark.guid,
+ url: TEST_URL2,
+ }),
+ /No bookmarks found for the provided GUID/,
+ "Changing the URI of a non-existent bookmark should fail."
+ );
+
+ await PlacesUtils.bookmarks.eraseEverything();
+ await PlacesUtils.history.clear();
+});