From de0c2a08dd04a42cc54651f244726fbedd94780c Mon Sep 17 00:00:00 2001 From: Giulio Fiscella Date: Fri, 13 May 2022 11:12:50 +0000 Subject: [PATCH] Add refresh broadcast id checks Test: atest SettingsUnitTests Bug: 224522714 Change-Id: Id49767c27ecd842fc9d886cbf5bc0eee9eabc775 --- .../SafetySourceBroadcastReceiver.java | 6 +- .../SafetySourceBroadcastReceiverTest.java | 113 ++++++++++-------- 2 files changed, 64 insertions(+), 55 deletions(-) diff --git a/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java b/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java index 3ea23f3a897..0b556e74a37 100644 --- a/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java +++ b/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java @@ -49,9 +49,9 @@ public class SafetySourceBroadcastReceiver extends BroadcastReceiver { if (ACTION_REFRESH_SAFETY_SOURCES.equals(intent.getAction())) { String[] sourceIdsExtra = intent.getStringArrayExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS); - if (sourceIdsExtra != null && sourceIdsExtra.length > 0) { - final String refreshBroadcastId = intent.getStringExtra( - SafetyCenterManager.EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID); + final String refreshBroadcastId = intent.getStringExtra( + SafetyCenterManager.EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID); + if (sourceIdsExtra != null && sourceIdsExtra.length > 0 && refreshBroadcastId != null) { final SafetyEvent safetyEvent = new SafetyEvent.Builder( SAFETY_EVENT_TYPE_REFRESH_REQUESTED) .setRefreshBroadcastId(refreshBroadcastId).build(); diff --git a/tests/unit/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiverTest.java b/tests/unit/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiverTest.java index 8004d600e9e..3ad1874995b 100644 --- a/tests/unit/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiverTest.java +++ b/tests/unit/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiverTest.java @@ -54,13 +54,13 @@ import java.util.List; @RunWith(AndroidJUnit4.class) public class SafetySourceBroadcastReceiverTest { + private static final String REFRESH_BROADCAST_ID = "REFRESH_BROADCAST_ID"; + private Context mApplicationContext; - @Mock - private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper; + @Mock private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper; - @Mock - private LockPatternUtils mLockPatternUtils; + @Mock private LockPatternUtils mLockPatternUtils; @Before public void setUp() { @@ -77,17 +77,6 @@ public class SafetySourceBroadcastReceiverTest { SafetyCenterManagerWrapper.sInstance = null; } - @Test - public void onReceive_onRefresh_whenSafetyCenterIsEnabled_withNoIntentAction_doesNotSetData() { - when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); - Intent intent = new Intent().putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, new String[]{}); - - new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); - - verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData( - any(), any(), any(), any()); - } - @Test public void onReceive_onRefresh_whenSafetyCenterIsDisabled_doesNotSetData() { when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(false); @@ -96,23 +85,43 @@ public class SafetySourceBroadcastReceiverTest { .setAction(ACTION_REFRESH_SAFETY_SOURCES) .putExtra( EXTRA_REFRESH_SAFETY_SOURCE_IDS, - new String[]{ LockScreenSafetySource.SAFETY_SOURCE_ID }); + new String[] {LockScreenSafetySource.SAFETY_SOURCE_ID}) + .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID); new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); - verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData( - any(), any(), any(), any()); + verify(mSafetyCenterManagerWrapper, never()) + .setSafetySourceData(any(), any(), any(), any()); + } + + @Test + public void onReceive_onRefresh_whenSafetyCenterIsEnabled_withNoIntentAction_doesNotSetData() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + Intent intent = + new Intent() + .putExtra( + EXTRA_REFRESH_SAFETY_SOURCE_IDS, + new String[] {LockScreenSafetySource.SAFETY_SOURCE_ID}) + .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID); + + new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); + + verify(mSafetyCenterManagerWrapper, never()) + .setSafetySourceData(any(), any(), any(), any()); } @Test public void onReceive_onRefresh_whenSafetyCenterIsEnabled_withNullSourceIds_doesNotSetData() { when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); - Intent intent = new Intent().setAction(ACTION_REFRESH_SAFETY_SOURCES); + Intent intent = + new Intent() + .setAction(ACTION_REFRESH_SAFETY_SOURCES) + .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID); new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); - verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData( - any(), any(), any(), any()); + verify(mSafetyCenterManagerWrapper, never()) + .setSafetySourceData(any(), any(), any(), any()); } @Test @@ -121,12 +130,29 @@ public class SafetySourceBroadcastReceiverTest { Intent intent = new Intent() .setAction(ACTION_REFRESH_SAFETY_SOURCES) - .putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, new String[]{}); + .putExtra(EXTRA_REFRESH_SAFETY_SOURCE_IDS, new String[] {}) + .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID); new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); - verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData( - any(), any(), any(), any()); + verify(mSafetyCenterManagerWrapper, never()) + .setSafetySourceData(any(), any(), any(), any()); + } + + @Test + public void onReceive_onRefresh_whenSafetyCenterIsEnabled_withNoBroadcastId_doesNotSetData() { + when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); + Intent intent = + new Intent() + .setAction(ACTION_REFRESH_SAFETY_SOURCES) + .putExtra( + EXTRA_REFRESH_SAFETY_SOURCE_IDS, + new String[] {LockScreenSafetySource.SAFETY_SOURCE_ID}); + + new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); + + verify(mSafetyCenterManagerWrapper, never()) + .setSafetySourceData(any(), any(), any(), any()); } @Test @@ -137,38 +163,19 @@ public class SafetySourceBroadcastReceiverTest { .setAction(ACTION_REFRESH_SAFETY_SOURCES) .putExtra( EXTRA_REFRESH_SAFETY_SOURCE_IDS, - new String[]{ LockScreenSafetySource.SAFETY_SOURCE_ID }); + new String[] {LockScreenSafetySource.SAFETY_SOURCE_ID}) + .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID); new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); ArgumentCaptor captor = ArgumentCaptor.forClass(SafetyEvent.class); verify(mSafetyCenterManagerWrapper, times(1)) .setSafetySourceData(any(), any(), any(), captor.capture()); - assertThat(captor.getValue()).isEqualTo( - new SafetyEvent.Builder(SAFETY_EVENT_TYPE_REFRESH_REQUESTED).build()); - } - - @Test - public void onReceive_onRefreshWithBroadcastId_setsRefreshEventWithBroadcastId() { - final String refreshBroadcastId = "REFRESH_BROADCAST_ID"; - when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); - Intent intent = - new Intent() - .setAction(ACTION_REFRESH_SAFETY_SOURCES) - .putExtra( - EXTRA_REFRESH_SAFETY_SOURCE_IDS, - new String[]{ LockScreenSafetySource.SAFETY_SOURCE_ID }) - .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, refreshBroadcastId); - - new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); - ArgumentCaptor captor = ArgumentCaptor.forClass(SafetyEvent.class); - verify(mSafetyCenterManagerWrapper, times(1)) - .setSafetySourceData(any(), any(), any(), captor.capture()); - - assertThat(captor.getValue().getRefreshBroadcastId()).isEqualTo(refreshBroadcastId); - assertThat(captor.getValue()).isEqualTo( - new SafetyEvent.Builder(SAFETY_EVENT_TYPE_REFRESH_REQUESTED) - .setRefreshBroadcastId(refreshBroadcastId).build()); + assertThat(captor.getValue()) + .isEqualTo( + new SafetyEvent.Builder(SAFETY_EVENT_TYPE_REFRESH_REQUESTED) + .setRefreshBroadcastId(REFRESH_BROADCAST_ID) + .build()); } @Test @@ -179,7 +186,8 @@ public class SafetySourceBroadcastReceiverTest { .setAction(ACTION_REFRESH_SAFETY_SOURCES) .putExtra( EXTRA_REFRESH_SAFETY_SOURCE_IDS, - new String[]{ LockScreenSafetySource.SAFETY_SOURCE_ID }); + new String[] {LockScreenSafetySource.SAFETY_SOURCE_ID}) + .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID); new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); ArgumentCaptor captor = ArgumentCaptor.forClass(String.class); @@ -197,7 +205,8 @@ public class SafetySourceBroadcastReceiverTest { .setAction(ACTION_REFRESH_SAFETY_SOURCES) .putExtra( EXTRA_REFRESH_SAFETY_SOURCE_IDS, - new String[]{ BiometricsSafetySource.SAFETY_SOURCE_ID }); + new String[] {BiometricsSafetySource.SAFETY_SOURCE_ID}) + .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID); new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent); ArgumentCaptor captor = ArgumentCaptor.forClass(String.class);