mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-10 01:07:31 +09:00
116 lines
6.3 KiB
JavaScript
116 lines
6.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
add_task(function* test_eraseEverything() {
|
|
yield PlacesTestUtils.addVisits({ uri: NetUtil.newURI("http://example.com/") });
|
|
yield PlacesTestUtils.addVisits({ uri: NetUtil.newURI("http://mozilla.org/") });
|
|
let frecencyForExample = frecencyForUrl("http://example.com/");
|
|
let frecencyForMozilla = frecencyForUrl("http://example.com/");
|
|
Assert.ok(frecencyForExample > 0);
|
|
Assert.ok(frecencyForMozilla > 0);
|
|
let unfiledFolder = yield PlacesUtils.bookmarks.insert({ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
|
|
type: PlacesUtils.bookmarks.TYPE_FOLDER });
|
|
checkBookmarkObject(unfiledFolder);
|
|
let unfiledBookmark = yield PlacesUtils.bookmarks.insert({ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
|
|
type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
|
|
url: "http://example.com/" });
|
|
checkBookmarkObject(unfiledBookmark);
|
|
let unfiledBookmarkInFolder =
|
|
yield PlacesUtils.bookmarks.insert({ parentGuid: unfiledFolder.guid,
|
|
type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
|
|
url: "http://mozilla.org/" });
|
|
checkBookmarkObject(unfiledBookmarkInFolder);
|
|
PlacesUtils.annotations.setItemAnnotation((yield PlacesUtils.promiseItemId(unfiledBookmarkInFolder.guid)),
|
|
"testanno1", "testvalue1", 0, 0);
|
|
|
|
let menuFolder = yield PlacesUtils.bookmarks.insert({ parentGuid: PlacesUtils.bookmarks.menuGuid,
|
|
type: PlacesUtils.bookmarks.TYPE_FOLDER });
|
|
checkBookmarkObject(menuFolder);
|
|
let menuBookmark = yield PlacesUtils.bookmarks.insert({ parentGuid: PlacesUtils.bookmarks.menuGuid,
|
|
type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
|
|
url: "http://example.com/" });
|
|
checkBookmarkObject(menuBookmark);
|
|
let menuBookmarkInFolder =
|
|
yield PlacesUtils.bookmarks.insert({ parentGuid: menuFolder.guid,
|
|
type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
|
|
url: "http://mozilla.org/" });
|
|
checkBookmarkObject(menuBookmarkInFolder);
|
|
PlacesUtils.annotations.setItemAnnotation((yield PlacesUtils.promiseItemId(menuBookmarkInFolder.guid)),
|
|
"testanno1", "testvalue1", 0, 0);
|
|
|
|
let toolbarFolder = yield PlacesUtils.bookmarks.insert({ parentGuid: PlacesUtils.bookmarks.toolbarGuid,
|
|
type: PlacesUtils.bookmarks.TYPE_FOLDER });
|
|
checkBookmarkObject(toolbarFolder);
|
|
let toolbarBookmark = yield PlacesUtils.bookmarks.insert({ parentGuid: PlacesUtils.bookmarks.toolbarGuid,
|
|
type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
|
|
url: "http://example.com/" });
|
|
checkBookmarkObject(toolbarBookmark);
|
|
let toolbarBookmarkInFolder =
|
|
yield PlacesUtils.bookmarks.insert({ parentGuid: toolbarFolder.guid,
|
|
type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
|
|
url: "http://mozilla.org/" });
|
|
checkBookmarkObject(toolbarBookmarkInFolder);
|
|
PlacesUtils.annotations.setItemAnnotation((yield PlacesUtils.promiseItemId(toolbarBookmarkInFolder.guid)),
|
|
"testanno1", "testvalue1", 0, 0);
|
|
|
|
yield PlacesTestUtils.promiseAsyncUpdates();
|
|
Assert.ok(frecencyForUrl("http://example.com/") > frecencyForExample);
|
|
Assert.ok(frecencyForUrl("http://example.com/") > frecencyForMozilla);
|
|
|
|
yield PlacesUtils.bookmarks.eraseEverything();
|
|
|
|
Assert.equal(frecencyForUrl("http://example.com/"), frecencyForExample);
|
|
Assert.equal(frecencyForUrl("http://example.com/"), frecencyForMozilla);
|
|
|
|
// Check there are no orphan annotations.
|
|
let conn = yield PlacesUtils.promiseDBConnection();
|
|
let annoAttrs = yield conn.execute(`SELECT id, name FROM moz_anno_attributes`);
|
|
// Bug 1306445 will eventually remove the mobile root anno.
|
|
Assert.equal(annoAttrs.length, 1);
|
|
Assert.equal(annoAttrs[0].getResultByName("name"), PlacesUtils.MOBILE_ROOT_ANNO);
|
|
let annos = rows = yield conn.execute(`SELECT item_id, anno_attribute_id FROM moz_items_annos`);
|
|
Assert.equal(annos.length, 1);
|
|
Assert.equal(annos[0].getResultByName("item_id"), PlacesUtils.mobileFolderId);
|
|
Assert.equal(annos[0].getResultByName("anno_attribute_id"), annoAttrs[0].getResultByName("id"));
|
|
});
|
|
|
|
add_task(function* test_eraseEverything_roots() {
|
|
yield PlacesUtils.bookmarks.eraseEverything();
|
|
|
|
// Ensure the roots have not been removed.
|
|
Assert.ok(yield PlacesUtils.bookmarks.fetch(PlacesUtils.bookmarks.unfiledGuid));
|
|
Assert.ok(yield PlacesUtils.bookmarks.fetch(PlacesUtils.bookmarks.toolbarGuid));
|
|
Assert.ok(yield PlacesUtils.bookmarks.fetch(PlacesUtils.bookmarks.menuGuid));
|
|
Assert.ok(yield PlacesUtils.bookmarks.fetch(PlacesUtils.bookmarks.tagsGuid));
|
|
Assert.ok(yield PlacesUtils.bookmarks.fetch(PlacesUtils.bookmarks.rootGuid));
|
|
});
|
|
|
|
add_task(function* test_eraseEverything_reparented() {
|
|
// Create a folder with 1 bookmark in it...
|
|
let folder1 = yield PlacesUtils.bookmarks.insert({
|
|
parentGuid: PlacesUtils.bookmarks.toolbarGuid,
|
|
type: PlacesUtils.bookmarks.TYPE_FOLDER
|
|
});
|
|
let bookmark1 = yield PlacesUtils.bookmarks.insert({
|
|
parentGuid: folder1.guid,
|
|
url: "http://example.com/"
|
|
});
|
|
// ...and a second folder.
|
|
let folder2 = yield PlacesUtils.bookmarks.insert({
|
|
parentGuid: PlacesUtils.bookmarks.toolbarGuid,
|
|
type: PlacesUtils.bookmarks.TYPE_FOLDER
|
|
});
|
|
|
|
// Reparent the bookmark to the 2nd folder.
|
|
bookmark1.parentGuid = folder2.guid;
|
|
yield PlacesUtils.bookmarks.update(bookmark1);
|
|
|
|
// Erase everything.
|
|
yield PlacesUtils.bookmarks.eraseEverything();
|
|
|
|
// All the above items should no longer be in the GUIDHelper cache.
|
|
for (let guid of [folder1.guid, bookmark1.guid, folder2.guid]) {
|
|
yield Assert.rejects(PlacesUtils.promiseItemId(guid),
|
|
/no item found for the given GUID/);
|
|
}
|
|
});
|