Bug 855190 - Use new async getCharsetForURI in /toolkit/components/places/tests/unit/test_bookmarks_json.js. r=mak

This commit is contained in:
Raymond Lee 2013-04-15 12:20:48 +08:00
Родитель 53ca4cbef7
Коммит fe05965115
2 изменённых файлов: 91 добавлений и 83 удалений

Просмотреть файл

@ -306,9 +306,8 @@ function testImportedBookmarksToFolder(aFolder)
function checkItem(aExpected, aNode)
{
let id = aNode.itemId;
let deferred = Promise.defer();
Task.spawn(function() {
return Task.spawn(function() {
for (prop in aExpected) {
switch (prop) {
case "type":
@ -401,7 +400,5 @@ function checkItem(aExpected, aNode)
throw new Error("Unknown property");
}
}
}).then(deferred.resolve);
return deferred.promise;
});
}

Просмотреть файл

@ -78,7 +78,7 @@ add_task(function test_import_bookmarks() {
bookmarksFile = do_get_file("bookmarks.json");
yield BookmarkJSONUtils.importFromFile(bookmarksFile, true);
testImportedBookmarks();
yield testImportedBookmarks();
});
add_task(function test_export_bookmarks() {
@ -90,7 +90,7 @@ add_task(function test_export_bookmarks() {
add_task(function test_import_exported_bookmarks() {
remove_all_bookmarks();
yield BookmarkJSONUtils.importFromFile(bookmarksExportedFile, true);
testImportedBookmarks();
yield testImportedBookmarks();
});
add_task(function test_import_ontop() {
@ -98,7 +98,7 @@ add_task(function test_import_ontop() {
yield BookmarkJSONUtils.importFromFile(bookmarksExportedFile, true);
yield BookmarkJSONUtils.exportToFile(bookmarksExportedFile);
yield BookmarkJSONUtils.importFromFile(bookmarksExportedFile, true);
testImportedBookmarks();
yield testImportedBookmarks();
});
add_task(function test_clean() {
@ -128,7 +128,9 @@ function testImportedBookmarks() {
let items = test_bookmarks[group];
do_check_eq(root.childCount, items.length);
items.forEach(function (item, index) checkItem(item, root.getChild(index)));
for (let key in items) {
yield checkItem(items[key], root.getChild(key));
}
root.containerOpen = false;
}
@ -136,85 +138,94 @@ function testImportedBookmarks() {
function checkItem(aExpected, aNode) {
let id = aNode.itemId;
for (prop in aExpected) {
switch (prop) {
case "type":
do_check_eq(aNode.type, aExpected.type);
break;
case "title":
do_check_eq(aNode.title, aExpected.title);
break;
case "description":
do_check_eq(PlacesUtils.annotations.getItemAnnotation(
id, DESCRIPTION_ANNO), aExpected.description);
break;
case "dateAdded":
return Task.spawn(function() {
for (prop in aExpected) {
switch (prop) {
case "type":
do_check_eq(aNode.type, aExpected.type);
break;
case "title":
do_check_eq(aNode.title, aExpected.title);
break;
case "description":
do_check_eq(PlacesUtils.annotations.getItemAnnotation(
id, DESCRIPTION_ANNO), aExpected.description);
break;
case "dateAdded":
do_check_eq(PlacesUtils.bookmarks.getItemDateAdded(id),
aExpected.dateAdded);
break;
case "lastModified":
break;
case "lastModified":
do_check_eq(PlacesUtils.bookmarks.getItemLastModified(id),
aExpected.lastModified);
break;
case "url":
PlacesUtils.livemarks.getLivemark(
{ id: id },
function (aStatus, aLivemark) {
if (!Components.isSuccessCode(aStatus)) {
do_check_eq(aNode.uri, aExpected.url);
}
}
);
break;
case "icon":
let deferred = Promise.defer();
PlacesUtils.favicons.getFaviconDataForPage(
NetUtil.newURI(aExpected.url),
function (aURI, aDataLen, aData, aMimeType) {
let base64Icon = "data:image/png;base64," +
base64EncodeString(String.fromCharCode.apply(String, aData));
do_check_true(base64Icon == aExpected.icon);
deferred.resolve();
});
return deferred.promise;
break;
case "keyword":
break;
case "sidebar":
do_check_eq(PlacesUtils.annotations.itemHasAnnotation(
id, LOAD_IN_SIDEBAR_ANNO), aExpected.sidebar);
break;
case "postData":
do_check_eq(PlacesUtils.annotations.getItemAnnotation(
id, PlacesUtils.POST_DATA_ANNO), aExpected.postData);
break;
case "charset":
do_check_eq(PlacesUtils.history.getCharsetForURI(
NetUtil.newURI(aNode.uri)), aExpected.charset);
break;
case "feedUrl":
PlacesUtils.livemarks.getLivemark(
{ id: id },
function (aStatus, aLivemark) {
do_check_true(Components.isSuccessCode(aStatus));
do_check_eq(aLivemark.siteURI.spec, aExpected.url);
do_check_eq(aLivemark.feedURI.spec, Expected.feedUrl);
}
);
break;
case "children":
let folder = aNode.QueryInterface(Ci.nsINavHistoryContainerResultNode);
do_check_eq(folder.hasChildren, aExpected.children.length > 0);
folder.containerOpen = true;
do_check_eq(folder.childCount, aExpected.children.length);
break;
case "url":
yield function() {
let deferred = Promise.defer();
PlacesUtils.livemarks.getLivemark(
{ id: id },
function (aStatus, aLivemark) {
if (!Components.isSuccessCode(aStatus)) {
do_check_eq(aNode.uri, aExpected.url);
}
deferred.resolve();
});
return deferred.promise; }();
break;
case "icon":
yield function() {
let deferred = Promise.defer();
PlacesUtils.favicons.getFaviconDataForPage(
NetUtil.newURI(aExpected.url),
function (aURI, aDataLen, aData, aMimeType) {
let base64Icon = "data:image/png;base64," +
base64EncodeString(String.fromCharCode.apply(String, aData));
do_check_true(base64Icon == aExpected.icon);
deferred.resolve();
});
return deferred.promise; }();
break;
case "keyword":
break;
case "sidebar":
do_check_eq(PlacesUtils.annotations.itemHasAnnotation(
id, LOAD_IN_SIDEBAR_ANNO), aExpected.sidebar);
break;
case "postData":
do_check_eq(PlacesUtils.annotations.getItemAnnotation(
id, PlacesUtils.POST_DATA_ANNO), aExpected.postData);
break;
case "charset":
let testURI = NetUtil.newURI(aNode.uri);
do_check_eq((yield PlacesUtils.getCharsetForURI(testURI)), aExpected.charset);
break;
case "feedUrl":
yield function() {
let deferred = Promise.defer();
PlacesUtils.livemarks.getLivemark(
{ id: id },
function (aStatus, aLivemark) {
do_check_true(Components.isSuccessCode(aStatus));
do_check_eq(aLivemark.siteURI.spec, aExpected.url);
do_check_eq(aLivemark.feedURI.spec, aExpected.feedUrl);
deferred.resolve();
});
return deferred.promise; }();
break;
case "children":
let folder = aNode.QueryInterface(Ci.nsINavHistoryContainerResultNode);
do_check_eq(folder.hasChildren, aExpected.children.length > 0);
folder.containerOpen = true;
do_check_eq(folder.childCount, aExpected.children.length);
aExpected.children.forEach(
function (item, index) checkItem(item, folder.getChild(index)));
aExpected.children.forEach(function (item, index) checkItem(item, folder.getChild(index)));
folder.containerOpen = false;
break;
default:
throw new Error("Unknown property");
folder.containerOpen = false;
break;
default:
throw new Error("Unknown property");
}
}
};
});
}