Loading packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/db/DefaultWidgetPopulationTest.kt +29 −18 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.systemui.communal.data.db import android.content.ComponentName import android.os.UserHandle import android.os.UserManager import android.os.userManager import androidx.sqlite.db.SupportSQLiteDatabase import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -27,10 +27,13 @@ import com.android.systemui.communal.data.db.DefaultWidgetPopulation.SkipReason. import com.android.systemui.communal.shared.model.SpanValue import com.android.systemui.communal.widgets.CommunalWidgetHost import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.kosmos.testScope import com.android.systemui.kosmos.runTest import com.android.systemui.kosmos.useUnconfinedTestDispatcher import com.android.systemui.log.logcatLogBuffer import com.android.systemui.testKosmos import kotlinx.coroutines.test.runCurrent import com.android.systemui.user.data.repository.FakeUserRepository.Companion.MAIN_USER_ID import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.user.domain.interactor.userLockedInteractor import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test Loading @@ -38,6 +41,7 @@ import org.junit.runner.RunWith import org.mockito.ArgumentMatchers.anyInt import org.mockito.kotlin.any import org.mockito.kotlin.anyOrNull import org.mockito.kotlin.atLeastOnce import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.never Loading @@ -46,8 +50,7 @@ import org.mockito.kotlin.verify @SmallTest @RunWith(AndroidJUnit4::class) class DefaultWidgetPopulationTest : SysuiTestCase() { private val kosmos = testKosmos() private val testScope = kosmos.testScope private val kosmos = testKosmos().useUnconfinedTestDispatcher() private val communalWidgetHost = mock<CommunalWidgetHost> { Loading @@ -57,11 +60,6 @@ class DefaultWidgetPopulationTest : SysuiTestCase() { private val communalWidgetDao = mock<CommunalWidgetDao>() private val database = mock<SupportSQLiteDatabase>() private val mainUser = UserHandle(0) private val userManager = mock<UserManager> { on { mainUser }.thenReturn(mainUser) on { getUserSerialNumber(0) }.thenReturn(0) } private val defaultWidgets = arrayOf( Loading @@ -74,6 +72,7 @@ class DefaultWidgetPopulationTest : SysuiTestCase() { @Before fun setUp() { kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true) underTest = DefaultWidgetPopulation( bgScope = kosmos.applicationCoroutineScope, Loading @@ -81,32 +80,45 @@ class DefaultWidgetPopulationTest : SysuiTestCase() { communalWidgetDaoProvider = { communalWidgetDao }, defaultWidgets = defaultWidgets, logBuffer = logcatLogBuffer("DefaultWidgetPopulationTest"), userManager = userManager, userManager = kosmos.userManager, userLockedInteractor = kosmos.userLockedInteractor, ) } @Test fun testNoInteractionUntilMainUserUnlocked() = kosmos.runTest { kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, false) // Database created underTest.onCreate(database) verify(communalWidgetHost, never()) .allocateIdAndBindWidget(provider = any(), user = any()) kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true) verify(communalWidgetHost, atLeastOnce()) .allocateIdAndBindWidget(provider = any(), user = any()) } @Test fun testPopulateDefaultWidgetsWhenDatabaseCreated() = testScope.runTest { kosmos.runTest { // Database created underTest.onCreate(database) runCurrent() // Verify default widgets bound verify(communalWidgetHost) .allocateIdAndBindWidget( provider = eq(ComponentName.unflattenFromString(defaultWidgets[0])!!), user = eq(mainUser), user = eq(UserHandle(MAIN_USER_ID)), ) verify(communalWidgetHost) .allocateIdAndBindWidget( provider = eq(ComponentName.unflattenFromString(defaultWidgets[1])!!), user = eq(mainUser), user = eq(UserHandle(MAIN_USER_ID)), ) verify(communalWidgetHost) .allocateIdAndBindWidget( provider = eq(ComponentName.unflattenFromString(defaultWidgets[2])!!), user = eq(mainUser), user = eq(UserHandle(MAIN_USER_ID)), ) // Verify default widgets added in database Loading Loading @@ -138,13 +150,12 @@ class DefaultWidgetPopulationTest : SysuiTestCase() { @Test fun testSkipDefaultWidgetsPopulation() = testScope.runTest { kosmos.runTest { // Skip default widgets population underTest.skipDefaultWidgetsPopulation(RESTORED_FROM_BACKUP) // Database created underTest.onCreate(database) runCurrent() // Verify no widget bounded or added to the database verify(communalWidgetHost, never()).allocateIdAndBindWidget(any(), any()) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt +12 −11 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.settings.fakeUserTracker import com.android.systemui.statusbar.phone.fakeManagedProfileController import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor Loading Loading @@ -163,12 +164,12 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { } @Test fun isCommunalAvailable_storageUnlockedAndMainUser_true() = fun isCommunalAvailable_mainUserUnlockedAndMainUser_true() = kosmos.runTest { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading @@ -176,12 +177,12 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { } @Test fun isCommunalAvailable_storageLockedAndMainUser_false() = fun isCommunalAvailable_mainUserLockedAndMainUser_false() = kosmos.runTest { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(true) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, false) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading @@ -189,12 +190,12 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { } @Test fun isCommunalAvailable_storageUnlockedAndSecondaryUser_false() = fun isCommunalAvailable_mainUserUnlockedAndSecondaryUser_false() = kosmos.runTest { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(secondaryUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading @@ -207,7 +208,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading @@ -222,7 +223,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, false) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading Loading @@ -1282,7 +1283,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { @Test fun showCommunalWhileCharging() = kosmos.runTest { fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) fakeSettings.putIntForUser( Loading @@ -1302,7 +1303,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { @Test fun showCommunalWhilePosturedAndCharging() = kosmos.runTest { fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) fakeSettings.putIntForUser( Loading @@ -1323,7 +1324,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { @Test fun showCommunalWhileDocked() = kosmos.runTest { fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) fakeSettings.putIntForUser(Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 1, mainUser.id) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -203,7 +203,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { // Keyguard showing, storage unlocked, main user, and tutorial not started. keyguardRepository.setKeyguardShowing(true) keyguardRepository.setKeyguardOccluded(false) keyguardRepository.setIsEncryptedOrLockdown(false) userRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) setIsMainUser(true) tutorialRepository.setTutorialSettingState( Settings.Secure.HUB_MODE_TUTORIAL_NOT_STARTED Loading packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartableTest.kt +5 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,9 @@ import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.settings.fakeUserTracker import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.FakeUserRepository.Companion.MAIN_USER_ID import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.user.domain.interactor.userLockedInteractor import com.android.systemui.util.mockito.whenever import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat Loading Loading @@ -91,6 +93,7 @@ class CommunalAppWidgetHostStartableTest : SysuiTestCase() { kosmos.testDispatcher, { widgetManager }, helper, kosmos.userLockedInteractor, ) } Loading Loading @@ -269,6 +272,7 @@ class CommunalAppWidgetHostStartableTest : SysuiTestCase() { // Binding to the service does not require keyguard showing setCommunalAvailable(true, setKeyguardShowing = false) fakeKeyguardRepository.setIsEncryptedOrLockdown(false) runCurrent() verify(widgetManager).register() Loading @@ -283,7 +287,7 @@ class CommunalAppWidgetHostStartableTest : SysuiTestCase() { setKeyguardShowing: Boolean = true, ) = with(kosmos) { fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO) if (setKeyguardShowing) { fakeKeyguardRepository.setKeyguardShowing(true) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt +37 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.user.data.repository import android.app.admin.devicePolicyManager import android.content.Intent import android.content.pm.UserInfo import android.internal.statusbar.fakeStatusBarService import android.os.UserHandle Loading @@ -27,6 +28,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.broadcastDispatcher import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.kosmos.useUnconfinedTestDispatcher Loading @@ -50,6 +52,8 @@ import org.mockito.Mock import org.mockito.Mockito.mock import org.mockito.Mockito.`when` as whenever import org.mockito.MockitoAnnotations import org.mockito.kotlin.eq import org.mockito.kotlin.mock @SmallTest @RunWith(AndroidJUnit4::class) Loading Loading @@ -171,6 +175,39 @@ class UserRepositoryImplTest : SysuiTestCase() { job2.cancel() } @Test fun userUnlockedFlow_tracksBroadcastedChanges() = testScope.runTest { val userHandle: UserHandle = mock() underTest = create(testScope.backgroundScope) val latest by collectLastValue(underTest.isUserUnlocked(userHandle)) whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(false) broadcastDispatcher.sendIntentToMatchingReceiversOnly( context, Intent(Intent.ACTION_USER_UNLOCKED), ) assertThat(latest).isFalse() whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(true) broadcastDispatcher.sendIntentToMatchingReceiversOnly( context, Intent(Intent.ACTION_USER_UNLOCKED), ) assertThat(latest).isTrue() } @Test fun userUnlockedFlow_initialValueReported() = testScope.runTest { val userHandle: UserHandle = mock() underTest = create(testScope.backgroundScope) whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(true) val latest by collectLastValue(underTest.isUserUnlocked(userHandle)) assertThat(latest).isTrue() } @Test fun refreshUsers_sortsByCreationTime_guestUserLast() = testScope.runTest { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/db/DefaultWidgetPopulationTest.kt +29 −18 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.systemui.communal.data.db import android.content.ComponentName import android.os.UserHandle import android.os.UserManager import android.os.userManager import androidx.sqlite.db.SupportSQLiteDatabase import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest Loading @@ -27,10 +27,13 @@ import com.android.systemui.communal.data.db.DefaultWidgetPopulation.SkipReason. import com.android.systemui.communal.shared.model.SpanValue import com.android.systemui.communal.widgets.CommunalWidgetHost import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.kosmos.testScope import com.android.systemui.kosmos.runTest import com.android.systemui.kosmos.useUnconfinedTestDispatcher import com.android.systemui.log.logcatLogBuffer import com.android.systemui.testKosmos import kotlinx.coroutines.test.runCurrent import com.android.systemui.user.data.repository.FakeUserRepository.Companion.MAIN_USER_ID import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.user.domain.interactor.userLockedInteractor import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test Loading @@ -38,6 +41,7 @@ import org.junit.runner.RunWith import org.mockito.ArgumentMatchers.anyInt import org.mockito.kotlin.any import org.mockito.kotlin.anyOrNull import org.mockito.kotlin.atLeastOnce import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.never Loading @@ -46,8 +50,7 @@ import org.mockito.kotlin.verify @SmallTest @RunWith(AndroidJUnit4::class) class DefaultWidgetPopulationTest : SysuiTestCase() { private val kosmos = testKosmos() private val testScope = kosmos.testScope private val kosmos = testKosmos().useUnconfinedTestDispatcher() private val communalWidgetHost = mock<CommunalWidgetHost> { Loading @@ -57,11 +60,6 @@ class DefaultWidgetPopulationTest : SysuiTestCase() { private val communalWidgetDao = mock<CommunalWidgetDao>() private val database = mock<SupportSQLiteDatabase>() private val mainUser = UserHandle(0) private val userManager = mock<UserManager> { on { mainUser }.thenReturn(mainUser) on { getUserSerialNumber(0) }.thenReturn(0) } private val defaultWidgets = arrayOf( Loading @@ -74,6 +72,7 @@ class DefaultWidgetPopulationTest : SysuiTestCase() { @Before fun setUp() { kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true) underTest = DefaultWidgetPopulation( bgScope = kosmos.applicationCoroutineScope, Loading @@ -81,32 +80,45 @@ class DefaultWidgetPopulationTest : SysuiTestCase() { communalWidgetDaoProvider = { communalWidgetDao }, defaultWidgets = defaultWidgets, logBuffer = logcatLogBuffer("DefaultWidgetPopulationTest"), userManager = userManager, userManager = kosmos.userManager, userLockedInteractor = kosmos.userLockedInteractor, ) } @Test fun testNoInteractionUntilMainUserUnlocked() = kosmos.runTest { kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, false) // Database created underTest.onCreate(database) verify(communalWidgetHost, never()) .allocateIdAndBindWidget(provider = any(), user = any()) kosmos.fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true) verify(communalWidgetHost, atLeastOnce()) .allocateIdAndBindWidget(provider = any(), user = any()) } @Test fun testPopulateDefaultWidgetsWhenDatabaseCreated() = testScope.runTest { kosmos.runTest { // Database created underTest.onCreate(database) runCurrent() // Verify default widgets bound verify(communalWidgetHost) .allocateIdAndBindWidget( provider = eq(ComponentName.unflattenFromString(defaultWidgets[0])!!), user = eq(mainUser), user = eq(UserHandle(MAIN_USER_ID)), ) verify(communalWidgetHost) .allocateIdAndBindWidget( provider = eq(ComponentName.unflattenFromString(defaultWidgets[1])!!), user = eq(mainUser), user = eq(UserHandle(MAIN_USER_ID)), ) verify(communalWidgetHost) .allocateIdAndBindWidget( provider = eq(ComponentName.unflattenFromString(defaultWidgets[2])!!), user = eq(mainUser), user = eq(UserHandle(MAIN_USER_ID)), ) // Verify default widgets added in database Loading Loading @@ -138,13 +150,12 @@ class DefaultWidgetPopulationTest : SysuiTestCase() { @Test fun testSkipDefaultWidgetsPopulation() = testScope.runTest { kosmos.runTest { // Skip default widgets population underTest.skipDefaultWidgetsPopulation(RESTORED_FROM_BACKUP) // Database created underTest.onCreate(database) runCurrent() // Verify no widget bounded or added to the database verify(communalWidgetHost, never()).allocateIdAndBindWidget(any(), any()) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/communal/domain/interactor/CommunalInteractorTest.kt +12 −11 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.settings.fakeUserTracker import com.android.systemui.statusbar.phone.fakeManagedProfileController import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.argumentCaptor Loading Loading @@ -163,12 +164,12 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { } @Test fun isCommunalAvailable_storageUnlockedAndMainUser_true() = fun isCommunalAvailable_mainUserUnlockedAndMainUser_true() = kosmos.runTest { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading @@ -176,12 +177,12 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { } @Test fun isCommunalAvailable_storageLockedAndMainUser_false() = fun isCommunalAvailable_mainUserLockedAndMainUser_false() = kosmos.runTest { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(true) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, false) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading @@ -189,12 +190,12 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { } @Test fun isCommunalAvailable_storageUnlockedAndSecondaryUser_false() = fun isCommunalAvailable_mainUserUnlockedAndSecondaryUser_false() = kosmos.runTest { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(secondaryUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading @@ -207,7 +208,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading @@ -222,7 +223,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { val isAvailable by collectLastValue(underTest.isCommunalAvailable) assertThat(isAvailable).isFalse() fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, false) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) Loading Loading @@ -1282,7 +1283,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { @Test fun showCommunalWhileCharging() = kosmos.runTest { fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) fakeSettings.putIntForUser( Loading @@ -1302,7 +1303,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { @Test fun showCommunalWhilePosturedAndCharging() = kosmos.runTest { fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) fakeSettings.putIntForUser( Loading @@ -1323,7 +1324,7 @@ class CommunalInteractorTest(flags: FlagsParameterization) : SysuiTestCase() { @Test fun showCommunalWhileDocked() = kosmos.runTest { fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(mainUser) fakeKeyguardRepository.setKeyguardShowing(true) fakeSettings.putIntForUser(Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 1, mainUser.id) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt +1 −1 Original line number Diff line number Diff line Loading @@ -203,7 +203,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { // Keyguard showing, storage unlocked, main user, and tutorial not started. keyguardRepository.setKeyguardShowing(true) keyguardRepository.setKeyguardOccluded(false) keyguardRepository.setIsEncryptedOrLockdown(false) userRepository.setUserUnlocked(FakeUserRepository.MAIN_USER_ID, true) setIsMainUser(true) tutorialRepository.setTutorialSettingState( Settings.Secure.HUB_MODE_TUTORIAL_NOT_STARTED Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/communal/widgets/CommunalAppWidgetHostStartableTest.kt +5 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,9 @@ import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.settings.fakeUserTracker import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.FakeUserRepository.Companion.MAIN_USER_ID import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.user.domain.interactor.userLockedInteractor import com.android.systemui.util.mockito.whenever import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat Loading Loading @@ -91,6 +93,7 @@ class CommunalAppWidgetHostStartableTest : SysuiTestCase() { kosmos.testDispatcher, { widgetManager }, helper, kosmos.userLockedInteractor, ) } Loading Loading @@ -269,6 +272,7 @@ class CommunalAppWidgetHostStartableTest : SysuiTestCase() { // Binding to the service does not require keyguard showing setCommunalAvailable(true, setKeyguardShowing = false) fakeKeyguardRepository.setIsEncryptedOrLockdown(false) runCurrent() verify(widgetManager).register() Loading @@ -283,7 +287,7 @@ class CommunalAppWidgetHostStartableTest : SysuiTestCase() { setKeyguardShowing: Boolean = true, ) = with(kosmos) { fakeKeyguardRepository.setIsEncryptedOrLockdown(false) fakeUserRepository.setUserUnlocked(MAIN_USER_ID, true) fakeUserRepository.setSelectedUserInfo(MAIN_USER_INFO) if (setKeyguardShowing) { fakeKeyguardRepository.setKeyguardShowing(true) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt +37 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.user.data.repository import android.app.admin.devicePolicyManager import android.content.Intent import android.content.pm.UserInfo import android.internal.statusbar.fakeStatusBarService import android.os.UserHandle Loading @@ -27,6 +28,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.broadcastDispatcher import com.android.systemui.coroutines.collectLastValue import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.kosmos.useUnconfinedTestDispatcher Loading @@ -50,6 +52,8 @@ import org.mockito.Mock import org.mockito.Mockito.mock import org.mockito.Mockito.`when` as whenever import org.mockito.MockitoAnnotations import org.mockito.kotlin.eq import org.mockito.kotlin.mock @SmallTest @RunWith(AndroidJUnit4::class) Loading Loading @@ -171,6 +175,39 @@ class UserRepositoryImplTest : SysuiTestCase() { job2.cancel() } @Test fun userUnlockedFlow_tracksBroadcastedChanges() = testScope.runTest { val userHandle: UserHandle = mock() underTest = create(testScope.backgroundScope) val latest by collectLastValue(underTest.isUserUnlocked(userHandle)) whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(false) broadcastDispatcher.sendIntentToMatchingReceiversOnly( context, Intent(Intent.ACTION_USER_UNLOCKED), ) assertThat(latest).isFalse() whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(true) broadcastDispatcher.sendIntentToMatchingReceiversOnly( context, Intent(Intent.ACTION_USER_UNLOCKED), ) assertThat(latest).isTrue() } @Test fun userUnlockedFlow_initialValueReported() = testScope.runTest { val userHandle: UserHandle = mock() underTest = create(testScope.backgroundScope) whenever(manager.isUserUnlocked(eq(userHandle))).thenReturn(true) val latest by collectLastValue(underTest.isUserUnlocked(userHandle)) assertThat(latest).isTrue() } @Test fun refreshUsers_sortsByCreationTime_guestUserLast() = testScope.runTest { Loading