From c6c82c9c674536033d7fa05ff9e102cea0ed3c8e Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 25 Apr 2017 09:52:38 -0700 Subject: [PATCH] Add tests for iconSpaceReserved attribute in Preference Change-Id: Id789f3ab6c0c5f864d08bd21966c2e1fea00473d Fix: 37572025 Test: runtest --path ... --- .../preference/PreferenceIconSpaceTest.java | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 core/tests/coretests/src/android/preference/PreferenceIconSpaceTest.java diff --git a/core/tests/coretests/src/android/preference/PreferenceIconSpaceTest.java b/core/tests/coretests/src/android/preference/PreferenceIconSpaceTest.java new file mode 100644 index 0000000000000..654474cba6997 --- /dev/null +++ b/core/tests/coretests/src/android/preference/PreferenceIconSpaceTest.java @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2017 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.preference; + + +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.support.test.InstrumentationRegistry; +import android.support.test.filters.SmallTest; +import android.support.test.runner.AndroidJUnit4; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +@RunWith(AndroidJUnit4.class) +@SmallTest +public class PreferenceIconSpaceTest { + + private TestPreference mPreference; + + @Mock + private ViewGroup mViewGroup; + @Mock + private ImageView mIconView; + @Mock + private View mImageFrame; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + when(mViewGroup.findViewById(com.android.internal.R.id.icon_frame)) + .thenReturn(mImageFrame); + when(mViewGroup.findViewById(com.android.internal.R.id.icon)) + .thenReturn(mIconView); + + mPreference = new TestPreference(InstrumentationRegistry.getTargetContext()); + } + + @Test + public void bindView_iconSpaceReserved_shouldReserveIconSpace() { + mPreference.setIconSpaceReserved(true); + mPreference.bindView(mViewGroup); + + verify(mIconView).setVisibility(View.INVISIBLE); + verify(mImageFrame).setVisibility(View.INVISIBLE); + } + + @Test + public void bindView_iconSpaceNotReserved_shouldNotReserveIconSpace() { + mPreference.setIconSpaceReserved(false); + mPreference.bindView(mViewGroup); + + verify(mIconView).setVisibility(View.GONE); + verify(mImageFrame).setVisibility(View.GONE); + } + + @Test + public void bindView_hasIcon_shouldDisplayIcon() { + mPreference.setIcon(new ColorDrawable(Color.BLACK)); + mPreference.bindView(mViewGroup); + + verify(mIconView).setVisibility(View.VISIBLE); + verify(mImageFrame).setVisibility(View.VISIBLE); + } + + private static class TestPreference extends Preference { + + public TestPreference(Context context) { + super(context); + } + + public void bindView(View view) { + onBindView(view); + } + } +}