16deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki/* 26deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * Copyright (C) 2016 The Android Open Source Project 36deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * 46deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * Licensed under the Apache License, Version 2.0 (the "License"); 56deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * you may not use this file except in compliance with the License. 66deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * You may obtain a copy of the License at 76deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * 86deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * http://www.apache.org/licenses/LICENSE-2.0 96deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * 106deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * Unless required by applicable law or agreed to in writing, software 116deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * distributed under the License is distributed on an "AS IS" BASIS, 126deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * See the License for the specific language governing permissions and 146deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki * limitations under the License. 156deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki */ 166deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 176deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakipackage android.support.design.widget; 186deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 196deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport static org.hamcrest.MatcherAssert.assertThat; 206deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport static org.hamcrest.core.Is.is; 216deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 226deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport android.content.Context; 236deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport android.content.Intent; 246deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport android.support.test.InstrumentationRegistry; 25754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport android.support.test.filters.SmallTest; 266deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport android.support.test.rule.ActivityTestRule; 276deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport android.support.test.runner.AndroidJUnit4; 286deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 296deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport org.junit.Rule; 306deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport org.junit.Test; 316deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakiimport org.junit.runner.RunWith; 326deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 33fad2335f169d36b7b6f2c0ec8ddfe6c0094c2072Aurimas Liutikas@SmallTest 346deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki@RunWith(AndroidJUnit4.class) 356deb3a9dc52be7ab61702c430bb327343ef099acYuichi Arakipublic class BottomSheetBehaviorInitialStateTest { 366deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 376deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki @Rule 386deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki public final ActivityTestRule<BottomSheetBehaviorActivity> mActivityTestRule 396deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki = new ActivityTestRule<>(BottomSheetBehaviorActivity.class, true, false); 406deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 416deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki @Test 426deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki public void testSetStateExpanded() { 436deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki Context context = InstrumentationRegistry.getInstrumentation().getTargetContext(); 446deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki Intent intent = new Intent(context, BottomSheetBehaviorActivity.class); 456deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki intent.putExtra(BottomSheetBehaviorActivity.EXTRA_INITIAL_STATE, 466deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki BottomSheetBehavior.STATE_EXPANDED); 476deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki mActivityTestRule.launchActivity(intent); 486deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki BottomSheetBehaviorActivity activity = mActivityTestRule.getActivity(); 496deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki assertThat(activity.mBehavior.getState(), is(BottomSheetBehavior.STATE_EXPANDED)); 506deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki assertThat(activity.mBottomSheet.getTop(), is(0)); 516deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki } 526deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 536deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 546deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki @Test 556deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki public void testSetStateHidden() { 566deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki Context context = InstrumentationRegistry.getInstrumentation().getTargetContext(); 576deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki Intent intent = new Intent(context, BottomSheetBehaviorActivity.class); 586deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki intent.putExtra(BottomSheetBehaviorActivity.EXTRA_INITIAL_STATE, 596deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki BottomSheetBehavior.STATE_HIDDEN); 606deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki mActivityTestRule.launchActivity(intent); 616deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki BottomSheetBehaviorActivity activity = mActivityTestRule.getActivity(); 626deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki assertThat(activity.mBehavior.getState(), is(BottomSheetBehavior.STATE_HIDDEN)); 636deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki assertThat(activity.mBottomSheet.getTop(), is(activity.mCoordinatorLayout.getHeight())); 646deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki } 656deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki 666deb3a9dc52be7ab61702c430bb327343ef099acYuichi Araki} 67