mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Backed out changeset 9c8eac7852f6 (bug 745410) for build failures a=backout
MozReview-Commit-ID: JY6fS63iCwJ
This commit is contained in:
parent
6f57ff6e9f
commit
0cca2c83d5
@ -74,6 +74,7 @@ function isSyncedRootNode(node) {
|
||||
function getTypeObject(type) {
|
||||
switch (type) {
|
||||
case "bookmark":
|
||||
case "microsummary":
|
||||
return Bookmark;
|
||||
case "query":
|
||||
return BookmarkQuery;
|
||||
@ -383,6 +384,7 @@ BookmarksEngine.prototype = {
|
||||
}
|
||||
// No queryID? Fall through to the regular bookmark case.
|
||||
case "bookmark":
|
||||
case "microsummary":
|
||||
key = "b" + item.bmkUri + ":" + (item.title || "");
|
||||
break;
|
||||
case "folder":
|
||||
|
@ -0,0 +1,99 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
// Tests that Sync can correctly handle a legacy microsummary record
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/NetUtil.jsm");
|
||||
Cu.import("resource://gre/modules/PlacesUtils.jsm");
|
||||
|
||||
Cu.import("resource://gre/modules/Log.jsm");
|
||||
Cu.import("resource://services-sync/engines.js");
|
||||
Cu.import("resource://services-sync/engines/bookmarks.js");
|
||||
Cu.import("resource://services-sync/record.js");
|
||||
Cu.import("resource://services-sync/service.js");
|
||||
Cu.import("resource://services-sync/util.js");
|
||||
|
||||
const GENERATORURI_ANNO = "microsummary/generatorURI";
|
||||
const STATICTITLE_ANNO = "bookmarks/staticTitle";
|
||||
|
||||
const TEST_URL = "http://micsum.mozilla.org/";
|
||||
const TEST_TITLE = "A microsummarized bookmark"
|
||||
const GENERATOR_URL = "http://generate.micsum/"
|
||||
const STATIC_TITLE = "Static title"
|
||||
|
||||
function newMicrosummary(url, title) {
|
||||
let id = PlacesUtils.bookmarks.insertBookmark(
|
||||
PlacesUtils.unfiledBookmarksFolderId, NetUtil.newURI(url),
|
||||
PlacesUtils.bookmarks.DEFAULT_INDEX, title
|
||||
);
|
||||
PlacesUtils.annotations.setItemAnnotation(id, GENERATORURI_ANNO,
|
||||
GENERATOR_URL, 0,
|
||||
PlacesUtils.annotations.EXPIRE_NEVER);
|
||||
PlacesUtils.annotations.setItemAnnotation(id, STATICTITLE_ANNO,
|
||||
"Static title", 0,
|
||||
PlacesUtils.annotations.EXPIRE_NEVER);
|
||||
return id;
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
|
||||
Service.engineManager.register(BookmarksEngine);
|
||||
let engine = Service.engineManager.get("bookmarks");
|
||||
let store = engine._store;
|
||||
|
||||
// Clean up.
|
||||
store.wipe();
|
||||
|
||||
initTestLogging("Trace");
|
||||
Log.repository.getLogger("Sync.Engine.Bookmarks").level = Log.Level.Trace;
|
||||
|
||||
_("Create a microsummarized bookmark.");
|
||||
let id = newMicrosummary(TEST_URL, TEST_TITLE);
|
||||
let guid = store.GUIDForId(id);
|
||||
_("GUID: " + guid);
|
||||
do_check_true(!!guid);
|
||||
|
||||
_("Create record object and verify that it's sane.");
|
||||
let record = store.createRecord(guid);
|
||||
do_check_true(record instanceof Bookmark);
|
||||
do_check_eq(record.bmkUri, TEST_URL);
|
||||
|
||||
_("Make sure the new record does not carry the microsummaries annotations.");
|
||||
do_check_false("staticTitle" in record);
|
||||
do_check_false("generatorUri" in record);
|
||||
|
||||
_("Remove the bookmark from Places.");
|
||||
PlacesUtils.bookmarks.removeItem(id);
|
||||
|
||||
_("Convert record to the old microsummaries one.");
|
||||
record.staticTitle = STATIC_TITLE;
|
||||
record.generatorUri = GENERATOR_URL;
|
||||
record.type = "microsummary";
|
||||
|
||||
_("Apply the modified record as incoming data.");
|
||||
store.applyIncoming(record);
|
||||
|
||||
_("Verify it has been created correctly as a simple Bookmark.");
|
||||
id = store.idForGUID(record.id);
|
||||
do_check_eq(store.GUIDForId(id), record.id);
|
||||
do_check_eq(PlacesUtils.bookmarks.getItemType(id),
|
||||
PlacesUtils.bookmarks.TYPE_BOOKMARK);
|
||||
do_check_eq(PlacesUtils.bookmarks.getBookmarkURI(id).spec, TEST_URL);
|
||||
do_check_eq(PlacesUtils.bookmarks.getItemTitle(id), TEST_TITLE);
|
||||
do_check_eq(PlacesUtils.bookmarks.getFolderIdForItem(id),
|
||||
PlacesUtils.unfiledBookmarksFolderId);
|
||||
do_check_eq(PlacesUtils.bookmarks.getKeywordForBookmark(id), null);
|
||||
|
||||
do_check_throws(
|
||||
() => PlacesUtils.annotations.getItemAnnotation(id, GENERATORURI_ANNO),
|
||||
Cr.NS_ERROR_NOT_AVAILABLE
|
||||
);
|
||||
|
||||
do_check_throws(
|
||||
() => PlacesUtils.annotations.getItemAnnotation(id, STATICTITLE_ANNO),
|
||||
Cr.NS_ERROR_NOT_AVAILABLE
|
||||
);
|
||||
|
||||
// Clean up.
|
||||
store.wipe();
|
||||
}
|
@ -87,6 +87,10 @@ const BookmarkSyncUtils = PlacesSyncUtils.bookmarks = Object.freeze({
|
||||
|
||||
KINDS: {
|
||||
BOOKMARK: "bookmark",
|
||||
// Microsummaries were removed from Places in bug 524091. For now, Sync
|
||||
// treats them identically to bookmarks. Bug 745410 tracks removing them
|
||||
// entirely.
|
||||
MICROSUMMARY: "microsummary",
|
||||
QUERY: "query",
|
||||
FOLDER: "folder",
|
||||
LIVEMARK: "livemark",
|
||||
@ -682,6 +686,7 @@ const BookmarkSyncUtils = PlacesSyncUtils.bookmarks = Object.freeze({
|
||||
let item;
|
||||
switch (kind) {
|
||||
case BookmarkSyncUtils.KINDS.BOOKMARK:
|
||||
case BookmarkSyncUtils.KINDS.MICROSUMMARY:
|
||||
item = yield fetchBookmarkItem(bookmarkItem);
|
||||
break;
|
||||
|
||||
@ -1105,6 +1110,7 @@ var getKindForItem = Task.async(function* (item) {
|
||||
function getTypeForKind(kind) {
|
||||
switch (kind) {
|
||||
case BookmarkSyncUtils.KINDS.BOOKMARK:
|
||||
case BookmarkSyncUtils.KINDS.MICROSUMMARY:
|
||||
case BookmarkSyncUtils.KINDS.QUERY:
|
||||
return PlacesUtils.bookmarks.TYPE_BOOKMARK;
|
||||
|
||||
@ -1331,25 +1337,32 @@ function validateNewBookmark(info) {
|
||||
{ kind: { required: true }
|
||||
, syncId: { required: true }
|
||||
, url: { requiredIf: b => [ BookmarkSyncUtils.KINDS.BOOKMARK
|
||||
, BookmarkSyncUtils.KINDS.MICROSUMMARY
|
||||
, BookmarkSyncUtils.KINDS.QUERY ].includes(b.kind)
|
||||
, validIf: b => [ BookmarkSyncUtils.KINDS.BOOKMARK
|
||||
, BookmarkSyncUtils.KINDS.MICROSUMMARY
|
||||
, BookmarkSyncUtils.KINDS.QUERY ].includes(b.kind) }
|
||||
, parentSyncId: { required: true }
|
||||
, title: { validIf: b => [ BookmarkSyncUtils.KINDS.BOOKMARK
|
||||
, BookmarkSyncUtils.KINDS.MICROSUMMARY
|
||||
, BookmarkSyncUtils.KINDS.QUERY
|
||||
, BookmarkSyncUtils.KINDS.FOLDER
|
||||
, BookmarkSyncUtils.KINDS.LIVEMARK ].includes(b.kind) }
|
||||
, query: { validIf: b => b.kind == BookmarkSyncUtils.KINDS.QUERY }
|
||||
, folder: { validIf: b => b.kind == BookmarkSyncUtils.KINDS.QUERY }
|
||||
, tags: { validIf: b => [ BookmarkSyncUtils.KINDS.BOOKMARK
|
||||
, BookmarkSyncUtils.KINDS.MICROSUMMARY
|
||||
, BookmarkSyncUtils.KINDS.QUERY ].includes(b.kind) }
|
||||
, keyword: { validIf: b => [ BookmarkSyncUtils.KINDS.BOOKMARK
|
||||
, BookmarkSyncUtils.KINDS.MICROSUMMARY
|
||||
, BookmarkSyncUtils.KINDS.QUERY ].includes(b.kind) }
|
||||
, description: { validIf: b => [ BookmarkSyncUtils.KINDS.BOOKMARK
|
||||
, BookmarkSyncUtils.KINDS.MICROSUMMARY
|
||||
, BookmarkSyncUtils.KINDS.QUERY
|
||||
, BookmarkSyncUtils.KINDS.FOLDER
|
||||
, BookmarkSyncUtils.KINDS.LIVEMARK ].includes(b.kind) }
|
||||
, loadInSidebar: { validIf: b => [ BookmarkSyncUtils.KINDS.BOOKMARK
|
||||
, BookmarkSyncUtils.KINDS.MICROSUMMARY
|
||||
, BookmarkSyncUtils.KINDS.QUERY ].includes(b.kind) }
|
||||
, feed: { validIf: b => b.kind == BookmarkSyncUtils.KINDS.LIVEMARK }
|
||||
, site: { validIf: b => b.kind == BookmarkSyncUtils.KINDS.LIVEMARK }
|
||||
|
Loading…
Reference in New Issue
Block a user