Merge "[AutoTest] Settings Telephony part"

This commit is contained in:
Bonian Chen
2019-10-01 11:13:25 +00:00
committed by Android (Google) Code Review
10 changed files with 63 additions and 37 deletions

View File

@@ -30,6 +30,7 @@ import static org.mockito.Mockito.when;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
@@ -98,27 +99,33 @@ public class ApnEditorTest {
@Mock @Mock
private Cursor mCursor; private Cursor mCursor;
@Mock
private FragmentActivity mActivity;
@Captor @Captor
private ArgumentCaptor<Uri> mUriCaptor; private ArgumentCaptor<Uri> mUriCaptor;
private ApnEditor mApnEditorUT; private ApnEditor mApnEditorUT;
private FragmentActivity mActivity; private Context mContext;
private Resources mResources; private Resources mResources;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mActivity = spy(Robolectric.setupActivity(FragmentActivity.class)); mContext = spy(RuntimeEnvironment.application);
mResources = mActivity.getResources();
mResources = mContext.getResources();
mApnEditorUT = spy(new ApnEditor()); mApnEditorUT = spy(new ApnEditor());
doReturn(mActivity).when(mApnEditorUT).getActivity(); doReturn(mActivity).when(mApnEditorUT).getActivity();
doReturn(mResources).when(mApnEditorUT).getResources(); doReturn(mResources).when(mApnEditorUT).getResources();
doNothing().when(mApnEditorUT).finish(); doNothing().when(mApnEditorUT).finish();
doNothing().when(mApnEditorUT).showError(); doNothing().when(mApnEditorUT).showError();
when(mApnEditorUT.getContext()).thenReturn(RuntimeEnvironment.application); doReturn(mContext).when(mApnEditorUT).getContext();
doReturn(mContext.getTheme()).when(mActivity).getTheme();
doReturn(mContext.getContentResolver()).when(mActivity).getContentResolver();
setMockPreference(mActivity); setMockPreference(mContext);
mApnEditorUT.mApnData = new FakeApnData(APN_DATA); mApnEditorUT.mApnData = new FakeApnData(APN_DATA);
mApnEditorUT.sNotSet = "Not Set"; mApnEditorUT.sNotSet = "Not Set";
} }
@@ -319,7 +326,7 @@ public class ApnEditorTest {
// WHEN press the back button // WHEN press the back button
final KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK); final KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
mApnEditorUT.onKey(new View(mActivity), KeyEvent.KEYCODE_BACK, event); mApnEditorUT.onKey(new View(mContext), KeyEvent.KEYCODE_BACK, event);
// THEN the apn data is saved and the apn editor is closed // THEN the apn data is saved and the apn editor is closed
verify(mApnEditorUT).validateAndSaveApnData(); verify(mApnEditorUT).validateAndSaveApnData();
@@ -459,6 +466,7 @@ public class ApnEditorTest {
@Test @Test
@Config(shadows = ShadowFragment.class) @Config(shadows = ShadowFragment.class)
public void onCreate_noAction_shouldFinishAndNoCrash() { public void onCreate_noAction_shouldFinishAndNoCrash() {
doReturn(new Intent()).when(mActivity).getIntent();
doNothing().when(mApnEditorUT).addPreferencesFromResource(anyInt()); doNothing().when(mApnEditorUT).addPreferencesFromResource(anyInt());
mApnEditorUT.onCreate(null); mApnEditorUT.onCreate(null);

View File

@@ -22,6 +22,7 @@ import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -47,6 +48,7 @@ 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.RuntimeEnvironment;
import java.util.Arrays; import java.util.Arrays;
@@ -76,7 +78,7 @@ public class MobileNetworkListControllerTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class)); mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager); when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
@@ -137,9 +139,9 @@ public class MobileNetworkListControllerTest {
// Check that the onclick listeners are setup to fire with the right subscription id. // Check that the onclick listeners are setup to fire with the right subscription id.
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
doNothing().when(mContext).startActivity(intentCaptor.capture());
pref1.getOnPreferenceClickListener().onPreferenceClick(pref1); pref1.getOnPreferenceClickListener().onPreferenceClick(pref1);
pref2.getOnPreferenceClickListener().onPreferenceClick(pref2); pref2.getOnPreferenceClickListener().onPreferenceClick(pref2);
verify(mContext, times(2)).startActivity(intentCaptor.capture());
final Intent intent1 = intentCaptor.getAllValues().get(0); final Intent intent1 = intentCaptor.getAllValues().get(0);
final Intent intent2 = intentCaptor.getAllValues().get(1); final Intent intent2 = intentCaptor.getAllValues().get(1);
assertThat(intent1.getIntExtra(EXTRA_SUB_ID, INVALID_SUBSCRIPTION_ID)).isEqualTo(1); assertThat(intent1.getIntExtra(EXTRA_SUB_ID, INVALID_SUBSCRIPTION_ID)).isEqualTo(1);

View File

@@ -23,6 +23,7 @@ import static com.android.settings.network.MobileNetworkPreferenceController.MOB
import static com.google.common.truth.Truth.assertThat; 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.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -61,6 +62,7 @@ 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.RuntimeEnvironment;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@@ -81,7 +83,7 @@ public class MobileNetworkPreferenceControllerTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class)); mContext = spy(RuntimeEnvironment.application);
mLifecycleOwner = () -> mLifecycle; mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner); mLifecycle = new Lifecycle(mLifecycleOwner);
when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager); when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
@@ -190,10 +192,10 @@ public class MobileNetworkPreferenceControllerTest {
mController = new MobileNetworkPreferenceController(mContext); mController = new MobileNetworkPreferenceController(mContext);
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.MOBILE_NETWORK_V2, false); FeatureFlagUtils.setEnabled(mContext, FeatureFlags.MOBILE_NETWORK_V2, false);
ArgumentCaptor<Intent> argument = ArgumentCaptor.forClass(Intent.class); ArgumentCaptor<Intent> argument = ArgumentCaptor.forClass(Intent.class);
doNothing().when(mContext).startActivity(argument.capture());
mController.handlePreferenceTreeClick(mPreference); mController.handlePreferenceTreeClick(mPreference);
verify(mContext).startActivity(argument.capture());
final ComponentName componentName = argument.getValue().getComponent(); final ComponentName componentName = argument.getValue().getComponent();
assertThat(componentName.getPackageName()).isEqualTo(MOBILE_NETWORK_PACKAGE); assertThat(componentName.getPackageName()).isEqualTo(MOBILE_NETWORK_PACKAGE);
assertThat(componentName.getClassName()).isEqualTo(MOBILE_NETWORK_CLASS); assertThat(componentName.getClassName()).isEqualTo(MOBILE_NETWORK_CLASS);

