Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/HomeControlsKeyguardQuickAffordanceConfigParameterizedStateTest.kt +4 −6 Original line number Diff line number Diff line Loading @@ -32,7 +32,8 @@ import java.util.Optional import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading Loading @@ -125,14 +126,11 @@ class HomeControlsKeyguardQuickAffordanceConfigParameterizedStateTest : SysuiTes ) underTest = HomeControlsKeyguardQuickAffordanceConfig( context = context, component = component, ) HomeControlsKeyguardQuickAffordanceConfig(context = context, component = component) } @Test fun state() = runBlockingTest { fun state() = runTest(UnconfinedTestDispatcher()) { whenever(component.isEnabled()).thenReturn(isFeatureEnabled) whenever(controlsController.getFavorites()) .thenReturn( Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/HomeControlsKeyguardQuickAffordanceConfigTest.kt +22 −21 Original line number Diff line number Diff line Loading @@ -19,19 +19,20 @@ package com.android.systemui.keyguard.data.quickaffordance import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.res.R import com.android.systemui.SysuiTestCase import com.android.systemui.animation.Expandable import com.android.systemui.controls.controller.ControlsController import com.android.systemui.controls.dagger.ControlsComponent import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceConfig.OnTriggeredResult import com.android.systemui.res.R import com.android.systemui.util.mockito.mock import com.google.common.truth.Truth.assertThat import java.util.Optional import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -54,14 +55,11 @@ class HomeControlsKeyguardQuickAffordanceConfigTest : SysuiTestCase() { whenever(component.canShowWhileLockedSetting).thenReturn(MutableStateFlow(true)) underTest = HomeControlsKeyguardQuickAffordanceConfig( context = context, component = component, ) HomeControlsKeyguardQuickAffordanceConfig(context = context, component = component) } @Test fun state_whenCannotShowWhileLocked_returnsHidden() = runBlockingTest { fun state_whenCannotShowWhileLocked_returnsHidden() = runTest(UnconfinedTestDispatcher()) { whenever(component.canShowWhileLockedSetting).thenReturn(MutableStateFlow(false)) whenever(component.isEnabled()).thenReturn(true) whenever(component.getTileImageId()).thenReturn(R.drawable.controls_icon) Loading @@ -81,7 +79,7 @@ class HomeControlsKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun state_whenListingControllerIsMissing_returnsHidden() = runBlockingTest { fun state_whenListingControllerIsMissing_returnsHidden() = runTest(UnconfinedTestDispatcher()) { whenever(component.isEnabled()).thenReturn(true) whenever(component.getTileImageId()).thenReturn(R.drawable.controls_icon) whenever(component.getTileTitleId()).thenReturn(R.string.quick_controls_title) Loading @@ -100,17 +98,20 @@ class HomeControlsKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun onQuickAffordanceTriggered_canShowWhileLockedSettingIsTrue() = runBlockingTest { fun onQuickAffordanceTriggered_canShowWhileLockedSettingIsTrue() = runTest(UnconfinedTestDispatcher()) { whenever(component.canShowWhileLockedSetting).thenReturn(MutableStateFlow(true)) val onClickedResult = underTest.onTriggered(expandable) assertThat(onClickedResult).isInstanceOf(OnTriggeredResult.StartActivity::class.java) assertThat((onClickedResult as OnTriggeredResult.StartActivity).canShowWhileLocked).isTrue() assertThat((onClickedResult as OnTriggeredResult.StartActivity).canShowWhileLocked) .isTrue() } @Test fun onQuickAffordanceTriggered_canShowWhileLockedSettingIsFalse() = runBlockingTest { fun onQuickAffordanceTriggered_canShowWhileLockedSettingIsFalse() = runTest(UnconfinedTestDispatcher()) { whenever(component.canShowWhileLockedSetting).thenReturn(MutableStateFlow(false)) val onClickedResult = underTest.onTriggered(expandable) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/QrCodeScannerKeyguardQuickAffordanceConfigTest.kt +61 −59 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test Loading @@ -56,7 +56,8 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun affordance_setsUpRegistrationAndDeliversInitialModel() = runBlockingTest { fun affordance_setsUpRegistrationAndDeliversInitialModel() = runTest(UnconfinedTestDispatcher()) { whenever(controller.isEnabledForLockScreenButton).thenReturn(true) var latest: KeyguardQuickAffordanceConfig.LockScreenState? = null Loading @@ -67,7 +68,7 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { verify(controller) .registerQRCodeScannerChangeObservers( QRCodeScannerController.DEFAULT_QR_CODE_SCANNER_CHANGE, QRCodeScannerController.QR_CODE_SCANNER_PREFERENCE_CHANGE QRCodeScannerController.QR_CODE_SCANNER_PREFERENCE_CHANGE, ) assertVisibleState(latest) Loading @@ -76,7 +77,8 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun affordance_scannerActivityChanged_deliversModelWithUpdatedIntent() = runBlockingTest { fun affordance_scannerActivityChanged_deliversModelWithUpdatedIntent() = runTest(UnconfinedTestDispatcher()) { whenever(controller.isEnabledForLockScreenButton).thenReturn(true) var latest: KeyguardQuickAffordanceConfig.LockScreenState? = null val job = underTest.lockScreenState.onEach { latest = it }.launchIn(this) Loading @@ -93,7 +95,8 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun affordance_scannerPreferenceChanged_deliversVisibleModel() = runBlockingTest { fun affordance_scannerPreferenceChanged_deliversVisibleModel() = runTest(UnconfinedTestDispatcher()) { var latest: KeyguardQuickAffordanceConfig.LockScreenState? = null val job = underTest.lockScreenState.onEach { latest = it }.launchIn(this) val callbackCaptor = argumentCaptor<QRCodeScannerController.Callback>() Loading @@ -109,7 +112,7 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun affordance_scannerPreferenceChanged_deliversNone() = runBlockingTest { fun affordance_scannerPreferenceChanged_deliversNone() = runTest(UnconfinedTestDispatcher()) { var latest: KeyguardQuickAffordanceConfig.LockScreenState? = null val job = underTest.lockScreenState.onEach { latest = it }.launchIn(this) val callbackCaptor = argumentCaptor<QRCodeScannerController.Callback>() Loading @@ -128,15 +131,13 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { fun onQuickAffordanceTriggered() { assertThat(underTest.onTriggered(mock())) .isEqualTo( OnTriggeredResult.StartActivity( intent = INTENT_1, canShowWhileLocked = true, ) OnTriggeredResult.StartActivity(intent = INTENT_1, canShowWhileLocked = true) ) } @Test fun getPickerScreenState_enabledIfConfiguredOnDevice_isEnabledForPickerState() = runTest { fun getPickerScreenState_enabledIfConfiguredOnDevice_isEnabledForPickerState() = runTest(UnconfinedTestDispatcher()) { whenever(controller.isAllowedOnLockScreen).thenReturn(true) whenever(controller.isAbleToLaunchScannerActivity).thenReturn(true) Loading @@ -145,7 +146,8 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun getPickerScreenState_disabledIfConfiguredOnDevice_isDisabledForPickerState() = runTest { fun getPickerScreenState_disabledIfConfiguredOnDevice_isDisabledForPickerState() = runTest(UnconfinedTestDispatcher()) { whenever(controller.isAllowedOnLockScreen).thenReturn(true) whenever(controller.isAbleToLaunchScannerActivity).thenReturn(false) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/user/domain/interactor/GuestUserInteractorTest.kt +29 −33 Original line number Diff line number Diff line Loading @@ -22,21 +22,25 @@ import android.content.Context import android.content.pm.UserInfo import android.os.UserHandle import android.os.UserManager import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.logging.UiEventLogger import com.android.systemui.GuestResetOrExitSessionReceiver import com.android.systemui.GuestResumeSessionReceiver import com.android.systemui.SysuiTestCase import com.android.systemui.kosmos.runTest import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.kosmos.useUnconfinedTestDispatcher import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.user.domain.model.ShowDialogRequestModel import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.kotlinArgumentCaptor import com.android.systemui.util.mockito.whenever import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runBlocking import kotlinx.coroutines.test.TestCoroutineScope import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -48,6 +52,7 @@ import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidJUnit4::class) @TestableLooper.RunWithLooper class GuestUserInteractorTest : SysuiTestCase() { @Mock private lateinit var manager: UserManager Loading @@ -64,16 +69,15 @@ class GuestUserInteractorTest : SysuiTestCase() { private lateinit var underTest: GuestUserInteractor private lateinit var scope: TestCoroutineScope private lateinit var repository: FakeUserRepository private val kosmos = testKosmos().useUnconfinedTestDispatcher() private val scope = kosmos.testScope private val repository = FakeUserRepository() @Before fun setUp() { MockitoAnnotations.initMocks(this) whenever(manager.createGuest(any())).thenReturn(GUEST_USER_INFO) scope = TestCoroutineScope() repository = FakeUserRepository() repository.setUserInfos(ALL_USERS) underTest = initGuestUserInteractor(context) Loading @@ -83,8 +87,8 @@ class GuestUserInteractorTest : SysuiTestCase() { GuestUserInteractor( applicationContext = context, applicationScope = scope, mainDispatcher = IMMEDIATE, backgroundDispatcher = IMMEDIATE, mainDispatcher = kosmos.testDispatcher, backgroundDispatcher = kosmos.testDispatcher, manager = manager, repository = repository, deviceProvisionedController = deviceProvisionedController, Loading @@ -92,7 +96,7 @@ class GuestUserInteractorTest : SysuiTestCase() { refreshUsersScheduler = RefreshUsersScheduler( applicationScope = scope, mainDispatcher = IMMEDIATE, mainDispatcher = kosmos.testDispatcher, repository = repository, ), uiEventLogger = uiEventLogger, Loading @@ -118,7 +122,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun onDeviceBootCompleted_allowedToAdd_createGuest() = runBlocking(IMMEDIATE) { kosmos.runTest { setAllowedToAdd() underTest.onDeviceBootCompleted() Loading @@ -129,7 +133,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun onDeviceBootCompleted_awaitProvisioning_andCreateGuest() = runBlocking(IMMEDIATE) { kosmos.runTest { setAllowedToAdd(isAllowed = false) underTest.onDeviceBootCompleted() val captor = Loading @@ -145,7 +149,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun createAndSwitchTo() = runBlocking(IMMEDIATE) { kosmos.runTest { underTest.createAndSwitchTo( showDialog = showDialog, dismissDialog = dismissDialog, Loading @@ -160,7 +164,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun createAndSwitchTo_failsToCreate_doesNotSwitchTo() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.createGuest(any())).thenReturn(null) underTest.createAndSwitchTo( Loading @@ -177,7 +181,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_returnsToTargetUser() = runBlocking(IMMEDIATE) { kosmos.runTest { repository.setSelectedUserInfo(GUEST_USER_INFO) val targetUserId = NON_GUEST_USER_INFO.id Loading @@ -197,7 +201,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_returnsToLastNonGuest() = runBlocking(IMMEDIATE) { kosmos.runTest { val expectedUserId = NON_GUEST_USER_INFO.id whenever(manager.getUserInfo(expectedUserId)).thenReturn(NON_GUEST_USER_INFO) repository.lastSelectedNonGuestUserId = expectedUserId Loading @@ -219,7 +223,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_lastNonGuestWasRemoved_returnsToMainUser() = runBlocking(IMMEDIATE) { kosmos.runTest { val removedUserId = 310 val mainUserId = 10 repository.lastSelectedNonGuestUserId = removedUserId Loading @@ -242,7 +246,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_guestWasEphemeral_itIsRemoved() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setUserInfos(listOf(NON_GUEST_USER_INFO, EPHEMERAL_GUEST_USER_INFO)) repository.setSelectedUserInfo(EPHEMERAL_GUEST_USER_INFO) Loading @@ -265,7 +269,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_forceRemoveGuest_itIsRemoved() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setSelectedUserInfo(GUEST_USER_INFO) val targetUserId = NON_GUEST_USER_INFO.id Loading @@ -287,7 +291,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_selectedDifferentFromGuestUser_doNothing() = runBlocking(IMMEDIATE) { kosmos.runTest { repository.setSelectedUserInfo(NON_GUEST_USER_INFO) underTest.exit( Loading @@ -304,7 +308,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_selectedIsActuallyNotAguestUser_doNothing() = runBlocking(IMMEDIATE) { kosmos.runTest { repository.setSelectedUserInfo(NON_GUEST_USER_INFO) underTest.exit( Loading @@ -321,7 +325,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun remove_returnsToTargetUser() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setSelectedUserInfo(GUEST_USER_INFO) Loading @@ -342,7 +346,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun remove_selectedDifferentFromGuestUser_doNothing() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setSelectedUserInfo(NON_GUEST_USER_INFO) Loading @@ -359,7 +363,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun remove_selectedIsActuallyNotAguestUser_doNothing() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setSelectedUserInfo(NON_GUEST_USER_INFO) Loading Loading @@ -395,11 +399,7 @@ class GuestUserInteractorTest : SysuiTestCase() { companion object { private val IMMEDIATE = Dispatchers.Main.immediate private val NON_GUEST_USER_INFO = UserInfo( /* id= */ 818, /* name= */ "non_guest", /* flags= */ UserInfo.FLAG_FULL, ) UserInfo(/* id= */ 818, /* name= */ "non_guest", /* flags= */ UserInfo.FLAG_FULL) private val GUEST_USER_INFO = UserInfo( /* id= */ 669, Loading @@ -416,10 +416,6 @@ class GuestUserInteractorTest : SysuiTestCase() { /* flags= */ UserInfo.FLAG_EPHEMERAL or UserInfo.FLAG_FULL, UserManager.USER_TYPE_FULL_GUEST, ) private val ALL_USERS = listOf( NON_GUEST_USER_INFO, GUEST_USER_INFO, ) private val ALL_USERS = listOf(NON_GUEST_USER_INFO, GUEST_USER_INFO) } } packages/SystemUI/tests/src/com/android/systemui/broadcast/BroadcastDispatcherTest.kt +114 −83 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/HomeControlsKeyguardQuickAffordanceConfigParameterizedStateTest.kt +4 −6 Original line number Diff line number Diff line Loading @@ -32,7 +32,8 @@ import java.util.Optional import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading Loading @@ -125,14 +126,11 @@ class HomeControlsKeyguardQuickAffordanceConfigParameterizedStateTest : SysuiTes ) underTest = HomeControlsKeyguardQuickAffordanceConfig( context = context, component = component, ) HomeControlsKeyguardQuickAffordanceConfig(context = context, component = component) } @Test fun state() = runBlockingTest { fun state() = runTest(UnconfinedTestDispatcher()) { whenever(component.isEnabled()).thenReturn(isFeatureEnabled) whenever(controlsController.getFavorites()) .thenReturn( Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/HomeControlsKeyguardQuickAffordanceConfigTest.kt +22 −21 Original line number Diff line number Diff line Loading @@ -19,19 +19,20 @@ package com.android.systemui.keyguard.data.quickaffordance import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.res.R import com.android.systemui.SysuiTestCase import com.android.systemui.animation.Expandable import com.android.systemui.controls.controller.ControlsController import com.android.systemui.controls.dagger.ControlsComponent import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceConfig.OnTriggeredResult import com.android.systemui.res.R import com.android.systemui.util.mockito.mock import com.google.common.truth.Truth.assertThat import java.util.Optional import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -54,14 +55,11 @@ class HomeControlsKeyguardQuickAffordanceConfigTest : SysuiTestCase() { whenever(component.canShowWhileLockedSetting).thenReturn(MutableStateFlow(true)) underTest = HomeControlsKeyguardQuickAffordanceConfig( context = context, component = component, ) HomeControlsKeyguardQuickAffordanceConfig(context = context, component = component) } @Test fun state_whenCannotShowWhileLocked_returnsHidden() = runBlockingTest { fun state_whenCannotShowWhileLocked_returnsHidden() = runTest(UnconfinedTestDispatcher()) { whenever(component.canShowWhileLockedSetting).thenReturn(MutableStateFlow(false)) whenever(component.isEnabled()).thenReturn(true) whenever(component.getTileImageId()).thenReturn(R.drawable.controls_icon) Loading @@ -81,7 +79,7 @@ class HomeControlsKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun state_whenListingControllerIsMissing_returnsHidden() = runBlockingTest { fun state_whenListingControllerIsMissing_returnsHidden() = runTest(UnconfinedTestDispatcher()) { whenever(component.isEnabled()).thenReturn(true) whenever(component.getTileImageId()).thenReturn(R.drawable.controls_icon) whenever(component.getTileTitleId()).thenReturn(R.string.quick_controls_title) Loading @@ -100,17 +98,20 @@ class HomeControlsKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun onQuickAffordanceTriggered_canShowWhileLockedSettingIsTrue() = runBlockingTest { fun onQuickAffordanceTriggered_canShowWhileLockedSettingIsTrue() = runTest(UnconfinedTestDispatcher()) { whenever(component.canShowWhileLockedSetting).thenReturn(MutableStateFlow(true)) val onClickedResult = underTest.onTriggered(expandable) assertThat(onClickedResult).isInstanceOf(OnTriggeredResult.StartActivity::class.java) assertThat((onClickedResult as OnTriggeredResult.StartActivity).canShowWhileLocked).isTrue() assertThat((onClickedResult as OnTriggeredResult.StartActivity).canShowWhileLocked) .isTrue() } @Test fun onQuickAffordanceTriggered_canShowWhileLockedSettingIsFalse() = runBlockingTest { fun onQuickAffordanceTriggered_canShowWhileLockedSettingIsFalse() = runTest(UnconfinedTestDispatcher()) { whenever(component.canShowWhileLockedSetting).thenReturn(MutableStateFlow(false)) val onClickedResult = underTest.onTriggered(expandable) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/QrCodeScannerKeyguardQuickAffordanceConfigTest.kt +61 −59 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.test.runBlockingTest import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test Loading @@ -56,7 +56,8 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun affordance_setsUpRegistrationAndDeliversInitialModel() = runBlockingTest { fun affordance_setsUpRegistrationAndDeliversInitialModel() = runTest(UnconfinedTestDispatcher()) { whenever(controller.isEnabledForLockScreenButton).thenReturn(true) var latest: KeyguardQuickAffordanceConfig.LockScreenState? = null Loading @@ -67,7 +68,7 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { verify(controller) .registerQRCodeScannerChangeObservers( QRCodeScannerController.DEFAULT_QR_CODE_SCANNER_CHANGE, QRCodeScannerController.QR_CODE_SCANNER_PREFERENCE_CHANGE QRCodeScannerController.QR_CODE_SCANNER_PREFERENCE_CHANGE, ) assertVisibleState(latest) Loading @@ -76,7 +77,8 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun affordance_scannerActivityChanged_deliversModelWithUpdatedIntent() = runBlockingTest { fun affordance_scannerActivityChanged_deliversModelWithUpdatedIntent() = runTest(UnconfinedTestDispatcher()) { whenever(controller.isEnabledForLockScreenButton).thenReturn(true) var latest: KeyguardQuickAffordanceConfig.LockScreenState? = null val job = underTest.lockScreenState.onEach { latest = it }.launchIn(this) Loading @@ -93,7 +95,8 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun affordance_scannerPreferenceChanged_deliversVisibleModel() = runBlockingTest { fun affordance_scannerPreferenceChanged_deliversVisibleModel() = runTest(UnconfinedTestDispatcher()) { var latest: KeyguardQuickAffordanceConfig.LockScreenState? = null val job = underTest.lockScreenState.onEach { latest = it }.launchIn(this) val callbackCaptor = argumentCaptor<QRCodeScannerController.Callback>() Loading @@ -109,7 +112,7 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun affordance_scannerPreferenceChanged_deliversNone() = runBlockingTest { fun affordance_scannerPreferenceChanged_deliversNone() = runTest(UnconfinedTestDispatcher()) { var latest: KeyguardQuickAffordanceConfig.LockScreenState? = null val job = underTest.lockScreenState.onEach { latest = it }.launchIn(this) val callbackCaptor = argumentCaptor<QRCodeScannerController.Callback>() Loading @@ -128,15 +131,13 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { fun onQuickAffordanceTriggered() { assertThat(underTest.onTriggered(mock())) .isEqualTo( OnTriggeredResult.StartActivity( intent = INTENT_1, canShowWhileLocked = true, ) OnTriggeredResult.StartActivity(intent = INTENT_1, canShowWhileLocked = true) ) } @Test fun getPickerScreenState_enabledIfConfiguredOnDevice_isEnabledForPickerState() = runTest { fun getPickerScreenState_enabledIfConfiguredOnDevice_isEnabledForPickerState() = runTest(UnconfinedTestDispatcher()) { whenever(controller.isAllowedOnLockScreen).thenReturn(true) whenever(controller.isAbleToLaunchScannerActivity).thenReturn(true) Loading @@ -145,7 +146,8 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() { } @Test fun getPickerScreenState_disabledIfConfiguredOnDevice_isDisabledForPickerState() = runTest { fun getPickerScreenState_disabledIfConfiguredOnDevice_isDisabledForPickerState() = runTest(UnconfinedTestDispatcher()) { whenever(controller.isAllowedOnLockScreen).thenReturn(true) whenever(controller.isAbleToLaunchScannerActivity).thenReturn(false) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/user/domain/interactor/GuestUserInteractorTest.kt +29 −33 Original line number Diff line number Diff line Loading @@ -22,21 +22,25 @@ import android.content.Context import android.content.pm.UserInfo import android.os.UserHandle import android.os.UserManager import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.logging.UiEventLogger import com.android.systemui.GuestResetOrExitSessionReceiver import com.android.systemui.GuestResumeSessionReceiver import com.android.systemui.SysuiTestCase import com.android.systemui.kosmos.runTest import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.kosmos.useUnconfinedTestDispatcher import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.user.domain.model.ShowDialogRequestModel import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.kotlinArgumentCaptor import com.android.systemui.util.mockito.whenever import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runBlocking import kotlinx.coroutines.test.TestCoroutineScope import org.junit.Before import org.junit.Test import org.junit.runner.RunWith Loading @@ -48,6 +52,7 @@ import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidJUnit4::class) @TestableLooper.RunWithLooper class GuestUserInteractorTest : SysuiTestCase() { @Mock private lateinit var manager: UserManager Loading @@ -64,16 +69,15 @@ class GuestUserInteractorTest : SysuiTestCase() { private lateinit var underTest: GuestUserInteractor private lateinit var scope: TestCoroutineScope private lateinit var repository: FakeUserRepository private val kosmos = testKosmos().useUnconfinedTestDispatcher() private val scope = kosmos.testScope private val repository = FakeUserRepository() @Before fun setUp() { MockitoAnnotations.initMocks(this) whenever(manager.createGuest(any())).thenReturn(GUEST_USER_INFO) scope = TestCoroutineScope() repository = FakeUserRepository() repository.setUserInfos(ALL_USERS) underTest = initGuestUserInteractor(context) Loading @@ -83,8 +87,8 @@ class GuestUserInteractorTest : SysuiTestCase() { GuestUserInteractor( applicationContext = context, applicationScope = scope, mainDispatcher = IMMEDIATE, backgroundDispatcher = IMMEDIATE, mainDispatcher = kosmos.testDispatcher, backgroundDispatcher = kosmos.testDispatcher, manager = manager, repository = repository, deviceProvisionedController = deviceProvisionedController, Loading @@ -92,7 +96,7 @@ class GuestUserInteractorTest : SysuiTestCase() { refreshUsersScheduler = RefreshUsersScheduler( applicationScope = scope, mainDispatcher = IMMEDIATE, mainDispatcher = kosmos.testDispatcher, repository = repository, ), uiEventLogger = uiEventLogger, Loading @@ -118,7 +122,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun onDeviceBootCompleted_allowedToAdd_createGuest() = runBlocking(IMMEDIATE) { kosmos.runTest { setAllowedToAdd() underTest.onDeviceBootCompleted() Loading @@ -129,7 +133,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun onDeviceBootCompleted_awaitProvisioning_andCreateGuest() = runBlocking(IMMEDIATE) { kosmos.runTest { setAllowedToAdd(isAllowed = false) underTest.onDeviceBootCompleted() val captor = Loading @@ -145,7 +149,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun createAndSwitchTo() = runBlocking(IMMEDIATE) { kosmos.runTest { underTest.createAndSwitchTo( showDialog = showDialog, dismissDialog = dismissDialog, Loading @@ -160,7 +164,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun createAndSwitchTo_failsToCreate_doesNotSwitchTo() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.createGuest(any())).thenReturn(null) underTest.createAndSwitchTo( Loading @@ -177,7 +181,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_returnsToTargetUser() = runBlocking(IMMEDIATE) { kosmos.runTest { repository.setSelectedUserInfo(GUEST_USER_INFO) val targetUserId = NON_GUEST_USER_INFO.id Loading @@ -197,7 +201,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_returnsToLastNonGuest() = runBlocking(IMMEDIATE) { kosmos.runTest { val expectedUserId = NON_GUEST_USER_INFO.id whenever(manager.getUserInfo(expectedUserId)).thenReturn(NON_GUEST_USER_INFO) repository.lastSelectedNonGuestUserId = expectedUserId Loading @@ -219,7 +223,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_lastNonGuestWasRemoved_returnsToMainUser() = runBlocking(IMMEDIATE) { kosmos.runTest { val removedUserId = 310 val mainUserId = 10 repository.lastSelectedNonGuestUserId = removedUserId Loading @@ -242,7 +246,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_guestWasEphemeral_itIsRemoved() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setUserInfos(listOf(NON_GUEST_USER_INFO, EPHEMERAL_GUEST_USER_INFO)) repository.setSelectedUserInfo(EPHEMERAL_GUEST_USER_INFO) Loading @@ -265,7 +269,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_forceRemoveGuest_itIsRemoved() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setSelectedUserInfo(GUEST_USER_INFO) val targetUserId = NON_GUEST_USER_INFO.id Loading @@ -287,7 +291,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_selectedDifferentFromGuestUser_doNothing() = runBlocking(IMMEDIATE) { kosmos.runTest { repository.setSelectedUserInfo(NON_GUEST_USER_INFO) underTest.exit( Loading @@ -304,7 +308,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun exit_selectedIsActuallyNotAguestUser_doNothing() = runBlocking(IMMEDIATE) { kosmos.runTest { repository.setSelectedUserInfo(NON_GUEST_USER_INFO) underTest.exit( Loading @@ -321,7 +325,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun remove_returnsToTargetUser() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setSelectedUserInfo(GUEST_USER_INFO) Loading @@ -342,7 +346,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun remove_selectedDifferentFromGuestUser_doNothing() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setSelectedUserInfo(NON_GUEST_USER_INFO) Loading @@ -359,7 +363,7 @@ class GuestUserInteractorTest : SysuiTestCase() { @Test fun remove_selectedIsActuallyNotAguestUser_doNothing() = runBlocking(IMMEDIATE) { kosmos.runTest { whenever(manager.markGuestForDeletion(anyInt())).thenReturn(true) repository.setSelectedUserInfo(NON_GUEST_USER_INFO) Loading Loading @@ -395,11 +399,7 @@ class GuestUserInteractorTest : SysuiTestCase() { companion object { private val IMMEDIATE = Dispatchers.Main.immediate private val NON_GUEST_USER_INFO = UserInfo( /* id= */ 818, /* name= */ "non_guest", /* flags= */ UserInfo.FLAG_FULL, ) UserInfo(/* id= */ 818, /* name= */ "non_guest", /* flags= */ UserInfo.FLAG_FULL) private val GUEST_USER_INFO = UserInfo( /* id= */ 669, Loading @@ -416,10 +416,6 @@ class GuestUserInteractorTest : SysuiTestCase() { /* flags= */ UserInfo.FLAG_EPHEMERAL or UserInfo.FLAG_FULL, UserManager.USER_TYPE_FULL_GUEST, ) private val ALL_USERS = listOf( NON_GUEST_USER_INFO, GUEST_USER_INFO, ) private val ALL_USERS = listOf(NON_GUEST_USER_INFO, GUEST_USER_INFO) } }
packages/SystemUI/tests/src/com/android/systemui/broadcast/BroadcastDispatcherTest.kt +114 −83 File changed.Preview size limit exceeded, changes collapsed. Show changes