blob: 43d2cb8be2d6074b7ddc60909a3152cf152a83bc [file] [log] [blame]
package com.android.systemui.broadcast
import android.content.BroadcastReceiver
import android.os.UserHandle
import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.broadcast.logging.BroadcastDispatcherLogger
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
@RunWith(AndroidTestingRunner::class)
@SmallTest
class PendingRemovalStoreTest : SysuiTestCase() {
@Mock
private lateinit var logger: BroadcastDispatcherLogger
@Mock
private lateinit var receiverOne: BroadcastReceiver
@Mock
private lateinit var receiverTwo: BroadcastReceiver
private lateinit var store: PendingRemovalStore
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
store = PendingRemovalStore(logger)
}
@Test
fun testTagForRemoval_logged() {
val user = 10
store.tagForRemoval(receiverOne, 10)
verify(logger).logTagForRemoval(user, receiverOne)
}
@Test
fun testClearedPendingRemoval_logged() {
val user = UserHandle.USER_ALL
store.clearPendingRemoval(receiverOne, user)
verify(logger).logClearedAfterRemoval(user, receiverOne)
}
@Test
fun testTaggedReceiverMarkedAsPending_specificUser() {
val user = 10
store.tagForRemoval(receiverOne, user)
assertThat(store.isPendingRemoval(receiverOne, user)).isTrue()
assertThat(store.isPendingRemoval(receiverOne, user + 1)).isFalse()
assertThat(store.isPendingRemoval(receiverOne, UserHandle.USER_ALL)).isFalse()
}
@Test
fun testTaggedReceiverMarkedAsPending_allUsers() {
val user = 10
store.tagForRemoval(receiverOne, UserHandle.USER_ALL)
assertThat(store.isPendingRemoval(receiverOne, user)).isTrue()
assertThat(store.isPendingRemoval(receiverOne, user + 1)).isTrue()
assertThat(store.isPendingRemoval(receiverOne, UserHandle.USER_ALL)).isTrue()
}
@Test
fun testOnlyBlockCorrectReceiver() {
val user = 10
store.tagForRemoval(receiverOne, user)
assertThat(store.isPendingRemoval(receiverOne, user)).isTrue()
assertThat(store.isPendingRemoval(receiverTwo, user)).isFalse()
}
}