BaselineButtonsTest.java revision 1d3165f10b12165f02b7015ac1a817c5f60e6399
1/*
2 * Copyright (C) 2007 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.widget.layout.linear;
18
19import android.app.Activity;
20import android.test.ActivityInstrumentationTestCase;
21import android.test.suitebuilder.annotation.MediumTest;
22import android.view.View;
23import android.widget.ImageButton;
24
25import com.android.frameworks.coretests.R;
26import android.widget.layout.linear.BaselineButtons;
27
28public class BaselineButtonsTest extends ActivityInstrumentationTestCase<BaselineButtons> {
29    private View mCurrentTime;
30    private View mTotalTime;
31    private ImageButton mPrev;
32    private ImageButton mNext;
33    private ImageButton mPause;
34    private View mLayout;
35
36    public BaselineButtonsTest() {
37        super("com.android.frameworks.coretests", BaselineButtons.class);
38    }
39
40    @Override
41    protected void setUp() throws Exception {
42        super.setUp();
43
44        final Activity activity = getActivity();
45        mCurrentTime = activity.findViewById(R.id.currenttime);
46        mTotalTime = activity.findViewById(R.id.totaltime);
47        mPrev = (ImageButton) activity.findViewById(R.id.prev);
48        mNext = (ImageButton) activity.findViewById(R.id.next);
49        mPause = (ImageButton) activity.findViewById(R.id.pause);
50        mLayout = activity.findViewById(R.id.layout);
51    }
52
53    @MediumTest
54    public void testPreconditions() {
55        assertNotNull(mCurrentTime);
56        assertNotNull(mTotalTime);
57        assertNotNull(mPrev);
58        assertNotNull(mNext);
59        assertNotNull(mPause);
60        assertNotNull(mLayout);
61    }
62
63    @MediumTest
64    public void testLayout() {
65        int pauseHeight =  Math.max(mPause.getDrawable().getIntrinsicHeight()
66                + mPause.getPaddingTop() + mPause.getPaddingBottom(),
67                mPause.getBackground().getMinimumHeight());
68        int prevHeight = Math.max(mPrev.getDrawable().getIntrinsicHeight() + mPrev.getPaddingTop()
69                + mPrev.getPaddingBottom(),
70                mPrev.getBackground().getMinimumHeight());
71        int nextHeight = Math.max(mNext.getDrawable().getIntrinsicHeight() + mNext.getPaddingTop()
72                + mNext.getPaddingBottom(),
73                mNext.getBackground().getMinimumHeight());
74        assertEquals("Layout incorrect height", pauseHeight, mLayout.getHeight());
75        assertEquals("Pause incorrect height", pauseHeight, mPause.getHeight());
76        assertEquals("Prev incorrect height", prevHeight, mPrev.getHeight());
77        assertEquals("Next incorrect height", nextHeight, mNext.getHeight());
78        assertEquals("Pause wrong top", 0, mPause.getTop());
79        assertEquals("Prev wrong top", (pauseHeight - prevHeight) / 2, mPrev.getTop());
80        assertEquals("Next wrong top", (pauseHeight - nextHeight) / 2, mNext.getTop());
81        assertEquals("CurrentTime wrong bottom",  pauseHeight, mCurrentTime.getBottom());
82        assertEquals("TotalTime wrong bottom",  pauseHeight, mTotalTime.getBottom());
83        assertTrue("CurrentTime too tall", mCurrentTime.getTop() > 0);
84        assertTrue("TotalTime too tall", mTotalTime.getTop() > 0);
85    }
86}
87