Loading tests/telephonytests/src/com/android/internal/telephony/ims/ImsManagerTest.java +101 −0 Original line number Diff line number Diff line Loading @@ -61,10 +61,14 @@ public class ImsManagerTest extends TelephonyTest { private static final boolean VT_IMS_ENABLE_DEFAULT_VAL = true; private static final boolean WFC_IMS_EDITABLE_VAL = true; private static final boolean WFC_IMS_NOT_EDITABLE_VAL = false; private static final boolean WFC_IMS_ROAMING_EDITABLE_VAL = true; private static final boolean WFC_IMS_ROAMING_NOT_EDITABLE_VAL = false; private static final int WFC_IMS_MODE_DEFAULT_VAL = ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED; private static final int WFC_IMS_ROAMING_MODE_DEFAULT_VAL = ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED; private static final boolean WFC_USE_HOME_MODE_FOR_ROAMING_VAL = true; private static final boolean WFC_NOT_USE_HOME_MODE_FOR_ROAMING_VAL = false; PersistableBundle mBundle; @Mock IBinder mBinder; Loading Loading @@ -107,6 +111,8 @@ public class ImsManagerTest extends TelephonyTest { ENHANCED_4G_MODE_EDITABLE); mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, WFC_IMS_EDITABLE_VAL); mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, WFC_IMS_ROAMING_EDITABLE_VAL); mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL, WFC_IMS_ENABLE_DEFAULT_VAL); mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL, Loading @@ -118,6 +124,9 @@ public class ImsManagerTest extends TelephonyTest { mBundle.putBoolean(CarrierConfigManager.KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL, ENHANCED_4G_MODE_DEFAULT_VAL); mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, true); mBundle.putBoolean( CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, WFC_NOT_USE_HOME_MODE_FOR_ROAMING_VAL); } @Test @SmallTest Loading Loading @@ -653,6 +662,98 @@ public class ImsManagerTest extends TelephonyTest { eq(WFC_IMS_MODE_DEFAULT_VAL)); } /** * Tests the operation of getWfcMode when the configuration to use the home network mode when * roaming for WFC is false. First, it checks that the user setting for WFC_IMS_ROAMING_MODE is * returned when WFC roaming is set to editable. Then, it switches the WFC roaming mode to not * editable and ensures that the default WFC roaming mode is returned. * * Preconditions: * - CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL = false */ @Test @SmallTest public void getWfcMode_useWfcHomeModeConfigFalse_shouldUseWfcRoamingMode() { // Set some values that are different than the defaults for WFC mode. doReturn(String.valueOf(ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)) .when(mSubscriptionController).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_MODE), anyString()); doReturn(String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED)) .when(mSubscriptionController).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_ROAMING_MODE), anyString()); ImsManager imsManager = getImsManagerAndInitProvisionedValues(); // Check that use the WFC roaming network mode. assertEquals(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED, imsManager.getWfcMode(true)); verify(mSubscriptionController, times(1)).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_ROAMING_MODE), anyString()); // Set WFC roaming network mode to not editable. mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, WFC_IMS_ROAMING_NOT_EDITABLE_VAL); // Check that use the default WFC roaming network mode. assertEquals(WFC_IMS_ROAMING_MODE_DEFAULT_VAL, imsManager.getWfcMode(true)); verify(mSubscriptionController, times(1)).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_ROAMING_MODE), anyString()); } /** * Tests the operation of getWfcMode when the configuration to use the home network mode when * roaming for WFC is true independent of whether or not the WFC roaming mode is editable. * * Preconditions: * - CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL = true */ @Test @SmallTest public void getWfcMode_useWfcHomeModeConfigTrue_shouldUseWfcHomeMode() { // Set some values that are different than the defaults for WFC mode. doReturn(String.valueOf(ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)) .when(mSubscriptionController).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_MODE), anyString()); doReturn(String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED)) .when(mSubscriptionController).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_ROAMING_MODE), anyString()); // Set to use WFC home network mode in roaming network. mBundle.putBoolean( CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, WFC_USE_HOME_MODE_FOR_ROAMING_VAL); ImsManager imsManager = getImsManagerAndInitProvisionedValues(); // Check that use the WFC home network mode. assertEquals(ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY, imsManager.getWfcMode(true)); verify(mSubscriptionController, times(1)).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_MODE), anyString()); // Set WFC home network mode to not editable. mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, WFC_IMS_NOT_EDITABLE_VAL); // Check that use the default WFC home network mode. assertEquals(WFC_IMS_MODE_DEFAULT_VAL, imsManager.getWfcMode(true)); verify(mSubscriptionController, times(1)).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_MODE), anyString()); } private ImsManager getImsManagerAndInitProvisionedValues() { when(mImsConfigImplBaseMock.getConfigInt(anyInt())) .thenAnswer(invocation -> { Loading Loading
tests/telephonytests/src/com/android/internal/telephony/ims/ImsManagerTest.java +101 −0 Original line number Diff line number Diff line Loading @@ -61,10 +61,14 @@ public class ImsManagerTest extends TelephonyTest { private static final boolean VT_IMS_ENABLE_DEFAULT_VAL = true; private static final boolean WFC_IMS_EDITABLE_VAL = true; private static final boolean WFC_IMS_NOT_EDITABLE_VAL = false; private static final boolean WFC_IMS_ROAMING_EDITABLE_VAL = true; private static final boolean WFC_IMS_ROAMING_NOT_EDITABLE_VAL = false; private static final int WFC_IMS_MODE_DEFAULT_VAL = ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED; private static final int WFC_IMS_ROAMING_MODE_DEFAULT_VAL = ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED; private static final boolean WFC_USE_HOME_MODE_FOR_ROAMING_VAL = true; private static final boolean WFC_NOT_USE_HOME_MODE_FOR_ROAMING_VAL = false; PersistableBundle mBundle; @Mock IBinder mBinder; Loading Loading @@ -107,6 +111,8 @@ public class ImsManagerTest extends TelephonyTest { ENHANCED_4G_MODE_EDITABLE); mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, WFC_IMS_EDITABLE_VAL); mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, WFC_IMS_ROAMING_EDITABLE_VAL); mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL, WFC_IMS_ENABLE_DEFAULT_VAL); mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL, Loading @@ -118,6 +124,9 @@ public class ImsManagerTest extends TelephonyTest { mBundle.putBoolean(CarrierConfigManager.KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL, ENHANCED_4G_MODE_DEFAULT_VAL); mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, true); mBundle.putBoolean( CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, WFC_NOT_USE_HOME_MODE_FOR_ROAMING_VAL); } @Test @SmallTest Loading Loading @@ -653,6 +662,98 @@ public class ImsManagerTest extends TelephonyTest { eq(WFC_IMS_MODE_DEFAULT_VAL)); } /** * Tests the operation of getWfcMode when the configuration to use the home network mode when * roaming for WFC is false. First, it checks that the user setting for WFC_IMS_ROAMING_MODE is * returned when WFC roaming is set to editable. Then, it switches the WFC roaming mode to not * editable and ensures that the default WFC roaming mode is returned. * * Preconditions: * - CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL = false */ @Test @SmallTest public void getWfcMode_useWfcHomeModeConfigFalse_shouldUseWfcRoamingMode() { // Set some values that are different than the defaults for WFC mode. doReturn(String.valueOf(ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)) .when(mSubscriptionController).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_MODE), anyString()); doReturn(String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED)) .when(mSubscriptionController).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_ROAMING_MODE), anyString()); ImsManager imsManager = getImsManagerAndInitProvisionedValues(); // Check that use the WFC roaming network mode. assertEquals(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED, imsManager.getWfcMode(true)); verify(mSubscriptionController, times(1)).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_ROAMING_MODE), anyString()); // Set WFC roaming network mode to not editable. mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, WFC_IMS_ROAMING_NOT_EDITABLE_VAL); // Check that use the default WFC roaming network mode. assertEquals(WFC_IMS_ROAMING_MODE_DEFAULT_VAL, imsManager.getWfcMode(true)); verify(mSubscriptionController, times(1)).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_ROAMING_MODE), anyString()); } /** * Tests the operation of getWfcMode when the configuration to use the home network mode when * roaming for WFC is true independent of whether or not the WFC roaming mode is editable. * * Preconditions: * - CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL = true */ @Test @SmallTest public void getWfcMode_useWfcHomeModeConfigTrue_shouldUseWfcHomeMode() { // Set some values that are different than the defaults for WFC mode. doReturn(String.valueOf(ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY)) .when(mSubscriptionController).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_MODE), anyString()); doReturn(String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED)) .when(mSubscriptionController).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_ROAMING_MODE), anyString()); // Set to use WFC home network mode in roaming network. mBundle.putBoolean( CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, WFC_USE_HOME_MODE_FOR_ROAMING_VAL); ImsManager imsManager = getImsManagerAndInitProvisionedValues(); // Check that use the WFC home network mode. assertEquals(ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY, imsManager.getWfcMode(true)); verify(mSubscriptionController, times(1)).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_MODE), anyString()); // Set WFC home network mode to not editable. mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, WFC_IMS_NOT_EDITABLE_VAL); // Check that use the default WFC home network mode. assertEquals(WFC_IMS_MODE_DEFAULT_VAL, imsManager.getWfcMode(true)); verify(mSubscriptionController, times(1)).getSubscriptionProperty( anyInt(), eq(SubscriptionManager.WFC_IMS_MODE), anyString()); } private ImsManager getImsManagerAndInitProvisionedValues() { when(mImsConfigImplBaseMock.getConfigInt(anyInt())) .thenAnswer(invocation -> { Loading