[Large Screen] Launch MobileNetworkActivity as a fragment for split mode
Receive intent in MobileNetworkActivity and launch a activity which extend SettingsActivity Test: atest Bug: 197609014 Bug: 209606859 Change-Id: Ic07b18b3ea11744f240b25a0986474df763a199b
This commit is contained in:
@@ -16,13 +16,10 @@
|
||||
|
||||
package com.android.settings.network.telephony;
|
||||
|
||||
import static androidx.lifecycle.Lifecycle.State;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.anyInt;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.robolectric.Shadows.shadowOf;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -30,21 +27,17 @@ import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import androidx.test.core.app.ActivityScenario;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import com.android.internal.telephony.TelephonyIntents;
|
||||
import com.android.settings.network.ProxySubscriptionManager;
|
||||
import com.android.settings.SettingsActivity;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
@@ -58,22 +51,16 @@ import org.robolectric.shadows.ShadowSubscriptionManager.SubscriptionInfoBuilder
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class MobileNetworkActivityTest {
|
||||
|
||||
private static final int CURRENT_SUB_ID = 3;
|
||||
private static final int PREV_SUB_ID = 1;
|
||||
private static final int SUB_ID = 1;
|
||||
private static final String DISPLAY_NAME = "SUB_ID";
|
||||
|
||||
private Context mContext;
|
||||
private ShadowContextImpl mShadowContextImpl;
|
||||
private Intent mTestIntent;
|
||||
|
||||
@Mock
|
||||
private UserManager mUserManager;
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
|
||||
private ShadowSubscriptionManager mSubscriptionManager;
|
||||
private SubscriptionInfo mSubscriptionInfo1;
|
||||
private SubscriptionInfo mSubscriptionInfo2;
|
||||
|
||||
private SubscriptionInfo mSubscriptionInfo;
|
||||
private ActivityScenario<MobileNetworkActivity> mMobileNetworkActivity;
|
||||
|
||||
@Before
|
||||
@@ -82,20 +69,16 @@ public class MobileNetworkActivityTest {
|
||||
|
||||
mContext = ApplicationProvider.getApplicationContext();
|
||||
mShadowContextImpl = Shadow.extract(RuntimeEnvironment.application.getBaseContext());
|
||||
|
||||
mSubscriptionManager = shadowOf(mContext.getSystemService(SubscriptionManager.class));
|
||||
mShadowContextImpl.setSystemService(Context.USER_SERVICE, mUserManager);
|
||||
doReturn(true).when(mUserManager).isAdminUser();
|
||||
|
||||
mShadowContextImpl.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
|
||||
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
|
||||
|
||||
mTestIntent = new Intent(mContext, MockMobileNetworkActivity.class);
|
||||
|
||||
mSubscriptionManager = shadowOf(mContext.getSystemService(SubscriptionManager.class));
|
||||
mSubscriptionInfo1 = SubscriptionInfoBuilder.newBuilder()
|
||||
.setId(PREV_SUB_ID).buildSubscriptionInfo();
|
||||
mSubscriptionInfo2 = SubscriptionInfoBuilder.newBuilder()
|
||||
.setId(CURRENT_SUB_ID).buildSubscriptionInfo();
|
||||
mTestIntent = new Intent(mContext, MobileNetworkActivity.class);
|
||||
mSubscriptionInfo = SubscriptionInfoBuilder.newBuilder()
|
||||
.setId(SUB_ID).setDisplayName(DISPLAY_NAME).buildSubscriptionInfo();
|
||||
mTestIntent.putExtra(Settings.EXTRA_SUB_ID, SUB_ID);
|
||||
mTestIntent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE,
|
||||
mSubscriptionInfo.getDisplayName());
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -105,116 +88,21 @@ public class MobileNetworkActivityTest {
|
||||
}
|
||||
}
|
||||
|
||||
private static class MockMobileNetworkActivity extends MobileNetworkActivity {
|
||||
private MockMobileNetworkActivity() {
|
||||
super();
|
||||
}
|
||||
|
||||
private SubscriptionInfo mSubscriptionInFragment;
|
||||
|
||||
@Override
|
||||
ProxySubscriptionManager getProxySubscriptionManager() {
|
||||
if (mProxySubscriptionMgr == null) {
|
||||
mProxySubscriptionMgr = mock(ProxySubscriptionManager.class);
|
||||
}
|
||||
return mProxySubscriptionMgr;
|
||||
}
|
||||
|
||||
@Override
|
||||
void registerActiveSubscriptionsListener() {
|
||||
onChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
void switchFragment(SubscriptionInfo subInfo) {
|
||||
mSubscriptionInFragment = subInfo;
|
||||
}
|
||||
}
|
||||
|
||||
private ActivityScenario<MobileNetworkActivity> createTargetActivity(Intent activityIntent) {
|
||||
return ActivityScenario.launch(activityIntent);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void updateBottomNavigationView_oneSubscription_shouldNotCrash() {
|
||||
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1);
|
||||
|
||||
public void onCreate_getExtraFromIntent() {
|
||||
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo);
|
||||
mMobileNetworkActivity = createTargetActivity(mTestIntent);
|
||||
|
||||
mMobileNetworkActivity.moveToState(State.STARTED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void updateBottomNavigationView_twoSubscription_shouldNotCrash() {
|
||||
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
|
||||
|
||||
mMobileNetworkActivity = createTargetActivity(mTestIntent);
|
||||
|
||||
mMobileNetworkActivity.moveToState(State.STARTED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void switchFragment_switchBetweenTwoSubscriptions() {
|
||||
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
|
||||
|
||||
mTestIntent.putExtra(Settings.EXTRA_SUB_ID, PREV_SUB_ID);
|
||||
mMobileNetworkActivity = createTargetActivity(mTestIntent);
|
||||
|
||||
mMobileNetworkActivity.moveToState(State.STARTED);
|
||||
|
||||
mMobileNetworkActivity.onActivity(activity -> {
|
||||
final MockMobileNetworkActivity mockActivity = (MockMobileNetworkActivity) activity;
|
||||
mockActivity.switchFragment(mSubscriptionInfo1);
|
||||
assertThat(mockActivity.mSubscriptionInFragment).isEqualTo(mSubscriptionInfo1);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void switchFragment_subscriptionsUpdate_notifyByIntent() {
|
||||
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
|
||||
|
||||
mTestIntent.putExtra(Settings.EXTRA_SUB_ID, PREV_SUB_ID);
|
||||
mMobileNetworkActivity = createTargetActivity(mTestIntent);
|
||||
|
||||
mMobileNetworkActivity.moveToState(State.STARTED);
|
||||
|
||||
mMobileNetworkActivity.onActivity(activity -> {
|
||||
final MockMobileNetworkActivity mockActivity = (MockMobileNetworkActivity) activity;
|
||||
mockActivity.switchFragment(mSubscriptionInfo1);
|
||||
assertThat(mockActivity.mSubscriptionInFragment).isEqualTo(mSubscriptionInfo1);
|
||||
|
||||
mContext.sendBroadcast(new Intent(
|
||||
CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED), null);
|
||||
|
||||
mockActivity.switchFragment(mSubscriptionInfo2);
|
||||
assertThat(mockActivity.mSubscriptionInFragment).isEqualTo(mSubscriptionInfo2);
|
||||
|
||||
mContext.sendBroadcast(new Intent(
|
||||
TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED), null);
|
||||
|
||||
mockActivity.switchFragment(mSubscriptionInfo1);
|
||||
assertThat(mockActivity.mSubscriptionInFragment).isEqualTo(mSubscriptionInfo1);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void onSaveInstanceState_saveCurrentSubId() {
|
||||
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
|
||||
|
||||
mTestIntent.putExtra(Settings.EXTRA_SUB_ID, PREV_SUB_ID);
|
||||
mMobileNetworkActivity = createTargetActivity(mTestIntent);
|
||||
|
||||
mMobileNetworkActivity.moveToState(State.STARTED);
|
||||
|
||||
mMobileNetworkActivity.onActivity(activity -> {
|
||||
final Bundle bundle = new Bundle();
|
||||
activity.saveInstanceState(bundle);
|
||||
assertThat(bundle.getInt(Settings.EXTRA_SUB_ID)).isEqualTo(PREV_SUB_ID);
|
||||
activity.onCreate(bundle);
|
||||
assertThat(bundle.getInt(Settings.EXTRA_SUB_ID)).isEqualTo(SUB_ID);
|
||||
assertThat(bundle.getString(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE)).isEqualTo(
|
||||
DISPLAY_NAME);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user