diff options
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.java | 83 |
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); |