From 6435164abf716a56a372ff77afeb03caff57c41b Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Mon, 23 Dec 2019 11:02:28 +0800 Subject: [PATCH] [Settings] Replace Robolectric#setupActivity() Avoid from accessing Robolectric#setupActivity(). Bug: 140707056 Test: make RunSettingsRoboTests ROBOTEST_FILTER=EuiccPreferenceControllerTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=DataServiceSetupPreferenceControllerTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=ApnPreferenceControllerTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=DataUsagePreferenceControllerTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=SubscriptionsPreferenceControllerTest Change-Id: I8552b181d2dc1c9a5d8aeb0b7e79bbec7252f67e --- .../SubscriptionsPreferenceControllerTest.java | 10 ++++++---- .../telephony/ApnPreferenceControllerTest.java | 6 ++++-- .../DataServiceSetupPreferenceControllerTest.java | 7 ++++--- .../telephony/DataUsagePreferenceControllerTest.java | 7 +++++-- .../telephony/EuiccPreferenceControllerTest.java | 12 ++++++++---- 5 files changed, 27 insertions(+), 15 deletions(-) diff --git a/tests/robotests/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java index 51f8ec09fc9..6fd94c3a199 100644 --- a/tests/robotests/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java @@ -29,6 +29,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; @@ -63,6 +64,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowSubscriptionManager; @@ -107,7 +109,7 @@ public class SubscriptionsPreferenceControllerTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); - mContext = spy(Robolectric.setupActivity(Activity.class)); + mContext = spy(RuntimeEnvironment.application); mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); @@ -257,14 +259,14 @@ public class SubscriptionsPreferenceControllerTest { */ private void runPreferenceClickTest(final int subscriptionCount, final int selectedPrefIndex) { final List subs = setupMockSubscriptions(subscriptionCount); - mController.displayPreference(mScreen); final ArgumentCaptor prefCaptor = ArgumentCaptor.forClass(Preference.class); + mController.displayPreference(mScreen); verify(mPreferenceCategory, times(subscriptionCount)).addPreference(prefCaptor.capture()); final List prefs = prefCaptor.getAllValues(); final Preference pref = prefs.get(selectedPrefIndex); - pref.getOnPreferenceClickListener().onPreferenceClick(pref); final ArgumentCaptor intentCaptor = ArgumentCaptor.forClass(Intent.class); - verify(mContext).startActivity(intentCaptor.capture()); + doNothing().when(mContext).startActivity(intentCaptor.capture()); + pref.getOnPreferenceClickListener().onPreferenceClick(pref); final Intent intent = intentCaptor.getValue(); assertThat(intent).isNotNull(); assertThat(intent.hasExtra(Settings.EXTRA_SUB_ID)).isTrue(); diff --git a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java index ce4c9a2fcd5..d3628373357 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java @@ -21,6 +21,7 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -47,6 +48,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class ApnPreferenceControllerTest { @@ -69,7 +71,7 @@ public class ApnPreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); - mContext = spy(Robolectric.setupActivity(Activity.class)); + mContext = spy(RuntimeEnvironment.application); doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE); doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); @@ -138,10 +140,10 @@ public class ApnPreferenceControllerTest { @Test public void handPreferenceTreeClick_fireIntent() { ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class); + doNothing().when(mContext).startActivity(captor.capture()); mController.handlePreferenceTreeClick(mPreference); - verify(mContext).startActivity(captor.capture()); final Intent intent = captor.getValue(); assertThat(intent.getAction()).isEqualTo(Settings.ACTION_APN_SETTINGS); assertThat(intent.getIntExtra(ApnSettings.SUB_ID, 0)).isEqualTo(SUB_ID); diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java index 8907164c666..46e69782b51 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java @@ -21,6 +21,7 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -49,6 +50,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class DataServiceSetupPreferenceControllerTest { @@ -72,7 +74,7 @@ public class DataServiceSetupPreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); - mContext = spy(Robolectric.setupActivity(Activity.class)); + mContext = spy(RuntimeEnvironment.application); doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId( @@ -125,11 +127,10 @@ public class DataServiceSetupPreferenceControllerTest { @Test public void handlePreferenceTreeClick_startActivity() { ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class); + doNothing().when(mContext).startActivity(captor.capture()); mController.handlePreferenceTreeClick(mPreference); - verify(mContext).startActivity(captor.capture()); - final Intent intent = captor.getValue(); assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW); assertThat(intent.getData()).isEqualTo( diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java index 7a097e7be8f..7681f447314 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.java @@ -17,6 +17,7 @@ package com.android.settings.network.telephony; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -40,6 +41,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; import org.robolectric.Shadows; import org.robolectric.shadows.ShadowTelephonyManager; import org.robolectric.util.ReflectionHelpers; @@ -58,7 +60,7 @@ public class DataUsagePreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); - mContext = spy(Robolectric.setupActivity(Activity.class)); + mContext = spy(RuntimeEnvironment.application); final TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class); final ShadowTelephonyManager shadowTelephonyManager = Shadows.shadowOf(telephonyManager); @@ -91,9 +93,10 @@ public class DataUsagePreferenceControllerTest { @Test public void handlePreferenceTreeClick_needDialog_showDialog() { final ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class); + doNothing().when(mContext).startActivity(captor.capture()); + mController.handlePreferenceTreeClick(mPreference); - verify(mContext).startActivity(captor.capture()); final Intent intent = captor.getValue(); assertThat(intent.getAction()).isEqualTo(Settings.ACTION_MOBILE_DATA_USAGE); diff --git a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java index 7fbddb49169..e4cf3033c9e 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java @@ -38,6 +38,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class EuiccPreferenceControllerTest { @@ -46,6 +47,9 @@ public class EuiccPreferenceControllerTest { @Mock private TelephonyManager mTelephonyManager; + @Mock + private Activity mActivity; + private EuiccPreferenceController mController; private Preference mPreference; private Context mContext; @@ -54,12 +58,12 @@ public class EuiccPreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); - mContext = spy(Robolectric.setupActivity(Activity.class)); - doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE); + mContext = spy(RuntimeEnvironment.application); + doReturn(mTelephonyManager).when(mActivity).getSystemService(Context.TELEPHONY_SERVICE); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); mPreference = new Preference(mContext); - mController = new EuiccPreferenceController(mContext, "euicc"); + mController = new EuiccPreferenceController(mActivity, "euicc"); mController.init(SUB_ID); mPreference.setKey(mController.getPreferenceKey()); } @@ -70,7 +74,7 @@ public class EuiccPreferenceControllerTest { mController.handlePreferenceTreeClick(mPreference); - verify(mContext).startActivity(captor.capture()); + verify(mActivity).startActivity(captor.capture()); assertThat(captor.getValue().getAction()).isEqualTo( EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS); }