gecko/toolkit/components/places/tests/unit/test_PlacesUtils_asyncGetBookmarkIds.js
2011-04-18 13:31:20 -07:00

87 lines
2.6 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* This file tests PlacesUtils.asyncGetBookmarkIds method.
*/
const TEST_URL = "http://www.example.com/";
[
function test_no_bookmark() {
PlacesUtils.asyncGetBookmarkIds(TEST_URL, function (aItemIds, aURI) {
do_check_eq(aItemIds.length, 0);
do_check_eq(aURI, TEST_URL);
run_next_test();
}, this);
},
function test_one_bookmark_nsIURI() {
let uri = NetUtil.newURI(TEST_URL);
let itemId = PlacesUtils.bookmarks.insertBookmark(
PlacesUtils.unfiledBookmarksFolderId, uri, "test",
PlacesUtils.bookmarks.DEFAULT_INDEX
);
PlacesUtils.asyncGetBookmarkIds(uri, function (aItemIds, aURI) {
do_check_eq(aItemIds.length, 1);
do_check_eq(aItemIds[0], itemId);
do_check_true(aURI.equals(uri));
PlacesUtils.bookmarks.removeItem(itemId);
run_next_test();
}, this);
},
function test_one_bookmark_spec() {
let uri = NetUtil.newURI(TEST_URL);
let itemId = PlacesUtils.bookmarks.insertBookmark(
PlacesUtils.unfiledBookmarksFolderId, uri, "test",
PlacesUtils.bookmarks.DEFAULT_INDEX
);
PlacesUtils.asyncGetBookmarkIds(TEST_URL, function (aItemIds, aURI) {
do_check_eq(aItemIds.length, 1);
do_check_eq(aItemIds[0], itemId);
do_check_eq(aURI, TEST_URL);
PlacesUtils.bookmarks.removeItem(itemId);
run_next_test();
}, this);
},
function test_multiple_bookmarks() {
let uri = NetUtil.newURI(TEST_URL);
let itemIds = [];
itemIds.push(PlacesUtils.bookmarks.insertBookmark(
PlacesUtils.unfiledBookmarksFolderId, uri, "test",
PlacesUtils.bookmarks.DEFAULT_INDEX
));
itemIds.push(PlacesUtils.bookmarks.insertBookmark(
PlacesUtils.unfiledBookmarksFolderId, uri, "test",
PlacesUtils.bookmarks.DEFAULT_INDEX
));
PlacesUtils.asyncGetBookmarkIds(uri, function (aItemIds, aURI) {
do_check_eq(aItemIds.length, 2);
do_check_true(do_compare_arrays(itemIds, aItemIds));
do_check_true(aURI.equals(uri));
itemIds.forEach(PlacesUtils.bookmarks.removeItem);
run_next_test();
}, this);
},
function test_cancel() {
let pending = PlacesUtils.asyncGetBookmarkIds(TEST_URL, function (aItemIds, aURI) {
do_throw("A canceled pending statement should not be invoked");
}, this);
pending.cancel();
PlacesUtils.asyncGetBookmarkIds(TEST_URL, function (aItemIds, aURI) {
do_check_eq(aItemIds.length, 0);
do_check_eq(aURI, TEST_URL);
run_next_test();
}, this);
},
].forEach(add_test);
function run_test() {
run_next_test();
}