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