Merge "Move all FakeBroadcastDispatcher uses to #sendIntentToMatching." into udc-qpr-dev

This commit is contained in:
Treehugger Robot
2023-06-23 18:39:17 +00:00
committed by Android (Google) Code Review
6 changed files with 48 additions and 51 deletions

View File

@@ -94,7 +94,7 @@ class DemoModeControllerTest : SysuiTestCase() {
intent.putExtra("command", command)
args.forEach { arg -> intent.putExtra(arg.key, arg.value) }
fakeBroadcastDispatcher.registeredReceivers.forEach { it.onReceive(context, intent) }
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(context, intent)
}
companion object {

View File

@@ -25,6 +25,7 @@ import androidx.test.filters.SmallTest
import com.android.systemui.R
import com.android.systemui.RoboPilotTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.backup.BackupHelper
import com.android.systemui.settings.FakeUserTracker
import com.android.systemui.settings.UserFileManager
import com.android.systemui.util.FakeSharedPreferences
@@ -360,7 +361,10 @@ class KeyguardQuickAffordanceLocalUserSelectionManagerTest : SysuiTestCase() {
}
clearInvocations(userFileManager)
fakeBroadcastDispatcher.registeredReceivers.firstOrNull()?.onReceive(context, Intent())
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(BackupHelper.ACTION_RESTORE_FINISHED),
)
verify(userFileManager, atLeastOnce()).getSharedPreferences(anyString(), anyInt(), anyInt())
job.cancel()
@@ -374,12 +378,13 @@ class KeyguardQuickAffordanceLocalUserSelectionManagerTest : SysuiTestCase() {
arrayOf("leftTest:testShortcut1", "rightTest:testShortcut2")
)
assertThat(underTest.getSelections()).isEqualTo(
mapOf(
"leftTest" to listOf("testShortcut1"),
"rightTest" to listOf("testShortcut2"),
assertThat(underTest.getSelections())
.isEqualTo(
mapOf(
"leftTest" to listOf("testShortcut1"),
"rightTest" to listOf("testShortcut2"),
)
)
)
}
private fun assertSelections(

View File

@@ -461,12 +461,10 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() {
}
private fun broadcastDPMStateChange() {
fakeBroadcastDispatcher.registeredReceivers.forEach { receiver ->
receiver.onReceive(
context,
Intent(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED)
)
}
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED),
)
}
companion object {

View File

@@ -194,9 +194,10 @@ class KeyguardLongPressInteractorTest : SysuiTestCase() {
underTest.onLongPress()
assertThat(isMenuVisible).isTrue()
fakeBroadcastDispatcher.registeredReceivers.forEach { broadcastReceiver ->
broadcastReceiver.onReceive(context, Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS))
}
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS),
)
assertThat(isMenuVisible).isFalse()
}

View File

@@ -633,13 +633,11 @@ class UserInteractorTest : SysuiTestCase() {
userRepository.setSelectedUserInfo(userInfos[1])
runCurrent()
fakeBroadcastDispatcher.registeredReceivers.forEach {
it.onReceive(
context,
Intent(Intent.ACTION_USER_SWITCHED)
.putExtra(Intent.EXTRA_USER_HANDLE, userInfos[1].id),
)
}
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(Intent.ACTION_USER_SWITCHED)
.putExtra(Intent.EXTRA_USER_HANDLE, userInfos[1].id),
)
runCurrent()
verify(callback1, atLeastOnce()).onUserStateChanged()
@@ -656,12 +654,10 @@ class UserInteractorTest : SysuiTestCase() {
userRepository.setSelectedUserInfo(userInfos[0])
val refreshUsersCallCount = userRepository.refreshUsersCallCount
fakeBroadcastDispatcher.registeredReceivers.forEach {
it.onReceive(
context,
Intent(Intent.ACTION_USER_INFO_CHANGED),
)
}
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(Intent.ACTION_USER_INFO_CHANGED),
)
runCurrent()
@@ -676,13 +672,11 @@ class UserInteractorTest : SysuiTestCase() {
userRepository.setSelectedUserInfo(userInfos[0])
val refreshUsersCallCount = userRepository.refreshUsersCallCount
fakeBroadcastDispatcher.registeredReceivers.forEach {
it.onReceive(
context,
Intent(Intent.ACTION_USER_UNLOCKED)
.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_SYSTEM),
)
}
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(Intent.ACTION_USER_UNLOCKED)
.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_SYSTEM),
)
runCurrent()
assertThat(userRepository.refreshUsersCallCount).isEqualTo(refreshUsersCallCount + 1)
@@ -696,12 +690,10 @@ class UserInteractorTest : SysuiTestCase() {
userRepository.setSelectedUserInfo(userInfos[0])
val refreshUsersCallCount = userRepository.refreshUsersCallCount
fakeBroadcastDispatcher.registeredReceivers.forEach {
it.onReceive(
context,
Intent(Intent.ACTION_USER_UNLOCKED).putExtra(Intent.EXTRA_USER_HANDLE, 1337),
)
}
fakeBroadcastDispatcher.sendIntentToMatchingReceiversOnly(
context,
Intent(Intent.ACTION_USER_UNLOCKED).putExtra(Intent.EXTRA_USER_HANDLE, 1337),
)
assertThat(userRepository.refreshUsersCallCount).isEqualTo(refreshUsersCallCount)
}

View File

@@ -36,9 +36,9 @@ import java.util.concurrent.Executor
* A fake instance of [BroadcastDispatcher] for tests.
*
* Important: The *real* broadcast dispatcher will only send intents to receivers if the intent
* matches the [IntentFilter] that the [BroadcastReceiver] was registered with. This fake class does
* *not* do that matching by default. Use [sendIntentToMatchingReceiversOnly] to get the same
* matching behavior as the real broadcast dispatcher.
* matches the [IntentFilter] that the [BroadcastReceiver] was registered with. This fake class
* exposes [sendIntentToMatchingReceiversOnly] to get the same matching behavior as the real
* broadcast dispatcher.
*/
class FakeBroadcastDispatcher(
context: SysuiTestableContext,
@@ -63,9 +63,6 @@ class FakeBroadcastDispatcher(
private val receivers: MutableSet<InternalReceiver> = ConcurrentHashMap.newKeySet()
val registeredReceivers: Set<BroadcastReceiver>
get() = receivers.map { it.receiver }.toSet()
override fun registerReceiverWithHandler(
receiver: BroadcastReceiver,
filter: IntentFilter,
@@ -115,11 +112,15 @@ class FakeBroadcastDispatcher(
}
}
val numReceiversRegistered: Int
get() = receivers.size
fun cleanUpReceivers(testName: String) {
registeredReceivers.forEach {
Log.i(testName, "Receiver not unregistered from dispatcher: $it")
receivers.forEach {
val receiver = it.receiver
Log.i(testName, "Receiver not unregistered from dispatcher: $receiver")
if (shouldFailOnLeakedReceiver) {
throw IllegalStateException("Receiver not unregistered from dispatcher: $it")
throw IllegalStateException("Receiver not unregistered from dispatcher: $receiver")
}
}
receivers.clear()