mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-30 19:28:40 +09:00
96 lines
3.8 KiB
JavaScript
96 lines
3.8 KiB
JavaScript
/* -*- 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/. */
|
|
|
|
function run_test() {
|
|
let uri1 = NetUtil.newURI("http://foo.bar/");
|
|
|
|
// create 2 bookmarks
|
|
let bookmark1id = PlacesUtils.bookmarks
|
|
.insertBookmark(PlacesUtils.bookmarksMenuFolderId,
|
|
uri1,
|
|
PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
"title 1");
|
|
let bookmark2id = PlacesUtils.bookmarks
|
|
.insertBookmark(PlacesUtils.toolbarFolderId,
|
|
uri1,
|
|
PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
"title 2");
|
|
// add a new tag
|
|
PlacesUtils.tagging.tagURI(uri1, ["foo"]);
|
|
|
|
// get tag folder id
|
|
let options = PlacesUtils.history.getNewQueryOptions();
|
|
let query = PlacesUtils.history.getNewQuery();
|
|
query.setFolders([PlacesUtils.tagsFolderId], 1);
|
|
let result = PlacesUtils.history.executeQuery(query, options);
|
|
let tagRoot = result.root;
|
|
tagRoot.containerOpen = true;
|
|
let tagNode = tagRoot.getChild(0)
|
|
.QueryInterface(Ci.nsINavHistoryContainerResultNode);
|
|
let tagItemId = tagNode.itemId;
|
|
tagRoot.containerOpen = false;
|
|
|
|
// change bookmark 1 title
|
|
PlacesUtils.bookmarks.setItemTitle(bookmark1id, "new title 1");
|
|
|
|
// Workaround timers resolution and time skews.
|
|
let bookmark2LastMod = PlacesUtils.bookmarks.getItemLastModified(bookmark2id);
|
|
PlacesUtils.bookmarks.setItemLastModified(bookmark1id, bookmark2LastMod + 1000);
|
|
|
|
// Query the tag.
|
|
options = PlacesUtils.history.getNewQueryOptions();
|
|
options.queryType = Ci.nsINavHistoryQueryOptions.QUERY_TYPE_BOOKMARKS;
|
|
options.resultType = options.RESULTS_AS_TAG_QUERY;
|
|
|
|
query = PlacesUtils.history.getNewQuery();
|
|
result = PlacesUtils.history.executeQuery(query, options);
|
|
let root = result.root;
|
|
root.containerOpen = true;
|
|
do_check_eq(root.childCount, 1);
|
|
|
|
let theTag = root.getChild(0)
|
|
.QueryInterface(Ci.nsINavHistoryContainerResultNode);
|
|
// Bug 524219: Check that renaming the tag shows up in the result.
|
|
do_check_eq(theTag.title, "foo")
|
|
PlacesUtils.bookmarks.setItemTitle(tagItemId, "bar");
|
|
|
|
// Check that the item has been replaced
|
|
do_check_neq(theTag, root.getChild(0));
|
|
theTag = root.getChild(0)
|
|
.QueryInterface(Ci.nsINavHistoryContainerResultNode);
|
|
do_check_eq(theTag.title, "bar");
|
|
|
|
// Check that tag container contains new title
|
|
theTag.containerOpen = true;
|
|
do_check_eq(theTag.childCount, 1);
|
|
let node = theTag.getChild(0);
|
|
do_check_eq(node.title, "new title 1");
|
|
theTag.containerOpen = false;
|
|
root.containerOpen = false;
|
|
|
|
// Change bookmark 2 title.
|
|
PlacesUtils.bookmarks.setItemTitle(bookmark2id, "new title 2");
|
|
|
|
// Workaround timers resolution and time skews.
|
|
let bookmark1LastMod = PlacesUtils.bookmarks.getItemLastModified(bookmark1id);
|
|
PlacesUtils.bookmarks.setItemLastModified(bookmark2id, bookmark1LastMod + 1000);
|
|
|
|
// Check that tag container contains new title
|
|
options = PlacesUtils.history.getNewQueryOptions();
|
|
options.queryType = Ci.nsINavHistoryQueryOptions.QUERY_TYPE_BOOKMARKS;
|
|
options.resultType = options.RESULTS_AS_TAG_CONTENTS;
|
|
|
|
query = PlacesUtils.history.getNewQuery();
|
|
query.setFolders([tagItemId], 1);
|
|
result = PlacesUtils.history.executeQuery(query, options);
|
|
root = result.root;
|
|
|
|
root.containerOpen = true;
|
|
do_check_eq(root.childCount, 1);
|
|
node = root.getChild(0);
|
|
do_check_eq(node.title, "new title 2");
|
|
root.containerOpen = false;
|
|
}
|