Support reset IMS stack in Reset Mobile Network flow

Reset the IMS stack for the specified subscription
with the help of API TelephonyManager#resetIms.

Bug: 271921464
Test: ResetNetworkOperationBuilderTest
Change-Id: I61575f18bcc300f362000dc7f4257b9d794b6b69
This commit is contained in:
rambowang
2023-12-20 19:57:14 -06:00
parent b010448689
commit 41ba9dc658
6 changed files with 134 additions and 12 deletions

View File

@@ -16,12 +16,12 @@
package com.android.settings.network;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.net.ConnectivityManager;
@@ -34,6 +34,8 @@ import android.telephony.TelephonyManager;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.ResetNetworkRequest;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -129,4 +131,44 @@ public class ResetNetworkOperationBuilderTest {
verify(mTelephonyManager).resetSettings();
verify(mNetworkPolicyManager).factoryReset(imsi);
}
@Test
public void resetIms_performReset_whenBuildAndRun_withSingleValidSubId() {
final int subId = 1;
doReturn(mTelephonyManager).when(mTelephonyManager)
.createForSubscriptionId(anyInt());
doReturn(mTelephonyManager).when(mContext)
.getSystemService(Context.TELEPHONY_SERVICE);
mBuilder.resetIms(subId).build().run();
verify(mTelephonyManager).resetIms(anyInt());
}
@Test
public void resetIms_performReset_whenBuildAndRun_withInvalidSubId() {
final int subId = ResetNetworkRequest.INVALID_SUBSCRIPTION_ID;
doReturn(mTelephonyManager).when(mTelephonyManager)
.createForSubscriptionId(anyInt());
doReturn(mTelephonyManager).when(mContext)
.getSystemService(Context.TELEPHONY_SERVICE);
mBuilder.resetIms(subId).build().run();
verify(mTelephonyManager, never()).resetIms(anyInt());
}
@Test
public void resetIms_performReset_whenBuildAndRun_withAllValidSubId() {
final int subId = ResetNetworkRequest.ALL_SUBSCRIPTION_ID;
doReturn(mTelephonyManager).when(mTelephonyManager)
.createForSubscriptionId(anyInt());
doReturn(mTelephonyManager).when(mContext)
.getSystemService(Context.TELEPHONY_SERVICE);
doReturn(2).when(mTelephonyManager).getActiveModemCount();
mBuilder.resetIms(subId).build().run();
verify(mTelephonyManager, times(2)).resetIms(anyInt());
}
}