Merge "Cleans up DefaultAppShortcutPreferenceControllerBaseTest.java"

This commit is contained in:
TreeHugger Robot
2018-12-24 06:05:26 +00:00
committed by Android (Google) Code Review

View File

@@ -18,13 +18,13 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.os.UserManager; import android.os.UserManager;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -40,12 +40,15 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric; import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowUserManager;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowUserManager.class)
public class DefaultAppShortcutPreferenceControllerBaseTest { public class DefaultAppShortcutPreferenceControllerBaseTest {
@Mock private ShadowUserManager mShadowUserManager;
private UserManager mUserManager;
@Mock @Mock
private AppInfoDashboardFragment mFragment; private AppInfoDashboardFragment mFragment;
@Mock @Mock
@@ -57,8 +60,8 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mActivity = spy(Robolectric.setupActivity(Activity.class)); mActivity = Robolectric.setupActivity(Activity.class);
when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); mShadowUserManager = shadowOf(mActivity.getSystemService(UserManager.class));
mController = new TestPreferenceController(mActivity, mFragment); mController = new TestPreferenceController(mActivity, mFragment);
final String key = mController.getPreferenceKey(); final String key = mController.getPreferenceKey();
when(mPreference.getKey()).thenReturn(key); when(mPreference.getKey()).thenReturn(key);
@@ -66,7 +69,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
@Test @Test
public void getAvailabilityStatus_managedProfile_shouldReturnDisabled() { public void getAvailabilityStatus_managedProfile_shouldReturnDisabled() {
when(mUserManager.isManagedProfile()).thenReturn(true); mShadowUserManager.setManagedProfile(true);
assertThat(mController.getAvailabilityStatus()) assertThat(mController.getAvailabilityStatus())
.isEqualTo(DefaultAppShortcutPreferenceControllerBase.DISABLED_FOR_USER); .isEqualTo(DefaultAppShortcutPreferenceControllerBase.DISABLED_FOR_USER);
@@ -75,7 +78,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
@Test @Test
public void getAvailabilityStatus_hasAppCapability_shouldReturnAvailable() { public void getAvailabilityStatus_hasAppCapability_shouldReturnAvailable() {
mController.capable = true; mController.capable = true;
when(mUserManager.isManagedProfile()).thenReturn(false); mShadowUserManager.setManagedProfile(false);
assertThat(mController.getAvailabilityStatus()) assertThat(mController.getAvailabilityStatus())
.isEqualTo(DefaultAppShortcutPreferenceControllerBase.AVAILABLE); .isEqualTo(DefaultAppShortcutPreferenceControllerBase.AVAILABLE);
@@ -84,7 +87,7 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
@Test @Test
public void getAvailabilityStatus_noAppCapability_shouldReturnDisabled() { public void getAvailabilityStatus_noAppCapability_shouldReturnDisabled() {
mController.capable = false; mController.capable = false;
when(mUserManager.isManagedProfile()).thenReturn(false); mShadowUserManager.setManagedProfile(false);
assertThat(mController.getAvailabilityStatus()).isEqualTo( assertThat(mController.getAvailabilityStatus()).isEqualTo(
DefaultAppShortcutPreferenceControllerBase.UNSUPPORTED_ON_DEVICE); DefaultAppShortcutPreferenceControllerBase.UNSUPPORTED_ON_DEVICE);
@@ -111,13 +114,17 @@ public class DefaultAppShortcutPreferenceControllerBaseTest {
@Test @Test
public void handlePreferenceTreeClick_shouldStartDefaultAppSettings() { public void handlePreferenceTreeClick_shouldStartDefaultAppSettings() {
final ShadowActivity shadowActivity = shadowOf(mActivity);
mController.handlePreferenceTreeClick(mPreference); mController.handlePreferenceTreeClick(mPreference);
verify(mActivity).startActivity(argThat(intent -> intent != null final Intent nextIntent = shadowActivity.getNextStartedActivity();
&& intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT).equals( assertThat(nextIntent).isNotNull();
DefaultAppSettings.class.getName()) assertThat(nextIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(
&& intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS) DefaultAppSettings.class.getName());
.getString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY).equals("TestKey"))); assertThat(
nextIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS).getString(
SettingsActivity.EXTRA_FRAGMENT_ARG_KEY)).isEqualTo("TestKey");
} }
private class TestPreferenceController extends DefaultAppShortcutPreferenceControllerBase { private class TestPreferenceController extends DefaultAppShortcutPreferenceControllerBase {