diff --git a/src/com/android/settings/security/CredentialManagementAppPreferenceController.java b/src/com/android/settings/security/CredentialManagementAppPreferenceController.java index 107b8f28b6a..ae257149efe 100644 --- a/src/com/android/settings/security/CredentialManagementAppPreferenceController.java +++ b/src/com/android/settings/security/CredentialManagementAppPreferenceController.java @@ -28,6 +28,7 @@ import android.util.Log; import androidx.preference.Preference; +import com.android.internal.annotations.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; @@ -72,7 +73,8 @@ public class CredentialManagementAppPreferenceController extends BasePreferenceC }); } - private void displayPreference(Preference preference) { + @VisibleForTesting + void displayPreference(Preference preference) { if (mHasCredentialManagerPackage) { preference.setEnabled(true); try { diff --git a/tests/robotests/src/com/android/settings/security/CredentialManagementAppControllerTest.java b/tests/robotests/src/com/android/settings/security/CredentialManagementAppControllerTest.java index 36f056c109c..eb7165e5e78 100644 --- a/tests/robotests/src/com/android/settings/security/CredentialManagementAppControllerTest.java +++ b/tests/robotests/src/com/android/settings/security/CredentialManagementAppControllerTest.java @@ -18,6 +18,8 @@ package com.android.settings.security; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.verify; + import android.content.Context; import androidx.preference.Preference; @@ -26,27 +28,35 @@ import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class CredentialManagementAppControllerTest { + @Mock + private Preference mPreference; + private Context mContext; private CredentialManagementAppPreferenceController mController; - private Preference mPreference; private static final String PREF_KEY_CREDENTIAL_MANAGEMENT_APP = "certificate_management_app"; @Before public void setUp() { + MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new CredentialManagementAppPreferenceController( mContext, PREF_KEY_CREDENTIAL_MANAGEMENT_APP); - mPreference = new Preference(mContext); + } + + @Test + public void getAvailable_shouldAlwaysReturnTrue() { + assertThat(mController.isAvailable()).isTrue(); } @Test @@ -56,12 +66,10 @@ public class CredentialManagementAppControllerTest { } @Test - @Ignore - public void updateState_noCredentialManagementApp_shouldDisablePreference() { - mController.updateState(mPreference); + public void displayPreference_noCredentialManagementApp_shouldDisablePreference() { + mController.displayPreference(mPreference); - assertThat(mPreference.isEnabled()).isEqualTo(false); - assertThat(mPreference.getSummary()).isEqualTo( - mContext.getText(R.string.no_certificate_management_app)); + verify(mPreference).setEnabled(false); + verify(mPreference).setSummary(R.string.no_certificate_management_app); } }