diff options
-rw-r--r-- | src/com/android/browser/Bookmarks.java | 19 | ||||
-rw-r--r-- | tests/src/com/android/browser/tests/BookmarksTests.java | 64 |
2 files changed, 68 insertions, 15 deletions
diff --git a/src/com/android/browser/Bookmarks.java b/src/com/android/browser/Bookmarks.java index beea489e..e7dc7290 100644 --- a/src/com/android/browser/Bookmarks.java +++ b/src/com/android/browser/Bookmarks.java @@ -39,7 +39,7 @@ import java.io.ByteArrayOutputStream; /** * This class is purely to have a common place for adding/deleting bookmarks. */ -/* package */ class Bookmarks { +public class Bookmarks { // We only want the user to be able to bookmark content that // the browser can handle directly. private static final String acceptableBookmarkSchemes[] = { @@ -162,11 +162,9 @@ import java.io.ByteArrayOutputStream; static final String QUERY_BOOKMARKS_WHERE = Combined.URL + " == ? OR " + - Combined.URL + " == ? OR " + - Combined.URL + " LIKE ? || '%' OR " + - Combined.URL + " LIKE ? || '%'"; + Combined.URL + " == ?"; - /* package */ static Cursor queryCombinedForUrl(ContentResolver cr, + public static Cursor queryCombinedForUrl(ContentResolver cr, String originalUrl, String url) { if (cr == null || url == null) { return null; @@ -179,17 +177,8 @@ import java.io.ByteArrayOutputStream; // Look for both the original url and the actual url. This takes in to // account redirects. - String originalUrlNoQuery = removeQuery(originalUrl); - String urlNoQuery = removeQuery(url); - originalUrl = originalUrlNoQuery + '?'; - url = urlNoQuery + '?'; - // Use NoQuery to search for the base url (i.e. if the url is - // http://www.yahoo.com/?rs=1, search for http://www.yahoo.com) - // Use url to match the base url with other queries (i.e. if the url is - // http://www.google.com/m, search for - // http://www.google.com/m?some_query) - final String[] selArgs = new String[] { originalUrlNoQuery, urlNoQuery, originalUrl, url }; + final String[] selArgs = new String[] { originalUrl, url }; final String[] projection = new String[] { Combined.URL }; return cr.query(Combined.CONTENT_URI, projection, QUERY_BOOKMARKS_WHERE, selArgs, null); } diff --git a/tests/src/com/android/browser/tests/BookmarksTests.java b/tests/src/com/android/browser/tests/BookmarksTests.java new file mode 100644 index 00000000..bd1a1b24 --- /dev/null +++ b/tests/src/com/android/browser/tests/BookmarksTests.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.browser.tests; + +import com.android.browser.Bookmarks; +import com.android.browser.tests.utils.BP2TestCaseHelper; + +import android.content.ContentResolver; +import android.database.Cursor; +import android.test.suitebuilder.annotation.SmallTest; + +/** + * Extends from BP2TestCaseHelper for the helper methods + * and to get the mock database + */ +@SmallTest +public class BookmarksTests extends BP2TestCaseHelper { + + public void testQueryCombinedForUrl() { + // First, add some bookmarks + assertNotNull(insertBookmark( + "http://google.com/search?q=test", "Test search")); + assertNotNull(insertBookmark( + "http://google.com/search?q=mustang", "Mustang search")); + assertNotNull(insertBookmark( + "http://google.com/search?q=aliens", "Aliens search")); + ContentResolver cr = getMockContentResolver(); + + Cursor c = null; + try { + // First, search for a match + String url = "http://google.com/search?q=test"; + c = Bookmarks.queryCombinedForUrl(cr, null, url); + assertEquals(1, c.getCount()); + assertTrue(c.moveToFirst()); + assertEquals(url, c.getString(0)); + c.close(); + + // Next, search for no match + url = "http://google.com/search"; + c = Bookmarks.queryCombinedForUrl(cr, null, url); + assertEquals(0, c.getCount()); + assertFalse(c.moveToFirst()); + c.close(); + } finally { + if (c != null) c.close(); + } + } + +} |