aboutsummaryrefslogtreecommitdiff
path: root/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java')
-rw-r--r--tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java83
1 files changed, 63 insertions, 20 deletions
diff --git a/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java b/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
index 2d170ab6..11350393 100644
--- a/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
+++ b/tests/src/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListenerTest.java
@@ -84,7 +84,6 @@ public class DeviceCapabilityListenerTest extends ImsTestBase {
getProvisioningManager(anyInt());
doReturn(true).when(mDeviceCapability).updateTtyPreferredMode(anyInt());
- doReturn(true).when(mDeviceCapability).updateAirplaneMode(anyBoolean());
doReturn(true).when(mDeviceCapability).updateMobileData(anyBoolean());
doReturn(true).when(mDeviceCapability).updateVtSetting(anyBoolean());
doReturn(true).when(mDeviceCapability).updateVtSetting(anyBoolean());
@@ -107,7 +106,8 @@ public class DeviceCapabilityListenerTest extends ImsTestBase {
deviceCapListener.initialize();
- verify(mContext).registerReceiver(any(), any());
+ verify(mContext).registerReceiver(any(), any(),
+ eq(android.Manifest.permission.MODIFY_PHONE_STATE), any(), anyInt());
verify(mProvisioningManager).registerProvisioningChangedCallback(any(), any());
}
@@ -143,23 +143,6 @@ public class DeviceCapabilityListenerTest extends ImsTestBase {
@Test
@SmallTest
- public void testAirplaneModeChange() throws Exception {
- DeviceCapabilityListener deviceCapListener = createDeviceCapabilityListener();
- final BroadcastReceiver receiver = deviceCapListener.mReceiver;
-
- Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
- receiver.onReceive(mContext, intent);
-
- Handler handler = deviceCapListener.getHandler();
- waitForHandlerActionDelayed(handler, HANDLER_WAIT_TIMEOUT_MS, HANDLER_SENT_DELAY_MS);
-
- verify(mDeviceCapability).updateAirplaneMode(anyBoolean());
- verify(mCallback).requestPublishFromInternal(
- PublishController.PUBLISH_TRIGGER_AIRPLANE_MODE_CHANGE);
- }
-
- @Test
- @SmallTest
public void testMmtelRegistration() throws Exception {
DeviceCapabilityListener deviceCapListener = createDeviceCapabilityListener();
deviceCapListener.setImsCallbackRegistered(true);
@@ -171,7 +154,8 @@ public class DeviceCapabilityListenerTest extends ImsTestBase {
waitForHandlerActionDelayed(handler, HANDLER_WAIT_TIMEOUT_MS, HANDLER_SENT_DELAY_MS);
verify(mDeviceCapability).updateImsMmtelRegistered(1);
- verify(mCallback).requestPublishFromInternal(
+ // update capability, but not trigger PUBLISH message when MmTel registered.
+ verify(mCallback, never()).requestPublishFromInternal(
PublishController.PUBLISH_TRIGGER_MMTEL_REGISTERED);
}
@@ -266,6 +250,65 @@ public class DeviceCapabilityListenerTest extends ImsTestBase {
verify(mCallback).updateImsUnregistered();
}
+ @Test
+ @SmallTest
+ public void testRcsAndMmtelUnregistration() throws Exception {
+ DeviceCapabilityListener deviceCapListener = createDeviceCapabilityListener();
+ deviceCapListener.setImsCallbackRegistered(true);
+
+ Handler handler = deviceCapListener.getHandler();
+ ImsReasonInfo info = new ImsReasonInfo(ImsReasonInfo.CODE_LOCAL_NOT_REGISTERED, -1, "");
+ // RCS unregistered
+ RegistrationCallback rcsRegiCallback = deviceCapListener.mRcsRegistrationCallback;
+
+ doReturn(true).when(mDeviceCapability).updateImsRcsUnregistered();
+ // RCS is unregistered but MMTEL is registered.
+ doReturn(true).when(mDeviceCapability).isImsRegistered();
+ rcsRegiCallback.onUnregistered(info);
+
+ // MMTEL unregistered
+ RegistrationCallback mmtelRegiCallback = deviceCapListener.mMmtelRegistrationCallback;
+ // set the Ims is unregistered
+ doReturn(false).when(mDeviceCapability).isImsRegistered();
+ mmtelRegiCallback.onUnregistered(info);
+
+ waitForHandlerActionDelayed(handler, HANDLER_WAIT_TIMEOUT_MS, HANDLER_SENT_DELAY_MS);
+
+ // Do not send internal publish trigger
+ verify(mCallback, never()).requestPublishFromInternal(anyInt());
+ // IMS is unregistered. Verify send ImsUnregistered.
+ verify(mCallback).updateImsUnregistered();
+ }
+
+ @Test
+ @SmallTest
+ public void testUnregisterRcsOnlyFromImsRegistration() throws Exception {
+ DeviceCapabilityListener deviceCapListener = createDeviceCapabilityListener();
+ deviceCapListener.setImsCallbackRegistered(true);
+ Handler handler = deviceCapListener.getHandler();
+
+ // set the Ims is registered
+ doReturn(true).when(mDeviceCapability).isImsRegistered();
+ ImsReasonInfo info = new ImsReasonInfo(ImsReasonInfo.CODE_LOCAL_NOT_REGISTERED, -1, "");
+ // RCS unregistered
+ RegistrationCallback rcsRegiCallback = deviceCapListener.mRcsRegistrationCallback;
+
+ doReturn(true).when(mDeviceCapability).updateImsRcsUnregistered();
+ // RCS is unregistered but MMTEL is registered.
+ doReturn(true).when(mDeviceCapability).isImsRegistered();
+ rcsRegiCallback.onUnregistered(info);
+
+ waitForHandlerActionDelayed(handler, HANDLER_WAIT_TIMEOUT_MS, HANDLER_SENT_DELAY_MS);
+
+ verify(mDeviceCapability).updateImsRcsUnregistered();
+ // Only RCS unregistered. Verify the request of the modify publish is sent.
+ verify(mCallback).requestPublishFromInternal(
+ PublishController.PUBLISH_TRIGGER_RCS_URI_CHANGE);
+
+ // Only RCS unregistered. Verify do not send ImsUnregistered.
+ verify(mCallback, never()).updateImsUnregistered();
+ }
+
private DeviceCapabilityListener createDeviceCapabilityListener() {
DeviceCapabilityListener deviceCapListener = new DeviceCapabilityListener(mContext,
mSubId, mDeviceCapability, mCallback, mUceStatsWriter);