| Index: chrome/test/android/javatests/src/org/chromium/chrome/test/BottomSheetTestCaseBase.java
|
| diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/BottomSheetTestCaseBase.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/BottomSheetTestCaseBase.java
|
| index 01df4e9eacc8c6ead5693b3c0f084270858b0923..916ef14d26edacba3f8caf16678a2c795e553f32 100644
|
| --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/BottomSheetTestCaseBase.java
|
| +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/BottomSheetTestCaseBase.java
|
| @@ -10,6 +10,7 @@ import android.os.Build;
|
| import android.support.v7.widget.RecyclerView;
|
|
|
| import org.chromium.base.ThreadUtils;
|
| +import org.chromium.base.test.util.CallbackHelper;
|
| import org.chromium.base.test.util.CommandLineFlags;
|
| import org.chromium.base.test.util.MinAndroidSdkLevel;
|
| import org.chromium.base.test.util.Restriction;
|
| @@ -18,6 +19,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
|
| import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
|
| import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet.BottomSheetContent;
|
| import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetContentController;
|
| +import org.chromium.chrome.browser.widget.bottomsheet.EmptyBottomSheetObserver;
|
| import org.chromium.chrome.test.util.browser.RecyclerViewTestUtils;
|
|
|
| /**
|
| @@ -27,6 +29,70 @@ import org.chromium.chrome.test.util.browser.RecyclerViewTestUtils;
|
| @Restriction(RESTRICTION_TYPE_PHONE) // ChromeHome is only enabled on phones
|
| @MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP_MR1)
|
| public abstract class BottomSheetTestCaseBase extends ChromeTabbedActivityTestBase {
|
| + /** A handle to the sheet's observer. */
|
| + protected TestBottomSheetObserver mObserver;
|
| +
|
| + /** An observer used to record events that occur with respect to the bottom sheet. */
|
| + protected static class TestBottomSheetObserver extends EmptyBottomSheetObserver {
|
| + /** A {@link CallbackHelper} that can wait for the bottom sheet to be closed. */
|
| + public final CallbackHelper mClosedCallbackHelper = new CallbackHelper();
|
| +
|
| + /** A {@link CallbackHelper} that can wait for the bottom sheet to be opened. */
|
| + public final CallbackHelper mOpenedCallbackHelper = new CallbackHelper();
|
| +
|
| + /** A {@link CallbackHelper} that can wait for the onTransitionPeekToHalf event. */
|
| + public final CallbackHelper mPeekToHalfCallbackHelper = new CallbackHelper();
|
| +
|
| + /** A {@link CallbackHelper} that can wait for the onOffsetChanged event. */
|
| + public final CallbackHelper mOffsetChangedCallbackHelper = new CallbackHelper();
|
| +
|
| + /** A {@link CallbackHelper} that can wait for the onSheetContentChanged event. */
|
| + public final CallbackHelper mContentChangedCallbackHelper = new CallbackHelper();
|
| +
|
| + /** The last value that the onTransitionPeekToHalf event sent. */
|
| + private float mLastPeekToHalfValue;
|
| +
|
| + /** The last value that the onOffsetChanged event sent. */
|
| + private float mLastOffsetChangedValue;
|
| +
|
| + @Override
|
| + public void onTransitionPeekToHalf(float fraction) {
|
| + mLastPeekToHalfValue = fraction;
|
| + mPeekToHalfCallbackHelper.notifyCalled();
|
| + }
|
| +
|
| + @Override
|
| + public void onSheetOffsetChanged(float heightFraction) {
|
| + mLastOffsetChangedValue = heightFraction;
|
| + mOffsetChangedCallbackHelper.notifyCalled();
|
| + }
|
| +
|
| + @Override
|
| + public void onSheetOpened() {
|
| + mOpenedCallbackHelper.notifyCalled();
|
| + }
|
| +
|
| + @Override
|
| + public void onSheetClosed() {
|
| + mClosedCallbackHelper.notifyCalled();
|
| + }
|
| +
|
| + @Override
|
| + public void onSheetContentChanged(BottomSheetContent newContent) {
|
| + mContentChangedCallbackHelper.notifyCalled();
|
| + }
|
| +
|
| + /** @return The last value passed in to {@link #onTransitionPeekToHalf(float)}. */
|
| + public float getLastPeekToHalfValue() {
|
| + return mLastPeekToHalfValue;
|
| + }
|
| +
|
| + /** @return The last value passed in to {@link #onSheetOffsetChanged(float)}. */
|
| + public float getLastOffsetChangedValue() {
|
| + return mLastOffsetChangedValue;
|
| + }
|
| + }
|
| +
|
| /** A handle to the bottom sheet. */
|
| protected BottomSheet mBottomSheet;
|
|
|
| @@ -60,6 +126,9 @@ public abstract class BottomSheetTestCaseBase extends ChromeTabbedActivityTestBa
|
|
|
| mBottomSheet = getActivity().getBottomSheet();
|
| mBottomSheetContentController = getActivity().getBottomSheetContentController();
|
| +
|
| + mObserver = new TestBottomSheetObserver();
|
| + mBottomSheet.addObserver(mObserver);
|
| }
|
|
|
| @Override
|
| @@ -112,7 +181,7 @@ public abstract class BottomSheetTestCaseBase extends ChromeTabbedActivityTestBa
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| public void run() {
|
| - mBottomSheetContentController.selectItemForTests(itemId);
|
| + mBottomSheetContentController.selectItem(itemId);
|
| }
|
| });
|
| }
|
|
|