Index: chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java |
index 01deb04d405a9cc834c9755b2206e5ccc1990dd8..8c7f09af0af682b2901ab61d37a7ce37c3ae9624 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkTest.java |
@@ -4,6 +4,8 @@ |
package org.chromium.chrome.browser.enhancedbookmarks; |
+import android.content.Intent; |
+import android.net.Uri; |
import android.test.suitebuilder.annotation.SmallTest; |
import android.text.TextUtils; |
import android.view.View; |
@@ -48,7 +50,7 @@ public class EnhancedBookmarkTest extends ChromeActivityTestCaseBase<ChromeActiv |
private static final String TEST_PAGE_TITLE = "The Google"; |
private EnhancedBookmarksModel mBookmarkModel; |
- private EnhancedBookmarkRecyclerView mItemsContainer; |
+ protected EnhancedBookmarkRecyclerView mItemsContainer; |
@Override |
public void startMainActivity() throws InterruptedException { |
@@ -105,6 +107,28 @@ public class EnhancedBookmarkTest extends ChromeActivityTestCaseBase<ChromeActiv |
} |
} |
+ private void openBookmarkManager(final String url) throws InterruptedException { |
+ if (DeviceFormFactor.isTablet(getActivity())) { |
+ loadUrl(url); |
+ mItemsContainer = (EnhancedBookmarkRecyclerView) getActivity().findViewById( |
+ R.id.eb_items_container); |
+ } else { |
+ // phone |
+ EnhancedBookmarkActivity activity = ActivityUtils.waitForActivity(getInstrumentation(), |
+ EnhancedBookmarkActivity.class, new Runnable() { |
+ @Override |
+ public void run() { |
+ Intent intent = new Intent(getActivity(), |
+ EnhancedBookmarkActivity.class); |
+ intent.setData(Uri.parse(url)); |
+ getActivity().startActivity(intent); |
+ } |
+ }); |
+ mItemsContainer = (EnhancedBookmarkRecyclerView) activity.findViewById( |
+ R.id.eb_items_container); |
+ } |
+ } |
+ |
private boolean isItemPresentInBookmarkList(final String expectedTitle) { |
return ThreadUtils.runOnUiThreadBlockingNoException(new Callable<Boolean>() { |
@Override |
@@ -166,4 +190,56 @@ public class EnhancedBookmarkTest extends ChromeActivityTestCaseBase<ChromeActiv |
}); |
assertEquals(TEST_PAGE_TITLE, getActivity().getActivityTab().getTitle()); |
} |
+ |
+ @SmallTest |
+ public void testUrlComposition() { |
+ BookmarkId mobileId = mBookmarkModel.getMobileFolderId(); |
+ BookmarkId bookmarkBarId = mBookmarkModel.getDesktopFolderId(); |
+ BookmarkId otherId = mBookmarkModel.getOtherFolderId(); |
+ assertEquals("chrome-native://bookmarks/folder/" + mobileId, |
+ EnhancedBookmarkUIState.createFolderUrl(mobileId)); |
+ assertEquals("chrome-native://bookmarks/folder/" + bookmarkBarId, |
+ EnhancedBookmarkUIState.createFolderUrl(bookmarkBarId)); |
+ assertEquals("chrome-native://bookmarks/folder/" + otherId, |
+ EnhancedBookmarkUIState.createFolderUrl(otherId)); |
+ |
+ assertEquals("chrome-native://bookmarks/filter/OFFLINE_PAGES", EnhancedBookmarkUIState |
+ .createFilterUrl(EnhancedBookmarkFilter.OFFLINE_PAGES, true)); |
+ assertEquals( |
+ "chrome-native://bookmarks/filter/OFFLINE_PAGES?should_persist=0", |
+ EnhancedBookmarkUIState.createFilterUrl(EnhancedBookmarkFilter.OFFLINE_PAGES, |
+ false)); |
+ } |
+ |
+ @SmallTest |
+ public void testOpenBookmarkManager() throws InterruptedException { |
+ openBookmarkManager(); |
+ EnhancedBookmarkDelegate delegate = mItemsContainer.getDelegateForTesting(); |
+ assertEquals(EnhancedBookmarkUIState.STATE_ALL_BOOKMARKS, delegate.getCurrentState()); |
+ assertEquals(UrlConstants.BOOKMARKS_URL, |
+ EnhancedBookmarkUtils.getLastUsedUrl(getActivity())); |
+ } |
+ |
+ @SmallTest |
+ @CommandLineFlags.Add(ChromeSwitches.ENABLE_OFFLINE_PAGES) |
+ public void testOpenBookmarkManagerInOfflinePagePersist() throws InterruptedException { |
+ EnhancedBookmarkUtils.setLastUsedUrl(getActivity(), UrlConstants.BOOKMARKS_URL); |
+ String url = "chrome-native://bookmarks/filter/OFFLINE_PAGES"; |
+ openBookmarkManager(url); |
+ EnhancedBookmarkDelegate delegate = mItemsContainer.getDelegateForTesting(); |
+ assertEquals(EnhancedBookmarkUIState.STATE_FILTER, delegate.getCurrentState()); |
+ assertEquals(url, EnhancedBookmarkUtils.getLastUsedUrl(getActivity())); |
+ } |
+ |
+ @SmallTest |
+ @CommandLineFlags.Add(ChromeSwitches.ENABLE_OFFLINE_PAGES) |
+ public void testOpenBookmarkManagerInOfflinePageNoPersist() throws InterruptedException { |
+ EnhancedBookmarkUtils.setLastUsedUrl(getActivity(), UrlConstants.BOOKMARKS_URL); |
+ String url = "chrome-native://bookmarks/filter/OFFLINE_PAGES?should_persist=0"; |
+ openBookmarkManager(url); |
+ EnhancedBookmarkDelegate delegate = mItemsContainer.getDelegateForTesting(); |
+ assertEquals(EnhancedBookmarkUIState.STATE_FILTER, delegate.getCurrentState()); |
+ assertEquals(UrlConstants.BOOKMARKS_URL, |
+ EnhancedBookmarkUtils.getLastUsedUrl(getActivity())); |
+ } |
} |