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