aboutsummaryrefslogtreecommitdiff
path: root/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java')
-rw-r--r--tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java89
1 files changed, 51 insertions, 38 deletions
diff --git a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
index 6bed1b627c..b044814765 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
@@ -16,7 +16,8 @@
package com.android.internal.telephony;
-import static org.junit.Assert.assertNotNull;
+import static com.android.internal.telephony.TelephonyStatsLog.CELLULAR_SERVICE_STATE__FOLD_STATE__STATE_UNKNOWN;
+
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.anyString;
@@ -107,13 +108,17 @@ import com.android.internal.telephony.data.LinkBandwidthEstimator;
import com.android.internal.telephony.data.PhoneSwitcher;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
+import com.android.internal.telephony.imsphone.ImsNrSaModeHandler;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
+import com.android.internal.telephony.metrics.DeviceStateHelper;
import com.android.internal.telephony.metrics.ImsStats;
import com.android.internal.telephony.metrics.MetricsCollector;
import com.android.internal.telephony.metrics.PersistAtomsStorage;
+import com.android.internal.telephony.metrics.ServiceStateStats;
import com.android.internal.telephony.metrics.SmsStats;
import com.android.internal.telephony.metrics.VoiceCallSessionStats;
+import com.android.internal.telephony.satellite.SatelliteController;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.internal.telephony.test.SimulatedCommands;
import com.android.internal.telephony.test.SimulatedCommandsVerifier;
@@ -203,7 +208,6 @@ public abstract class TelephonyTest {
protected GsmCdmaCall mGsmCdmaCall;
protected ImsCall mImsCall;
protected ImsEcbm mImsEcbm;
- protected SubscriptionController mSubscriptionController;
protected SubscriptionManagerService mSubscriptionManagerService;
protected ServiceState mServiceState;
protected IPackageManager.Stub mMockPackageManager;
@@ -232,6 +236,7 @@ public abstract class TelephonyTest {
protected CarrierSignalAgent mCarrierSignalAgent;
protected CarrierActionAgent mCarrierActionAgent;
protected ImsExternalCallTracker mImsExternalCallTracker;
+ protected ImsNrSaModeHandler mImsNrSaModeHandler;
protected AppSmsManager mAppSmsManager;
protected IccSmsInterfaceManager mIccSmsInterfaceManager;
protected SmsDispatchersController mSmsDispatchersController;
@@ -240,7 +245,6 @@ public abstract class TelephonyTest {
protected IntentBroadcaster mIntentBroadcaster;
protected NitzStateMachine mNitzStateMachine;
protected RadioConfig mMockRadioConfig;
- protected SubscriptionInfoUpdater mSubInfoRecordUpdater;
protected LocaleTracker mLocaleTracker;
protected RestrictedState mRestrictedState;
protected PhoneConfigurationManager mPhoneConfigurationManager;
@@ -266,6 +270,9 @@ public abstract class TelephonyTest {
protected CellLocation mCellLocation;
protected DataServiceManager mMockedWwanDataServiceManager;
protected DataServiceManager mMockedWlanDataServiceManager;
+ protected ServiceStateStats mServiceStateStats;
+ protected SatelliteController mSatelliteController;
+ protected DeviceStateHelper mDeviceStateHelper;
// Initialized classes
protected ActivityManager mActivityManager;
@@ -437,7 +444,6 @@ public abstract class TelephonyTest {
mGsmCdmaCall = Mockito.mock(GsmCdmaCall.class);
mImsCall = Mockito.mock(ImsCall.class);
mImsEcbm = Mockito.mock(ImsEcbm.class);
- mSubscriptionController = Mockito.mock(SubscriptionController.class);
mSubscriptionManagerService = Mockito.mock(SubscriptionManagerService.class);
mServiceState = Mockito.mock(ServiceState.class);
mMockPackageManager = Mockito.mock(IPackageManager.Stub.class);
@@ -466,6 +472,7 @@ public abstract class TelephonyTest {
mCarrierSignalAgent = Mockito.mock(CarrierSignalAgent.class);
mCarrierActionAgent = Mockito.mock(CarrierActionAgent.class);
mImsExternalCallTracker = Mockito.mock(ImsExternalCallTracker.class);
+ mImsNrSaModeHandler = Mockito.mock(ImsNrSaModeHandler.class);
mAppSmsManager = Mockito.mock(AppSmsManager.class);
mIccSmsInterfaceManager = Mockito.mock(IccSmsInterfaceManager.class);
mSmsDispatchersController = Mockito.mock(SmsDispatchersController.class);
@@ -474,7 +481,6 @@ public abstract class TelephonyTest {
mIntentBroadcaster = Mockito.mock(IntentBroadcaster.class);
mNitzStateMachine = Mockito.mock(NitzStateMachine.class);
mMockRadioConfig = Mockito.mock(RadioConfig.class);
- mSubInfoRecordUpdater = Mockito.mock(SubscriptionInfoUpdater.class);
mLocaleTracker = Mockito.mock(LocaleTracker.class);
mRestrictedState = Mockito.mock(RestrictedState.class);
mPhoneConfigurationManager = Mockito.mock(PhoneConfigurationManager.class);
@@ -500,6 +506,9 @@ public abstract class TelephonyTest {
mCellLocation = Mockito.mock(CellLocation.class);
mMockedWwanDataServiceManager = Mockito.mock(DataServiceManager.class);
mMockedWlanDataServiceManager = Mockito.mock(DataServiceManager.class);
+ mServiceStateStats = Mockito.mock(ServiceStateStats.class);
+ mSatelliteController = Mockito.mock(SatelliteController.class);
+ mDeviceStateHelper = Mockito.mock(DeviceStateHelper.class);
TelephonyManager.disableServiceHandleCaching();
PropertyInvalidatedCache.disableForTestMode();
@@ -525,7 +534,9 @@ public abstract class TelephonyTest {
Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
- enableSubscriptionManagerService(true);
+ mServiceManagerMockedServices.put("isub", mSubscriptionManagerService);
+ doReturn(mSubscriptionManagerService).when(mSubscriptionManagerService)
+ .queryLocalInterface(anyString());
mPhone.mCi = mSimulatedCommands;
mCT.mCi = mSimulatedCommands;
@@ -585,6 +596,8 @@ public abstract class TelephonyTest {
anyInt(), nullable(Object.class));
doReturn(mImsExternalCallTracker).when(mTelephonyComponentFactory)
.makeImsExternalCallTracker(nullable(ImsPhone.class));
+ doReturn(mImsNrSaModeHandler).when(mTelephonyComponentFactory)
+ .makeImsNrSaModeHandler(nullable(ImsPhone.class));
doReturn(mAppSmsManager).when(mTelephonyComponentFactory)
.makeAppSmsManager(nullable(Context.class));
doReturn(mCarrierSignalAgent).when(mTelephonyComponentFactory)
@@ -716,7 +729,14 @@ public abstract class TelephonyTest {
doReturn(mPhone).when(mInboundSmsHandler).getPhone();
doReturn(mImsCallProfile).when(mImsCall).getCallProfile();
doReturn(mIBinder).when(mIIntentSender).asBinder();
- doReturn(mIIntentSender).when(mIActivityManager).getIntentSenderWithFeature(anyInt(),
+ doAnswer(invocation -> {
+ Intent[] intents = invocation.getArgument(6);
+ if (intents != null && intents.length > 0) {
+ doReturn(intents[0]).when(mIActivityManager)
+ .getIntentForIntentSender(mIIntentSender);
+ }
+ return mIIntentSender;
+ }).when(mIActivityManager).getIntentSenderWithFeature(anyInt(),
nullable(String.class), nullable(String.class), nullable(IBinder.class),
nullable(String.class), anyInt(), nullable(Intent[].class),
nullable(String[].class), anyInt(), nullable(Bundle.class), anyInt());
@@ -725,6 +745,7 @@ public abstract class TelephonyTest {
doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
doReturn(mServiceState).when(mSST).getServiceState();
+ doReturn(mServiceStateStats).when(mSST).getServiceStateStats();
mSST.mSS = mServiceState;
mSST.mRestrictedState = mRestrictedState;
mServiceManagerMockedServices.put("connectivity_metrics_logger", mConnMetLoggerBinder);
@@ -734,13 +755,10 @@ public abstract class TelephonyTest {
doReturn(new int[]{AccessNetworkConstants.TRANSPORT_TYPE_WWAN,
AccessNetworkConstants.TRANSPORT_TYPE_WLAN})
.when(mAccessNetworksManager).getAvailableTransports();
- doReturn(new int[]{AccessNetworkConstants.TRANSPORT_TYPE_WWAN,
- AccessNetworkConstants.TRANSPORT_TYPE_WLAN})
- .when(mAccessNetworksManager).getAvailableTransports();
doReturn(true).when(mDataSettingsManager).isDataEnabled();
doReturn(mNetworkRegistrationInfo).when(mServiceState).getNetworkRegistrationInfo(
anyInt(), anyInt());
- doReturn(RIL.RADIO_HAL_VERSION_2_0).when(mPhone).getHalVersion();
+ doReturn(RIL.RADIO_HAL_VERSION_2_0).when(mPhone).getHalVersion(anyInt());
doReturn(2).when(mSignalStrength).getLevel();
// WiFi
@@ -815,6 +833,11 @@ public abstract class TelephonyTest {
doReturn(null).when(mContext).getFileStreamPath(anyString());
doReturn(mPersistAtomsStorage).when(mMetricsCollector).getAtomsStorage();
doReturn(mWifiManager).when(mContext).getSystemService(eq(Context.WIFI_SERVICE));
+ doReturn(mDeviceStateHelper).when(mMetricsCollector).getDeviceStateHelper();
+ doReturn(CELLULAR_SERVICE_STATE__FOLD_STATE__STATE_UNKNOWN)
+ .when(mDeviceStateHelper)
+ .getFoldState();
+ doReturn(null).when(mContext).getSystemService(eq(Context.DEVICE_STATE_SERVICE));
//Use reflection to mock singletons
replaceInstance(CallManager.class, "INSTANCE", null, mCallManager);
@@ -822,7 +845,6 @@ public abstract class TelephonyTest {
mTelephonyComponentFactory);
replaceInstance(UiccController.class, "mInstance", null, mUiccController);
replaceInstance(CdmaSubscriptionSourceManager.class, "sInstance", null, mCdmaSSM);
- replaceInstance(SubscriptionController.class, "sInstance", null, mSubscriptionController);
replaceInstance(SubscriptionManagerService.class, "sInstance", null,
mSubscriptionManagerService);
replaceInstance(ProxyController.class, "sProxyController", null, mProxyController);
@@ -843,7 +865,6 @@ public abstract class TelephonyTest {
replaceInstance(PhoneFactory.class, "sMadeDefaults", null, true);
replaceInstance(PhoneFactory.class, "sPhone", null, mPhone);
replaceInstance(PhoneFactory.class, "sPhones", null, mPhones);
- replaceInstance(PhoneFactory.class, "sSubInfoRecordUpdater", null, mSubInfoRecordUpdater);
replaceInstance(RadioConfig.class, "sRadioConfig", null, mMockRadioConfig);
replaceInstance(PhoneConfigurationManager.class, "sInstance", null,
mPhoneConfigurationManager);
@@ -851,15 +872,10 @@ public abstract class TelephonyTest {
mCellularNetworkValidator);
replaceInstance(MultiSimSettingController.class, "sInstance", null,
mMultiSimSettingController);
- replaceInstance(SubscriptionInfoUpdater.class, "sIsSubInfoInitialized", null, true);
replaceInstance(PhoneFactory.class, "sCommandsInterfaces", null,
new CommandsInterface[] {mSimulatedCommands});
replaceInstance(PhoneFactory.class, "sMetricsCollector", null, mMetricsCollector);
-
- if (!isSubscriptionManagerServiceEnabled()) {
- assertNotNull("Failed to set up SubscriptionController singleton",
- SubscriptionController.getInstance());
- }
+ replaceInstance(SatelliteController.class, "sInstance", null, mSatelliteController);
setReady(false);
// create default TestableLooper for test and add to list of monitored loopers
@@ -958,14 +974,17 @@ public abstract class TelephonyTest {
private static final String PROPERTY_DEVICE_IDENTIFIER_ACCESS_RESTRICTIONS_DISABLED =
DeviceConfig.NAMESPACE_PRIVACY + "/"
+ "device_identifier_access_restrictions_disabled";
+ private HashMap<String, String> mFlags = new HashMap<>();
@Override
public Bundle call(String method, String arg, Bundle extras) {
+ logd("FakeSettingsConfigProvider: call called, method: " + method +
+ " request: " + arg + ", args=" + extras);
+ Bundle bundle = new Bundle();
switch (method) {
case Settings.CALL_METHOD_GET_CONFIG: {
switch (arg) {
case PROPERTY_DEVICE_IDENTIFIER_ACCESS_RESTRICTIONS_DISABLED: {
- Bundle bundle = new Bundle();
bundle.putString(
PROPERTY_DEVICE_IDENTIFIER_ACCESS_RESTRICTIONS_DISABLED,
"0");
@@ -977,6 +996,18 @@ public abstract class TelephonyTest {
}
break;
}
+ case Settings.CALL_METHOD_LIST_CONFIG:
+ logd("LIST_config: " + mFlags);
+ Bundle result = new Bundle();
+ result.putSerializable(Settings.NameValueTable.VALUE, mFlags);
+ return result;
+ case Settings.CALL_METHOD_SET_ALL_CONFIG:
+ mFlags = (extras != null)
+ ? (HashMap) extras.getSerializable(Settings.CALL_METHOD_FLAGS_KEY)
+ : new HashMap<>();
+ bundle.putInt(Settings.KEY_CONFIG_SET_ALL_RETURN,
+ Settings.SET_ALL_RESULT_SUCCESS);
+ return bundle;
default:
fail("Method not expected: " + method);
}
@@ -1261,22 +1292,4 @@ public abstract class TelephonyTest {
}
}
}
-
- protected void enableSubscriptionManagerService(boolean enabled) throws Exception {
- if (enabled) {
- mServiceManagerMockedServices.put("isub", mSubscriptionManagerService);
- doReturn(mSubscriptionManagerService).when(mIBinder)
- .queryLocalInterface(anyString());
- }
- replaceInstance(PhoneFactory.class, "sSubscriptionManagerServiceEnabled", null, enabled);
- mContextFixture.putBooleanResource(com.android.internal.R.bool
- .config_using_subscription_manager_service, enabled);
- doReturn(enabled).when(mPhone).isSubscriptionManagerServiceEnabled();
- doReturn(enabled).when(mPhone2).isSubscriptionManagerServiceEnabled();
- doReturn(enabled).when(mImsPhone).isSubscriptionManagerServiceEnabled();
- }
-
- protected boolean isSubscriptionManagerServiceEnabled() {
- return mPhone.isSubscriptionManagerServiceEnabled();
- }
}