summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalWidgetHostTest.kt55
1 files changed, 18 insertions, 37 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalWidgetHostTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalWidgetHostTest.kt
index 017c77828cdc..214cd1af9b30 100644
--- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalWidgetHostTest.kt
+++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalWidgetHostTest.kt
@@ -27,10 +27,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.communal.shared.model.fakeGlanceableHubMultiUserHelper
-import com.android.systemui.coroutines.collectLastValue
-import com.android.systemui.coroutines.collectValues
import com.android.systemui.kosmos.applicationCoroutineScope
-import com.android.systemui.kosmos.testScope
+import com.android.systemui.kosmos.collectLastValue
+import com.android.systemui.kosmos.collectValues
+import com.android.systemui.kosmos.runTest
+import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.log.logcatLogBuffer
import com.android.systemui.testKosmos
import com.android.systemui.user.data.model.SelectedUserModel
@@ -43,10 +44,6 @@ import com.android.systemui.util.mockito.whenever
import com.android.systemui.util.mockito.withArgCaptor
import com.google.common.truth.Truth.assertThat
import java.util.Optional
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -58,11 +55,9 @@ import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
@SmallTest
-@OptIn(ExperimentalCoroutinesApi::class)
@RunWith(AndroidJUnit4::class)
class CommunalWidgetHostTest : SysuiTestCase() {
- private val kosmos = testKosmos()
- private val testScope = kosmos.testScope
+ private val kosmos = testKosmos().useUnconfinedTestDispatcher()
@Mock private lateinit var appWidgetManager: AppWidgetManager
@Mock private lateinit var appWidgetHost: CommunalAppWidgetHost
@@ -103,12 +98,11 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun allocateIdAndBindWidget_withCurrentUser() =
- testScope.runTest {
+ kosmos.runTest {
val provider = ComponentName("pkg_name", "cls_name")
val widgetId = 1
val userId by collectLastValue(selectedUserInteractor.selectedUser)
selectUser()
- runCurrent()
val user = UserHandle(checkNotNull(userId))
whenever(appWidgetHost.allocateAppWidgetId()).thenReturn(widgetId)
@@ -129,7 +123,7 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun allocateIdAndBindWidget_onSuccess() =
- testScope.runTest {
+ kosmos.runTest {
val provider = ComponentName("pkg_name", "cls_name")
val widgetId = 1
val user = UserHandle(0)
@@ -152,7 +146,7 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun allocateIdAndBindWidget_onFailure() =
- testScope.runTest {
+ kosmos.runTest {
val provider = ComponentName("pkg_name", "cls_name")
val widgetId = 1
val user = UserHandle(0)
@@ -179,12 +173,11 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun listener_exactlyOneListenerRegisteredForEachWidgetWhenHostStartListening() =
- testScope.runTest {
+ kosmos.runTest {
// 3 widgets registered with the host
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf(1, 2, 3))
underTest.startObservingHost()
- runCurrent()
// Make sure no listener is set before host starts listening
verify(appWidgetHost, never()).setListener(any(), any())
@@ -195,7 +188,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
verify(appWidgetHost).addObserver(capture())
}
observer.onHostStartListening()
- runCurrent()
// Verify a listener is set for each widget
verify(appWidgetHost, times(3)).setListener(any(), any())
@@ -206,12 +198,11 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun listener_listenersRemovedWhenHostStopListening() =
- testScope.runTest {
+ kosmos.runTest {
// 3 widgets registered with the host
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf(1, 2, 3))
underTest.startObservingHost()
- runCurrent()
// Host starts listening
val observer =
@@ -219,7 +210,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
verify(appWidgetHost).addObserver(capture())
}
observer.onHostStartListening()
- runCurrent()
// Verify none of the listener is removed before host stop listening
verify(appWidgetHost, never()).removeListener(any())
@@ -235,7 +225,7 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun listener_addNewListenerWhenNewIdAllocated() =
- testScope.runTest {
+ kosmos.runTest {
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf())
val observer = start()
@@ -251,7 +241,7 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun listener_removeListenerWhenWidgetDeleted() =
- testScope.runTest {
+ kosmos.runTest {
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf(1))
val observer = start()
@@ -267,7 +257,7 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun providerInfo_populatesWhenStartListening() =
- testScope.runTest {
+ kosmos.runTest {
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf(1, 2))
whenever(appWidgetManager.getAppWidgetInfo(1)).thenReturn(providerInfo1)
whenever(appWidgetManager.getAppWidgetInfo(2)).thenReturn(providerInfo2)
@@ -279,7 +269,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
assertThat(providerInfoValues[0]).isEmpty()
start()
- runCurrent()
// Assert that the provider info map is populated after host started listening, and that
// all providers are emitted at once
@@ -290,13 +279,12 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun providerInfo_clearsWhenStopListening() =
- testScope.runTest {
+ kosmos.runTest {
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf(1, 2))
whenever(appWidgetManager.getAppWidgetInfo(1)).thenReturn(providerInfo1)
whenever(appWidgetManager.getAppWidgetInfo(2)).thenReturn(providerInfo2)
val observer = start()
- runCurrent()
// Assert that the provider info map is populated
val providerInfo by collectLastValue(underTest.appWidgetProviders)
@@ -312,7 +300,7 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun providerInfo_onUpdate() =
- testScope.runTest {
+ kosmos.runTest {
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf(1, 2))
whenever(appWidgetManager.getAppWidgetInfo(1)).thenReturn(providerInfo1)
whenever(appWidgetManager.getAppWidgetInfo(2)).thenReturn(providerInfo2)
@@ -320,7 +308,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
val providerInfo by collectLastValue(underTest.appWidgetProviders)
start()
- runCurrent()
// Assert that the provider info map is populated
assertThat(providerInfo)
@@ -332,7 +319,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
verify(appWidgetHost).setListener(eq(1), capture())
}
listener.onUpdateProviderInfo(providerInfo3)
- runCurrent()
// Assert that the update is reflected in the flow
assertThat(providerInfo)
@@ -341,7 +327,7 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun providerInfo_updateWhenANewWidgetIsBound() =
- testScope.runTest {
+ kosmos.runTest {
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf(1, 2))
whenever(appWidgetManager.getAppWidgetInfo(1)).thenReturn(providerInfo1)
whenever(appWidgetManager.getAppWidgetInfo(2)).thenReturn(providerInfo2)
@@ -349,7 +335,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
val providerInfo by collectLastValue(underTest.appWidgetProviders)
start()
- runCurrent()
// Assert that the provider info map is populated
assertThat(providerInfo)
@@ -360,7 +345,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
whenever(appWidgetManager.getAppWidgetInfo(3)).thenReturn(providerInfo3)
val newWidgetComponentName = ComponentName.unflattenFromString("pkg_new/cls_new")!!
underTest.allocateIdAndBindWidget(newWidgetComponentName)
- runCurrent()
// Assert that the new provider is reflected in the flow
assertThat(providerInfo)
@@ -371,7 +355,7 @@ class CommunalWidgetHostTest : SysuiTestCase() {
@Test
fun providerInfo_updateWhenWidgetRemoved() =
- testScope.runTest {
+ kosmos.runTest {
whenever(appWidgetHost.appWidgetIds).thenReturn(intArrayOf(1, 2))
whenever(appWidgetManager.getAppWidgetInfo(1)).thenReturn(providerInfo1)
whenever(appWidgetManager.getAppWidgetInfo(2)).thenReturn(providerInfo2)
@@ -379,7 +363,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
val providerInfo by collectLastValue(underTest.appWidgetProviders)
val observer = start()
- runCurrent()
// Assert that the provider info map is populated
assertThat(providerInfo)
@@ -387,7 +370,6 @@ class CommunalWidgetHostTest : SysuiTestCase() {
// Remove widget 1
observer.onDeleteAppWidgetId(1)
- runCurrent()
// Assert that provider info for widget 1 is removed
assertThat(providerInfo).containsExactlyEntriesIn(mapOf(Pair(2, providerInfo2)))
@@ -401,9 +383,8 @@ class CommunalWidgetHostTest : SysuiTestCase() {
)
}
- private fun TestScope.start(): CommunalAppWidgetHost.Observer {
+ private fun start(): CommunalAppWidgetHost.Observer {
underTest.startObservingHost()
- runCurrent()
val observer =
withArgCaptor<CommunalAppWidgetHost.Observer> {