mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
162 lines
4.7 KiB
JavaScript
162 lines
4.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
function check_bookmark_keyword(aItemId, aKeyword)
|
|
{
|
|
let keyword = aKeyword ? aKeyword.toLowerCase() : null;
|
|
do_check_eq(PlacesUtils.bookmarks.getKeywordForBookmark(aItemId),
|
|
keyword);
|
|
}
|
|
|
|
function check_uri_keyword(aURI, aKeyword)
|
|
{
|
|
let keyword = aKeyword ? aKeyword.toLowerCase() : null;
|
|
do_check_eq(PlacesUtils.bookmarks.getKeywordForURI(aURI),
|
|
keyword);
|
|
|
|
if (aKeyword) {
|
|
// This API can't tell which uri the user wants, so it returns a random one.
|
|
let re = /http:\/\/test[0-9]\.mozilla\.org/;
|
|
let url = PlacesUtils.bookmarks.getURIForKeyword(aKeyword).spec;
|
|
do_check_true(re.test(url));
|
|
// Check case insensitivity.
|
|
url = PlacesUtils.bookmarks.getURIForKeyword(aKeyword.toUpperCase()).spec
|
|
do_check_true(re.test(url));
|
|
}
|
|
}
|
|
|
|
function check_orphans()
|
|
{
|
|
stmt = DBConn().createStatement(
|
|
"SELECT id FROM moz_keywords k WHERE NOT EXISTS ("
|
|
+ "SELECT id FROM moz_bookmarks WHERE keyword_id = k.id "
|
|
+ ")"
|
|
);
|
|
try {
|
|
do_check_false(stmt.executeStep());
|
|
} finally {
|
|
stmt.finalize();
|
|
}
|
|
|
|
print("Check there are no orphan database entries");
|
|
let stmt = DBConn().createStatement(
|
|
"SELECT b.id FROM moz_bookmarks b "
|
|
+ "LEFT JOIN moz_keywords k ON b.keyword_id = k.id "
|
|
+ "WHERE keyword_id NOTNULL AND k.id ISNULL"
|
|
);
|
|
try {
|
|
do_check_false(stmt.executeStep());
|
|
} finally {
|
|
stmt.finalize();
|
|
}
|
|
}
|
|
|
|
const URIS = [
|
|
uri("http://test1.mozilla.org/"),
|
|
uri("http://test2.mozilla.org/"),
|
|
];
|
|
|
|
add_test(function test_addBookmarkWithKeyword()
|
|
{
|
|
check_uri_keyword(URIS[0], null);
|
|
|
|
let itemId =
|
|
PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
|
|
URIS[0],
|
|
PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
"test");
|
|
PlacesUtils.bookmarks.setKeywordForBookmark(itemId, "keyword");
|
|
check_bookmark_keyword(itemId, "keyword");
|
|
check_uri_keyword(URIS[0], "keyword");
|
|
|
|
promiseAsyncUpdates().then(function() {
|
|
check_orphans();
|
|
run_next_test();
|
|
});
|
|
});
|
|
|
|
add_test(function test_addBookmarkToURIHavingKeyword()
|
|
{
|
|
let itemId =
|
|
PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
|
|
URIS[0],
|
|
PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
"test");
|
|
// The uri has a keyword, but this specific bookmark has not.
|
|
check_bookmark_keyword(itemId, null);
|
|
check_uri_keyword(URIS[0], "keyword");
|
|
|
|
promiseAsyncUpdates().then(function() {
|
|
check_orphans();
|
|
run_next_test();
|
|
});
|
|
});
|
|
|
|
add_test(function test_addSameKeywordToOtherURI()
|
|
{
|
|
let itemId =
|
|
PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
|
|
URIS[1],
|
|
PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
"test2");
|
|
check_bookmark_keyword(itemId, null);
|
|
check_uri_keyword(URIS[1], null);
|
|
|
|
PlacesUtils.bookmarks.setKeywordForBookmark(itemId, "kEyWoRd");
|
|
check_bookmark_keyword(itemId, "kEyWoRd");
|
|
check_uri_keyword(URIS[1], "kEyWoRd");
|
|
|
|
// Check case insensitivity.
|
|
check_uri_keyword(URIS[0], "kEyWoRd");
|
|
check_bookmark_keyword(itemId, "keyword");
|
|
check_uri_keyword(URIS[1], "keyword");
|
|
check_uri_keyword(URIS[0], "keyword");
|
|
|
|
promiseAsyncUpdates().then(function() {
|
|
check_orphans();
|
|
run_next_test();
|
|
});
|
|
});
|
|
|
|
add_test(function test_removeBookmarkWithKeyword()
|
|
{
|
|
let itemId =
|
|
PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
|
|
URIS[1],
|
|
PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
"test");
|
|
PlacesUtils.bookmarks.setKeywordForBookmark(itemId, "keyword");
|
|
check_bookmark_keyword(itemId, "keyword");
|
|
check_uri_keyword(URIS[1], "keyword");
|
|
|
|
// The keyword should not be removed from other bookmarks.
|
|
PlacesUtils.bookmarks.removeItem(itemId);
|
|
|
|
check_uri_keyword(URIS[1], "keyword");
|
|
check_uri_keyword(URIS[0], "keyword");
|
|
|
|
promiseAsyncUpdates().then(function() {
|
|
check_orphans();
|
|
run_next_test();
|
|
});
|
|
});
|
|
|
|
add_test(function test_removeFolderWithKeywordedBookmarks()
|
|
{
|
|
// Keyword should be removed as well.
|
|
PlacesUtils.bookmarks.removeFolderChildren(PlacesUtils.unfiledBookmarksFolderId);
|
|
|
|
check_uri_keyword(URIS[1], null);
|
|
check_uri_keyword(URIS[0], null);
|
|
|
|
promiseAsyncUpdates().then(function() {
|
|
check_orphans();
|
|
run_next_test();
|
|
});
|
|
});
|
|
|
|
function run_test()
|
|
{
|
|
run_next_test();
|
|
}
|