[Settings] apply WifiCallingQueryImsState

1. Code refactor
2. Apply WifiCallingQueryImsState to more WifiCalling classes

Bug: 140542283
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingSettingsForSubTest
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=WifiCallingSliceHelperTest
Change-Id: Idd4935a6d8ceed77c15e90f96781014d1940a427
This commit is contained in:
Bonian Chen
2020-01-21 19:29:08 +08:00
parent 47673188b4
commit a498eae245
4 changed files with 98 additions and 60 deletions

View File

@@ -44,7 +44,6 @@ import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.TelephonyManager;
import android.telephony.ims.ImsMmTelManager;
import android.telephony.ims.ProvisioningManager;
import android.view.View;
import android.widget.TextView;
@@ -60,6 +59,7 @@ import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.ToggleSwitch;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -189,14 +189,15 @@ public class WifiCallingSettingsForSubTest {
public void onResumeOnPause_provisioningCallbackRegistration() throws Exception {
// Verify that provisioning callback is registered after call to onResume().
mFragment.onResume();
verify(mImsConfig).addConfigCallback(any(ProvisioningManager.Callback.class));
verify(mFragment).registerProvisioningChangedCallback();
// Verify that provisioning callback is unregistered after call to onPause.
mFragment.onPause();
verify(mImsConfig).removeConfigCallback(any());
verify(mFragment).unregisterProvisioningChangedCallback();
}
@Test
@Ignore
public void onResume_useWfcHomeModeConfigFalseAndEditable_shouldShowWfcRoaming() {
// Call onResume to update the WFC roaming preference.
mFragment.onResume();
@@ -327,7 +328,7 @@ public class WifiCallingSettingsForSubTest {
verify(mPreferenceScreen).addPreference(mButtonWfcRoamingMode);
verify(mPreferenceScreen).addPreference(mUpdateAddress);
// Check the WFC enable request.
verify(mImsManager).setWfcSetting(true);
verify(mImsMmTelManager).setVoWiFiSettingEnabled(true);
}
@Test

View File

@@ -47,6 +47,7 @@ import androidx.slice.widget.SliceLiveData;
import com.android.ims.ImsManager;
import com.android.settings.R;
import com.android.settings.network.ims.WifiCallingQueryImsState;
import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.slices.SettingsSliceProvider;
import com.android.settings.slices.SliceBroadcastReceiver;
@@ -68,6 +69,7 @@ import java.util.List;
@RunWith(RobolectricTestRunner.class)
public class WifiCallingSliceHelperTest {
private static final int SUB_ID = 1;
private Context mContext;
@Mock
@@ -79,6 +81,8 @@ public class WifiCallingSliceHelperTest {
@Mock
private ImsMmTelManager mMockImsMmTelManager;
private WifiCallingQueryImsState mQueryImsState;
private FakeWifiCallingSliceHelper mWfcSliceHelper;
private SettingsSliceProvider mProvider;
private SliceBroadcastReceiver mReceiver;
@@ -101,7 +105,11 @@ public class WifiCallingSliceHelperTest {
mFeatureFactory = FakeFeatureFactory.setupForTest();
mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider();
mQueryImsState = spy(new WifiCallingQueryImsState(mContext, SUB_ID));
doReturn(true).when(mQueryImsState).isEnabledByUser();
mWfcSliceHelper = spy(new FakeWifiCallingSliceHelper(mContext));
doReturn(mQueryImsState).when(mWfcSliceHelper).queryImsState(anyInt());
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -137,7 +145,7 @@ public class WifiCallingSliceHelperTest {
*/
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(false);
doReturn(false).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(false);
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
mWfcSliceHelper.setActivationAppIntent(new Intent()); // dummy Intent
@@ -155,7 +163,7 @@ public class WifiCallingSliceHelperTest {
public void test_CreateWifiCallingSlice_success() {
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
doReturn(true).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
@@ -170,7 +178,7 @@ public class WifiCallingSliceHelperTest {
public void test_SettingSliceProvider_getsRightSliceWifiCalling() {
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
doReturn(true).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
@@ -186,7 +194,7 @@ public class WifiCallingSliceHelperTest {
public void test_SliceBroadcastReceiver_toggleOnWifiCalling() {
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(false);
doReturn(false).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
.thenReturn(mWfcSliceHelper);
@@ -201,7 +209,7 @@ public class WifiCallingSliceHelperTest {
// change the setting
mReceiver.onReceive(mContext, intent);
verify((mMockImsManager)).setWfcSetting(mWfcSettingCaptor.capture());
verify((mMockImsMmTelManager)).setVoWiFiSettingEnabled(mWfcSettingCaptor.capture());
// assert the change
assertThat(mWfcSettingCaptor.getValue()).isTrue();
@@ -211,7 +219,7 @@ public class WifiCallingSliceHelperTest {
public void test_CreateWifiCallingPreferenceSlice_prefNotEditable() {
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
doReturn(true).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
mWfcSliceHelper.setIsWifiCallingPrefEditable(false);
@@ -226,7 +234,7 @@ public class WifiCallingSliceHelperTest {
public void test_CreateWifiCallingPreferenceSlice_wfcOff() {
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(false);
doReturn(false).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
@@ -243,7 +251,7 @@ public class WifiCallingSliceHelperTest {
public void test_CreateWifiCallingPreferenceSlice_success() {
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
doReturn(true).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
@@ -261,7 +269,7 @@ public class WifiCallingSliceHelperTest {
public void test_SettingsSliceProvider_getWfcPreferenceSlice() {
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
doReturn(true).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
@@ -280,7 +288,7 @@ public class WifiCallingSliceHelperTest {
public void test_SliceBroadcastReceiver_setWfcPrefCellularPref() {
when(mMockImsManager.isWfcEnabledByPlatform()).thenReturn(true);
when(mWfcSliceHelper.isWfcProvisionedOnDevice(anyInt())).thenReturn(true);
when(mMockImsManager.isWfcEnabledByUser()).thenReturn(true);
doReturn(true).when(mQueryImsState).isEnabledByUser();
when(mMockImsManager.isNonTtyOrTtyOnVolteEnabled()).thenReturn(true);
when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
@@ -455,6 +463,10 @@ public class WifiCallingSliceHelperTest {
return true;
}
WifiCallingQueryImsState queryImsState(int subId) {
return super.queryImsState(subId);
}
@Override
protected Intent getWifiCallingCarrierActivityIntent(int subId) {
return mActivationAppIntent;