/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.view; import com.android.frameworks.coretests.R; import android.view.DrawableBgMinSize; import android.test.TouchUtils; import android.test.suitebuilder.annotation.MediumTest; import android.graphics.drawable.Drawable; import android.test.ActivityInstrumentationTestCase; import android.view.View; import android.widget.AbsoluteLayout; import android.widget.Button; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; /** * {@link DrawableBgMinSize} exercises Views to obey their background drawable's * minimum sizes. */ public class DrawableBgMinSizeTest extends ActivityInstrumentationTestCase<DrawableBgMinSize> { private Button mChangeBackgroundsButton; private Drawable mBackgroundDrawable; private Drawable mBigBackgroundDrawable; private TextView mTextView; private LinearLayout mLinearLayout; private RelativeLayout mRelativeLayout; private FrameLayout mFrameLayout; private AbsoluteLayout mAbsoluteLayout; public DrawableBgMinSizeTest() { super("com.android.frameworks.coretests", DrawableBgMinSize.class); } @Override protected void setUp() throws Exception { super.setUp(); final DrawableBgMinSize a = getActivity(); mChangeBackgroundsButton = (Button) a.findViewById(R.id.change_backgrounds); mBackgroundDrawable = a.getResources().getDrawable(R.drawable.drawable_background); mBigBackgroundDrawable = a.getResources().getDrawable(R.drawable.big_drawable_background); mTextView = (TextView) a.findViewById(R.id.text_view); mLinearLayout = (LinearLayout) a.findViewById(R.id.linear_layout); mRelativeLayout = (RelativeLayout) a.findViewById(R.id.relative_layout); mFrameLayout = (FrameLayout) a.findViewById(R.id.frame_layout); mAbsoluteLayout = (AbsoluteLayout) a.findViewById(R.id.absolute_layout); } @MediumTest public void testSetUpConditions() throws Exception { assertNotNull(mChangeBackgroundsButton); assertNotNull(mBackgroundDrawable); assertNotNull(mBigBackgroundDrawable); assertNotNull(mTextView); assertNotNull(mLinearLayout); assertNotNull(mRelativeLayout); assertNotNull(mFrameLayout); assertNotNull(mAbsoluteLayout); } public void doMinimumSizeTest(View view) throws Exception { assertTrue(view.getClass().getSimpleName() + " should respect the background Drawable's minimum width", view.getWidth() >= mBackgroundDrawable.getMinimumWidth()); assertTrue(view.getClass().getSimpleName() + " should respect the background Drawable's minimum height", view.getHeight() >= mBackgroundDrawable.getMinimumHeight()); } @MediumTest public void testTextViewMinimumSize() throws Exception { doMinimumSizeTest(mTextView); } @MediumTest public void testLinearLayoutMinimumSize() throws Exception { doMinimumSizeTest(mLinearLayout); } @MediumTest public void testRelativeLayoutMinimumSize() throws Exception { doMinimumSizeTest(mRelativeLayout); } @MediumTest public void testAbsoluteLayoutMinimumSize() throws Exception { doMinimumSizeTest(mAbsoluteLayout); } @MediumTest public void testFrameLayoutMinimumSize() throws Exception { doMinimumSizeTest(mFrameLayout); } public void doDiffBgMinimumSizeTest(final View view) throws Exception { // Change to the bigger backgrounds TouchUtils.tapView(this, mChangeBackgroundsButton); assertTrue(view.getClass().getSimpleName() + " should respect the different bigger background Drawable's minimum width", view .getWidth() >= mBigBackgroundDrawable.getMinimumWidth()); assertTrue(view.getClass().getSimpleName() + " should respect the different bigger background Drawable's minimum height", view .getHeight() >= mBigBackgroundDrawable.getMinimumHeight()); } @MediumTest public void testTextViewDiffBgMinimumSize() throws Exception { doDiffBgMinimumSizeTest(mTextView); } @MediumTest public void testLinearLayoutDiffBgMinimumSize() throws Exception { doDiffBgMinimumSizeTest(mLinearLayout); } @MediumTest public void testRelativeLayoutDiffBgMinimumSize() throws Exception { doDiffBgMinimumSizeTest(mRelativeLayout); } @MediumTest public void testAbsoluteLayoutDiffBgMinimumSize() throws Exception { doDiffBgMinimumSizeTest(mAbsoluteLayout); } @MediumTest public void testFrameLayoutDiffBgMinimumSize() throws Exception { doDiffBgMinimumSizeTest(mFrameLayout); } }