diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-08-10 23:27:43 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-08-10 23:27:43 +0000 |
commit | 9038f35c4014441a8cfb073a53a2b45e730b6622 (patch) | |
tree | 32774c7a7d913fb26310261782a339e1eebc8ecb | |
parent | 435908f0f03b7617ec577a22c91919f6b5b8ddcd (diff) | |
parent | 092f09557864be92833192aa8a2f6916fc659641 (diff) | |
download | Mms-android13-qpr1-s2-release.tar.gz |
Snap for 8931212 from 092f09557864be92833192aa8a2f6916fc659641 to tm-qpr1-releaseandroid-13.0.0_r30android-13.0.0_r29android-13.0.0_r28android-13.0.0_r27android-13.0.0_r24android-13.0.0_r23android-13.0.0_r22android-13.0.0_r21android-13.0.0_r20android-13.0.0_r19android-13.0.0_r18android-13.0.0_r17android-13.0.0_r16android13-qpr1-s8-releaseandroid13-qpr1-s7-releaseandroid13-qpr1-s6-releaseandroid13-qpr1-s5-releaseandroid13-qpr1-s4-releaseandroid13-qpr1-s3-releaseandroid13-qpr1-s2-releaseandroid13-qpr1-s1-releaseandroid13-qpr1-release
Change-Id: Ic5c59b4fe7b9e0f262f1cf886d4c47a9f60e3f35
-rw-r--r-- | src/com/android/mms/service/metrics/MmsStats.java | 8 | ||||
-rw-r--r-- | tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java | 129 |
2 files changed, 135 insertions, 2 deletions
diff --git a/src/com/android/mms/service/metrics/MmsStats.java b/src/com/android/mms/service/metrics/MmsStats.java index 4e7003f..26e8967 100644 --- a/src/com/android/mms/service/metrics/MmsStats.java +++ b/src/com/android/mms/service/metrics/MmsStats.java @@ -31,7 +31,6 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.UiccCardInfo; -import android.util.Log; import com.android.internal.telephony.SmsApplication; import com.android.mms.IncomingMms; @@ -162,7 +161,8 @@ public class MmsStats { /** Returns data network roaming type of current subscription. */ private int getDataRoamingType() { ServiceState serviceState = mTelephonyManager.getServiceState(); - return serviceState.getDataRoamingType(); + return (serviceState != null) ? serviceState.getDataRoamingType() : + ServiceState.ROAMING_TYPE_NOT_ROAMING; } /** Returns slot index associated with the subscription. */ @@ -173,6 +173,10 @@ public class MmsStats { /** Returns whether the device has multiple active SIM profiles. */ private boolean getIsMultiSim() { SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class); + if(subManager == null) { + return false; + } + List<SubscriptionInfo> activeSubscriptionInfo = subManager.getActiveSubscriptionInfoList(); return (activeSubscriptionInfo.size() > 1); } diff --git a/tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java b/tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java new file mode 100644 index 0000000..f176b6b --- /dev/null +++ b/tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.mms.service.metrics; + +import static com.android.mms.MmsStatsLog.INCOMING_MMS__RESULT__MMS_RESULT_SUCCESS; +import static com.android.mms.MmsStatsLog.OUTGOING_MMS__RESULT__MMS_RESULT_SUCCESS; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; + +import android.app.Activity; +import android.content.Context; +import android.telephony.ServiceState; +import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; + +import com.android.mms.IncomingMms; +import com.android.mms.OutgoingMms; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.mockito.ArgumentCaptor; + +public class MmsStatsTest { + // Mocked classes + private Context mContext; + private PersistMmsAtomsStorage mPersistMmsAtomsStorage; + private TelephonyManager mTelephonyManager; + + @Before + public void setUp() { + mContext = mock(Context.class); + mPersistMmsAtomsStorage = mock(PersistMmsAtomsStorage.class); + mTelephonyManager = mock(TelephonyManager.class); + } + + @After + public void tearDown() { + mContext = null; + mPersistMmsAtomsStorage = null; + mTelephonyManager = null; + } + + @Test + public void addAtomToStorage_incomingMms_default() { + doReturn(null).when(mTelephonyManager).getServiceState(); + doReturn(TelephonyManager.UNKNOWN_CARRIER_ID).when(mTelephonyManager).getSimCarrierId(); + int inactiveSubId = 123; + MmsStats mmsStats = new MmsStats(mContext, mPersistMmsAtomsStorage, inactiveSubId, + mTelephonyManager, null, true); + mmsStats.addAtomToStorage(Activity.RESULT_OK); + + ArgumentCaptor<IncomingMms> incomingMmsCaptor = ArgumentCaptor.forClass(IncomingMms.class); + verify(mPersistMmsAtomsStorage).addIncomingMms(incomingMmsCaptor.capture()); + IncomingMms incomingMms = incomingMmsCaptor.getValue(); + assertThat(incomingMms.getRat()).isEqualTo(TelephonyManager.NETWORK_TYPE_UNKNOWN); + assertThat(incomingMms.getResult()).isEqualTo(INCOMING_MMS__RESULT__MMS_RESULT_SUCCESS); + assertThat(incomingMms.getRoaming()).isEqualTo(ServiceState.ROAMING_TYPE_NOT_ROAMING); + assertThat(incomingMms.getSimSlotIndex()).isEqualTo( + SubscriptionManager.INVALID_SIM_SLOT_INDEX); + assertThat(incomingMms.getIsMultiSim()).isEqualTo(false); + assertThat(incomingMms.getIsEsim()).isEqualTo(false); + assertThat(incomingMms.getCarrierId()).isEqualTo(TelephonyManager.UNKNOWN_CARRIER_ID); + assertThat(incomingMms.getMmsCount()).isEqualTo(1); + assertThat(incomingMms.getRetryId()).isEqualTo(0); + assertThat(incomingMms.getHandledByCarrierApp()).isEqualTo(false); + verifyNoMoreInteractions(mPersistMmsAtomsStorage); + } + + @Test + public void addAtomToStorage_outgoingMms_default() { + doReturn(null).when(mTelephonyManager).getServiceState(); + doReturn(TelephonyManager.UNKNOWN_CARRIER_ID).when(mTelephonyManager).getSimCarrierId(); + int inactiveSubId = 123; + MmsStats mmsStats = new MmsStats(mContext, mPersistMmsAtomsStorage, inactiveSubId, + mTelephonyManager, null, false); + mmsStats.addAtomToStorage(Activity.RESULT_OK); + + ArgumentCaptor<OutgoingMms> outgoingMmsCaptor = ArgumentCaptor.forClass(OutgoingMms.class); + verify(mPersistMmsAtomsStorage).addOutgoingMms(outgoingMmsCaptor.capture()); + OutgoingMms outgoingMms = outgoingMmsCaptor.getValue(); + assertThat(outgoingMms.getRat()).isEqualTo(TelephonyManager.NETWORK_TYPE_UNKNOWN); + assertThat(outgoingMms.getResult()).isEqualTo(OUTGOING_MMS__RESULT__MMS_RESULT_SUCCESS); + assertThat(outgoingMms.getRoaming()).isEqualTo(ServiceState.ROAMING_TYPE_NOT_ROAMING); + assertThat(outgoingMms.getSimSlotIndex()).isEqualTo( + SubscriptionManager.INVALID_SIM_SLOT_INDEX); + assertThat(outgoingMms.getIsMultiSim()).isEqualTo(false); + assertThat(outgoingMms.getIsEsim()).isEqualTo(false); + assertThat(outgoingMms.getCarrierId()).isEqualTo(TelephonyManager.UNKNOWN_CARRIER_ID); + assertThat(outgoingMms.getMmsCount()).isEqualTo(1); + assertThat(outgoingMms.getRetryId()).isEqualTo(0); + assertThat(outgoingMms.getHandledByCarrierApp()).isEqualTo(false); + assertThat(outgoingMms.getIsFromDefaultApp()).isEqualTo(false); + verifyNoMoreInteractions(mPersistMmsAtomsStorage); + } + + @Test + public void getDataRoamingType_serviceState_notNull() { + ServiceState serviceState = mock(ServiceState.class); + doReturn(serviceState).when(mTelephonyManager).getServiceState(); + MmsStats mmsStats = new MmsStats(mContext, mPersistMmsAtomsStorage, 1, + mTelephonyManager, null, true); + mmsStats.addAtomToStorage(Activity.RESULT_OK); + + ArgumentCaptor<IncomingMms> incomingMmsCaptor = ArgumentCaptor.forClass(IncomingMms.class); + verify(mPersistMmsAtomsStorage).addIncomingMms(incomingMmsCaptor.capture()); + IncomingMms incomingMms = incomingMmsCaptor.getValue(); + assertThat(incomingMms.getRoaming()).isEqualTo(ServiceState.ROAMING_TYPE_NOT_ROAMING); + } +}
\ No newline at end of file |