| Index: chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java
|
| index 2f10b9157bf80143614f7941ebdf8acc9789078c..e496be4520ddfebb0239ec838c7996bbea9ab631 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java
|
| @@ -4,6 +4,7 @@
|
|
|
| package org.chromium.chrome.browser.bookmarks;
|
|
|
| +import android.support.test.filters.MediumTest;
|
| import android.support.test.filters.SmallTest;
|
| import android.support.v7.widget.RecyclerView;
|
| import android.text.TextUtils;
|
| @@ -32,6 +33,7 @@ import org.chromium.ui.base.DeviceFormFactor;
|
|
|
| import java.util.ArrayList;
|
| import java.util.concurrent.Callable;
|
| +import java.util.concurrent.ExecutionException;
|
|
|
| /**
|
| * Tests for the bookmark manager.
|
| @@ -43,19 +45,24 @@ public class BookmarkTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| super(ChromeActivity.class);
|
| }
|
|
|
| - private static final String TEST_PAGE = "/chrome/test/data/android/google.html";
|
| - private static final String TEST_PAGE_TITLE = "The Google";
|
| + private static final String TEST_PAGE_URL_GOOGLE = "/chrome/test/data/android/google.html";
|
| + private static final String TEST_PAGE_TITLE_GOOGLE = "The Google";
|
| + private static final String TEST_PAGE_TITLE_GOOGLE2 = "Google";
|
| + private static final String TEST_PAGE_URL_FOO = "/chrome/test/data/android/test.html";
|
| + private static final String TEST_PAGE_TITLE_FOO = "Foo";
|
|
|
| private BookmarkModel mBookmarkModel;
|
| protected RecyclerView mItemsContainer;
|
| private String mTestPage;
|
| + private String mTestPageFoo;
|
| private EmbeddedTestServer mTestServer;
|
|
|
| @Override
|
| protected void setUp() throws Exception {
|
| super.setUp();
|
| mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
|
| - mTestPage = mTestServer.getURL(TEST_PAGE);
|
| + mTestPage = mTestServer.getURL(TEST_PAGE_URL_GOOGLE);
|
| + mTestPageFoo = mTestServer.getURL(TEST_PAGE_URL_FOO);
|
| }
|
|
|
| @Override
|
| @@ -125,31 +132,25 @@ public class BookmarkTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| BookmarkItem item = mBookmarkModel.getBookmarkById(id);
|
| assertEquals(mBookmarkModel.getDefaultFolder(), item.getParentId());
|
| assertEquals(mTestPage, item.getUrl());
|
| - assertEquals(TEST_PAGE_TITLE, item.getTitle());
|
| + assertEquals(TEST_PAGE_TITLE_GOOGLE, item.getTitle());
|
| }
|
| });
|
| }
|
|
|
| @SmallTest
|
| - public void testOpenBookmark() throws InterruptedException {
|
| - ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - mBookmarkModel.addBookmark(mBookmarkModel.getDefaultFolder(), 0, TEST_PAGE_TITLE,
|
| - mTestPage);
|
| - }
|
| - });
|
| + public void testOpenBookmark() throws InterruptedException, ExecutionException {
|
| + addBookmark(TEST_PAGE_TITLE_GOOGLE, mTestPage);
|
| openBookmarkManager();
|
| assertTrue("Grid view does not contain added bookmark: ",
|
| - isItemPresentInBookmarkList(TEST_PAGE_TITLE));
|
| - final View tile = getViewWithText(mItemsContainer, TEST_PAGE_TITLE);
|
| + isItemPresentInBookmarkList(TEST_PAGE_TITLE_GOOGLE));
|
| + final View tile = getViewWithText(mItemsContainer, TEST_PAGE_TITLE_GOOGLE);
|
| ChromeTabUtils.waitForTabPageLoaded(getActivity().getActivityTab(), new Runnable() {
|
| @Override
|
| public void run() {
|
| TouchCommon.singleClickView(tile);
|
| }
|
| });
|
| - assertEquals(TEST_PAGE_TITLE, getActivity().getActivityTab().getTitle());
|
| + assertEquals(TEST_PAGE_TITLE_GOOGLE, getActivity().getActivityTab().getTitle());
|
| }
|
|
|
| @SmallTest
|
| @@ -175,6 +176,57 @@ public class BookmarkTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| BookmarkUtils.getLastUsedUrl(getActivity()));
|
| }
|
|
|
| + @MediumTest
|
| + public void testSearchBookmarks() throws Exception {
|
| + BookmarkPromoHeader.setShouldShowForTests();
|
| + addBookmark(TEST_PAGE_TITLE_GOOGLE, mTestPage);
|
| + addBookmark(TEST_PAGE_TITLE_FOO, mTestPageFoo);
|
| + openBookmarkManager();
|
| +
|
| + BookmarkItemsAdapter adapter = ((BookmarkItemsAdapter) mItemsContainer.getAdapter());
|
| + final BookmarkDelegate delegate = adapter.getDelegateForTesting();
|
| +
|
| + assertEquals(BookmarkUIState.STATE_FOLDER, delegate.getCurrentState());
|
| + assertEquals("Wrong number of items before starting search.", 3, adapter.getItemCount());
|
| +
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + delegate.openSearchUI();
|
| + }
|
| + });
|
| +
|
| + assertEquals(BookmarkUIState.STATE_SEARCHING, delegate.getCurrentState());
|
| + assertEquals("Wrong number of items after showing search UI. The promo should be hidden.",
|
| + 2, adapter.getItemCount());
|
| +
|
| + searchBookmarks("Google");
|
| + assertEquals("Wrong number of items after searching.", 1,
|
| + mItemsContainer.getAdapter().getItemCount());
|
| +
|
| + BookmarkId newBookmark = addBookmark(TEST_PAGE_TITLE_GOOGLE2, mTestPage);
|
| + assertEquals("Wrong number of items after bookmark added while searching.", 2,
|
| + mItemsContainer.getAdapter().getItemCount());
|
| +
|
| + removeBookmark(newBookmark);
|
| + assertEquals("Wrong number of items after bookmark removed while searching.", 1,
|
| + mItemsContainer.getAdapter().getItemCount());
|
| +
|
| + searchBookmarks("Non-existent page");
|
| + assertEquals("Wrong number of items after searching for non-existent item.", 0,
|
| + mItemsContainer.getAdapter().getItemCount());
|
| +
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + delegate.closeSearchUI();
|
| + }
|
| + });
|
| + assertEquals("Wrong number of items after closing search UI.", 3,
|
| + mItemsContainer.getAdapter().getItemCount());
|
| + assertEquals(BookmarkUIState.STATE_FOLDER, delegate.getCurrentState());
|
| + }
|
| +
|
| /**
|
| * Returns the View that has the given text.
|
| *
|
| @@ -201,4 +253,31 @@ public class BookmarkTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| }
|
| });
|
| }
|
| +
|
| + private BookmarkId addBookmark(final String title, final String url) throws ExecutionException {
|
| + return ThreadUtils.runOnUiThreadBlocking(new Callable<BookmarkId>() {
|
| + @Override
|
| + public BookmarkId call() throws Exception {
|
| + return mBookmarkModel.addBookmark(mBookmarkModel.getDefaultFolder(), 0, title, url);
|
| + }
|
| + });
|
| + }
|
| +
|
| + private void removeBookmark(final BookmarkId bookmarkId) {
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mBookmarkModel.deleteBookmark(bookmarkId);
|
| + }
|
| + });
|
| + }
|
| +
|
| + private void searchBookmarks(final String query) {
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + ((BookmarkItemsAdapter) mItemsContainer.getAdapter()).search(query);
|
| + }
|
| + });
|
| + }
|
| }
|
|
|