View File

@@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.notNull; import static org.mockito.ArgumentMatchers.notNull;
import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -53,6 +54,7 @@ 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.RuntimeEnvironment;
import java.util.Arrays; import java.util.Arrays;
@@ -81,7 +83,7 @@ public class MobileNetworkSummaryControllerTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class)); mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager); when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
@@ -130,9 +132,9 @@ public class MobileNetworkSummaryControllerTest {
mController.onResume(); mController.onResume();
assertThat(mController.getSummary()).isEqualTo("Add a network"); assertThat(mController.getSummary()).isEqualTo("Add a network");
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
verify(mContext).startActivity(intentCaptor.capture()); doNothing().when(mContext).startActivity(intentCaptor.capture());
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
assertThat(intentCaptor.getValue().getAction()).isEqualTo( assertThat(intentCaptor.getValue().getAction()).isEqualTo(
EuiccManager.ACTION_PROVISION_EMBEDDED_SUBSCRIPTION); EuiccManager.ACTION_PROVISION_EMBEDDED_SUBSCRIPTION);
} }
@@ -155,9 +157,9 @@ public class MobileNetworkSummaryControllerTest {
mController.onResume(); mController.onResume();
assertThat(mController.getSummary()).isEqualTo("sub1"); assertThat(mController.getSummary()).isEqualTo("sub1");
assertThat(mPreference.getFragment()).isNull(); assertThat(mPreference.getFragment()).isNull();
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
verify(mContext).startActivity(intentCaptor.capture()); doNothing().when(mContext).startActivity(intentCaptor.capture());
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
Intent intent = intentCaptor.getValue(); Intent intent = intentCaptor.getValue();
assertThat(intent.getComponent().getClassName()).isEqualTo( assertThat(intent.getComponent().getClassName()).isEqualTo(
MobileNetworkActivity.class.getName()); MobileNetworkActivity.class.getName());
@@ -218,9 +220,9 @@ public class MobileNetworkSummaryControllerTest {
mController.onSubscriptionsChanged(); mController.onSubscriptionsChanged();
assertThat(mController.getSummary()).isEqualTo("sub1"); assertThat(mController.getSummary()).isEqualTo("sub1");
assertThat(mPreference.getFragment()).isNull(); assertThat(mPreference.getFragment()).isNull();
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
verify(mContext).startActivity(intentCaptor.capture()); doNothing().when(mContext).startActivity(intentCaptor.capture());
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
assertThat(intentCaptor.getValue().getComponent().getClassName()).isEqualTo( assertThat(intentCaptor.getValue().getComponent().getClassName()).isEqualTo(
MobileNetworkActivity.class.getName()); MobileNetworkActivity.class.getName());
} }
@@ -239,9 +241,9 @@ public class MobileNetworkSummaryControllerTest {
mController.onResume(); mController.onResume();
assertThat(mController.getSummary()).isEqualTo("sub1"); assertThat(mController.getSummary()).isEqualTo("sub1");
assertThat(mPreference.getFragment()).isNull(); assertThat(mPreference.getFragment()).isNull();
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
verify(mContext).startActivity(intentCaptor.capture()); doNothing().when(mContext).startActivity(intentCaptor.capture());
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
assertThat(intentCaptor.getValue().getComponent().getClassName()).isEqualTo( assertThat(intentCaptor.getValue().getComponent().getClassName()).isEqualTo(
MobileNetworkActivity.class.getName()); MobileNetworkActivity.class.getName());

View File

@@ -29,6 +29,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
@@ -63,6 +64,7 @@ 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.RuntimeEnvironment;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowSubscriptionManager; import org.robolectric.shadows.ShadowSubscriptionManager;
@@ -107,7 +109,7 @@ public class SubscriptionsPreferenceControllerTest {
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class)); mContext = spy(RuntimeEnvironment.application);
mLifecycleOwner = () -> mLifecycle; mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner); mLifecycle = new Lifecycle(mLifecycleOwner);
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
@@ -257,14 +259,14 @@ public class SubscriptionsPreferenceControllerTest {
*/ */
private void runPreferenceClickTest(final int subscriptionCount, final int selectedPrefIndex) { private void runPreferenceClickTest(final int subscriptionCount, final int selectedPrefIndex) {
final List<SubscriptionInfo> subs = setupMockSubscriptions(subscriptionCount); final List<SubscriptionInfo> subs = setupMockSubscriptions(subscriptionCount);
mController.displayPreference(mScreen);
final ArgumentCaptor<Preference> prefCaptor = ArgumentCaptor.forClass(Preference.class); final ArgumentCaptor<Preference> prefCaptor = ArgumentCaptor.forClass(Preference.class);
mController.displayPreference(mScreen);
verify(mPreferenceCategory, times(subscriptionCount)).addPreference(prefCaptor.capture()); verify(mPreferenceCategory, times(subscriptionCount)).addPreference(prefCaptor.capture());
final List<Preference> prefs = prefCaptor.getAllValues(); final List<Preference> prefs = prefCaptor.getAllValues();
final Preference pref = prefs.get(selectedPrefIndex); final Preference pref = prefs.get(selectedPrefIndex);
pref.getOnPreferenceClickListener().onPreferenceClick(pref);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> 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(); final Intent intent = intentCaptor.getValue();
assertThat(intent).isNotNull(); assertThat(intent).isNotNull();
assertThat(intent.hasExtra(Settings.EXTRA_SUB_ID)).isTrue(); assertThat(intent.hasExtra(Settings.EXTRA_SUB_ID)).isTrue();

View File

@@ -21,6 +21,7 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U
import static com.google.common.truth.Truth.assertThat; 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.doReturn;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
@@ -47,6 +48,7 @@ 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.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class ApnPreferenceControllerTest { public class ApnPreferenceControllerTest {
@@ -69,7 +71,7 @@ public class ApnPreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class)); mContext = spy(RuntimeEnvironment.application);
doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE); doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class); doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
@@ -138,10 +140,10 @@ public class ApnPreferenceControllerTest {
@Test @Test
public void handPreferenceTreeClick_fireIntent() { public void handPreferenceTreeClick_fireIntent() {
ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class); ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
doNothing().when(mContext).startActivity(captor.capture());
mController.handlePreferenceTreeClick(mPreference); mController.handlePreferenceTreeClick(mPreference);
verify(mContext).startActivity(captor.capture());
final Intent intent = captor.getValue(); final Intent intent = captor.getValue();
assertThat(intent.getAction()).isEqualTo(Settings.ACTION_APN_SETTINGS); assertThat(intent.getAction()).isEqualTo(Settings.ACTION_APN_SETTINGS);
assertThat(intent.getIntExtra(ApnSettings.SUB_ID, 0)).isEqualTo(SUB_ID); assertThat(intent.getIntExtra(ApnSettings.SUB_ID, 0)).isEqualTo(SUB_ID);

View File

@@ -21,6 +21,7 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U
import static com.google.common.truth.Truth.assertThat; 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.doReturn;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
@@ -49,6 +50,7 @@ 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.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class DataServiceSetupPreferenceControllerTest { public class DataServiceSetupPreferenceControllerTest {
@@ -72,7 +74,7 @@ public class DataServiceSetupPreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class)); mContext = spy(RuntimeEnvironment.application);
doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE); doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId( doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
@@ -125,11 +127,10 @@ public class DataServiceSetupPreferenceControllerTest {
@Test @Test
public void handlePreferenceTreeClick_startActivity() { public void handlePreferenceTreeClick_startActivity() {
ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class); ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
doNothing().when(mContext).startActivity(captor.capture());
mController.handlePreferenceTreeClick(mPreference); mController.handlePreferenceTreeClick(mPreference);
verify(mContext).startActivity(captor.capture());
final Intent intent = captor.getValue(); final Intent intent = captor.getValue();
assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW); assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW);
assertThat(intent.getData()).isEqualTo( assertThat(intent.getData()).isEqualTo(

View File

@@ -17,6 +17,7 @@
package com.android.settings.network.telephony; package com.android.settings.network.telephony;
import static com.google.common.truth.Truth.assertThat; 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.doReturn;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
@@ -40,6 +41,7 @@ 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.RuntimeEnvironment;
import org.robolectric.Shadows; import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowTelephonyManager; import org.robolectric.shadows.ShadowTelephonyManager;
import org.robolectric.util.ReflectionHelpers; import org.robolectric.util.ReflectionHelpers;
@@ -58,7 +60,7 @@ public class DataUsagePreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class)); mContext = spy(RuntimeEnvironment.application);
final TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class); final TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
final ShadowTelephonyManager shadowTelephonyManager = Shadows.shadowOf(telephonyManager); final ShadowTelephonyManager shadowTelephonyManager = Shadows.shadowOf(telephonyManager);
@@ -91,9 +93,10 @@ public class DataUsagePreferenceControllerTest {
@Test @Test
public void handlePreferenceTreeClick_needDialog_showDialog() { public void handlePreferenceTreeClick_needDialog_showDialog() {
final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
doNothing().when(mContext).startActivity(captor.capture());
mController.handlePreferenceTreeClick(mPreference); mController.handlePreferenceTreeClick(mPreference);
verify(mContext).startActivity(captor.capture());
final Intent intent = captor.getValue(); final Intent intent = captor.getValue();
assertThat(intent.getAction()).isEqualTo(Settings.ACTION_MOBILE_DATA_USAGE); assertThat(intent.getAction()).isEqualTo(Settings.ACTION_MOBILE_DATA_USAGE);

View File

@@ -38,6 +38,7 @@ 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.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class EuiccPreferenceControllerTest { public class EuiccPreferenceControllerTest {
@@ -46,6 +47,9 @@ public class EuiccPreferenceControllerTest {
@Mock @Mock
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
@Mock
private Activity mActivity;
private EuiccPreferenceController mController; private EuiccPreferenceController mController;
private Preference mPreference; private Preference mPreference;
private Context mContext; private Context mContext;
@@ -54,12 +58,12 @@ public class EuiccPreferenceControllerTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class)); mContext = spy(RuntimeEnvironment.application);
doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE); doReturn(mTelephonyManager).when(mActivity).getSystemService(Context.TELEPHONY_SERVICE);
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID); doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
mPreference = new Preference(mContext); mPreference = new Preference(mContext);
mController = new EuiccPreferenceController(mContext, "euicc"); mController = new EuiccPreferenceController(mActivity, "euicc");
mController.init(SUB_ID); mController.init(SUB_ID);
mPreference.setKey(mController.getPreferenceKey()); mPreference.setKey(mController.getPreferenceKey());
} }
@@ -70,7 +74,7 @@ public class EuiccPreferenceControllerTest {
mController.handlePreferenceTreeClick(mPreference); mController.handlePreferenceTreeClick(mPreference);
verify(mContext).startActivity(captor.capture()); verify(mActivity).startActivity(captor.capture());
assertThat(captor.getValue().getAction()).isEqualTo( assertThat(captor.getValue().getAction()).isEqualTo(
EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS); EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
} }

View File

@@ -164,7 +164,7 @@ public class MobileNetworkActivityTest {
@Test @Test
public void phoneChangeReceiver_ignoresStickyBroadcastFromBeforeRegistering() { public void phoneChangeReceiver_ignoresStickyBroadcastFromBeforeRegistering() {
Activity activity = Robolectric.setupActivity(Activity.class); Context activity = mContext;
MobileNetworkActivity.PhoneChangeReceiver.Client client = mock( MobileNetworkActivity.PhoneChangeReceiver.Client client = mock(
MobileNetworkActivity.PhoneChangeReceiver.Client.class); MobileNetworkActivity.PhoneChangeReceiver.Client.class);
MobileNetworkActivity.PhoneChangeReceiver receiver = MobileNetworkActivity.PhoneChangeReceiver receiver =
@@ -181,7 +181,7 @@ public class MobileNetworkActivityTest {
@Test @Test
public void phoneChangeReceiver_ignoresCarrierConfigChangeForWrongSubscriptionId() { public void phoneChangeReceiver_ignoresCarrierConfigChangeForWrongSubscriptionId() {
Activity activity = Robolectric.setupActivity(Activity.class); Context activity = mContext;
MobileNetworkActivity.PhoneChangeReceiver.Client client = mock( MobileNetworkActivity.PhoneChangeReceiver.Client client = mock(
MobileNetworkActivity.PhoneChangeReceiver.Client.class); MobileNetworkActivity.PhoneChangeReceiver.Client.class);
@@ -200,7 +200,7 @@ public class MobileNetworkActivityTest {
@Test @Test
public void phoneChangeReceiver_dispatchesCarrierConfigChangeForCorrectSubscriptionId() { public void phoneChangeReceiver_dispatchesCarrierConfigChangeForCorrectSubscriptionId() {
Activity activity = Robolectric.setupActivity(Activity.class); Context activity = mContext;
MobileNetworkActivity.PhoneChangeReceiver.Client client = mock( MobileNetworkActivity.PhoneChangeReceiver.Client client = mock(
MobileNetworkActivity.PhoneChangeReceiver.Client.class); MobileNetworkActivity.PhoneChangeReceiver.Client.class);