Cleans up DefaultAppShortcutPreferenceControllerBaseTest.java

- Checks the next started activity in robolectric with:
  ShadowActivity.getNextStartedActivity();
  instead of spying Activity
- Uses ShadowUserManager instead of spying UserManager

Change-Id: I3de9637f77401ca0dfab1b061a2846e7443170ad
Fixes: 117990359
Test: Robo test
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
index dd7cde2..529c0ee 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
@@ -18,13 +18,13 @@
 
 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.when;
+import static org.robolectric.Shadows.shadowOf;
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.os.UserManager;
 
 import androidx.preference.Preference;
@@ -40,12 +40,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowActivity;
+import org.robolectric.shadows.ShadowUserManager;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowUserManager.class)
 public class DefaultAppShortcutPreferenceControllerBaseTest {
 
-    @Mock
-    private UserManager mUserManager;
+    private ShadowUserManager mShadowUserManager;
     @Mock
     private AppInfoDashboardFragment mFragment;
     @Mock
@@ -57,8 +60,8 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mActivity = spy(Robolectric.setupActivity(Activity.class));
-        when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mShadowUserManager = shadowOf(mActivity.getSystemService(UserManager.class));
         mController = new TestPreferenceController(mActivity, mFragment);
         final String key = mController.getPreferenceKey();
         when(mPreference.getKey()).thenReturn(key);
@@ -66,28 +69,28 @@
 
     @Test
     public void getAvailabilityStatus_managedProfile_shouldReturnDisabled() {
-        when(mUserManager.isManagedProfile()).thenReturn(true);
+        mShadowUserManager.setManagedProfile(true);
 
         assertThat(mController.getAvailabilityStatus())
-            .isEqualTo(DefaultAppShortcutPreferenceControllerBase.DISABLED_FOR_USER);
+                .isEqualTo(DefaultAppShortcutPreferenceControllerBase.DISABLED_FOR_USER);
     }
 
     @Test
     public void getAvailabilityStatus_hasAppCapability_shouldReturnAvailable() {
         mController.capable = true;
-        when(mUserManager.isManagedProfile()).thenReturn(false);
+        mShadowUserManager.setManagedProfile(false);
 
         assertThat(mController.getAvailabilityStatus())
-            .isEqualTo(DefaultAppShortcutPreferenceControllerBase.AVAILABLE);
+                .isEqualTo(DefaultAppShortcutPreferenceControllerBase.AVAILABLE);
     }
 
     @Test
     public void getAvailabilityStatus_noAppCapability_shouldReturnDisabled() {
         mController.capable = false;
-        when(mUserManager.isManagedProfile()).thenReturn(false);
+        mShadowUserManager.setManagedProfile(false);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
-            DefaultAppShortcutPreferenceControllerBase.UNSUPPORTED_ON_DEVICE);
+                DefaultAppShortcutPreferenceControllerBase.UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
@@ -111,13 +114,17 @@
 
     @Test
     public void handlePreferenceTreeClick_shouldStartDefaultAppSettings() {
+        final ShadowActivity shadowActivity = shadowOf(mActivity);
+
         mController.handlePreferenceTreeClick(mPreference);
 
-        verify(mActivity).startActivity(argThat(intent -> intent != null
-                && intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT).equals(
-                DefaultAppSettings.class.getName())
-                && intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
-                .getString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY).equals("TestKey")));
+        final Intent nextIntent = shadowActivity.getNextStartedActivity();
+        assertThat(nextIntent).isNotNull();
+        assertThat(nextIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(
+                DefaultAppSettings.class.getName());
+        assertThat(
+                nextIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS).getString(
+                        SettingsActivity.EXTRA_FRAGMENT_ARG_KEY)).isEqualTo("TestKey");
     }
 
     private class TestPreferenceController extends DefaultAppShortcutPreferenceControllerBase {