summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/bookmarks/test_388695.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/places/tests/bookmarks/test_388695.js')
-rw-r--r--toolkit/components/places/tests/bookmarks/test_388695.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/toolkit/components/places/tests/bookmarks/test_388695.js b/toolkit/components/places/tests/bookmarks/test_388695.js
new file mode 100644
index 0000000000..337d8176bd
--- /dev/null
+++ b/toolkit/components/places/tests/bookmarks/test_388695.js
@@ -0,0 +1,45 @@
+/* -*- 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/. */
+
+// Get bookmark service
+let bm = PlacesUtils.bookmarks;
+
+// Test that Bookmarks fetch properly orders its results based on
+// the last modified value. Note we cannot rely on dateAdded due to
+// the low PR_Now() resolution.
+
+add_task(async function sort_bookmark_by_relevance() {
+ let now = new Date();
+ let modifiedTime = new Date(now.setHours(now.getHours() - 2));
+
+ let url = "http://foo.tld.com/";
+ let parentGuid = (
+ await bm.insert({
+ type: bm.TYPE_FOLDER,
+ title: "test folder",
+ parentGuid: bm.unfiledGuid,
+ })
+ ).guid;
+ let item1Guid = (await bm.insert({ url, parentGuid })).guid;
+ let item2Guid = (
+ await bm.insert({
+ url,
+ parentGuid,
+ dateAdded: modifiedTime,
+ lastModified: modifiedTime,
+ })
+ ).guid;
+ let bms = [];
+ await bm.fetch({ url }, bm1 => bms.push(bm1));
+ Assert.equal(bms[0].guid, item1Guid);
+ Assert.equal(bms[1].guid, item2Guid);
+ await bm.update({ guid: item2Guid, title: "modified" });
+
+ let bms1 = [];
+ await bm.fetch({ url }, bm2 => bms1.push(bm2));
+ Assert.equal(bms1[0].guid, item2Guid);
+ Assert.equal(bms1[1].guid, item1Guid);
+});