diff options
22 files changed, 388 insertions, 365 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/AccessibilityQsShortcutsRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/AccessibilityQsShortcutsRepositoryImplTest.kt index 460461a003f6..176c3ac43936 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/AccessibilityQsShortcutsRepositoryImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/AccessibilityQsShortcutsRepositoryImplTest.kt @@ -22,10 +22,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope +import com.android.systemui.testKosmos +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Rule @@ -38,13 +39,15 @@ import org.mockito.junit.MockitoRule @SmallTest @RunWith(AndroidJUnit4::class) class AccessibilityQsShortcutsRepositoryImplTest : SysuiTestCase() { + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope + private val secureSettings = kosmos.fakeSettings + @Rule @JvmField val mockitoRule: MockitoRule = MockitoJUnit.rule() // mocks @Mock private lateinit var a11yManager: AccessibilityManager - private val testDispatcher = StandardTestDispatcher() - private val testScope = TestScope(testDispatcher) - private val secureSettings = FakeSettings() private val userA11yQsShortcutsRepositoryFactory = object : UserA11yQsShortcutsRepository.Factory { diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/ColorCorrectionRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/ColorCorrectionRepositoryImplTest.kt index 4e1f82c24bb6..801d3599ac10 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/ColorCorrectionRepositoryImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/ColorCorrectionRepositoryImplTest.kt @@ -23,11 +23,12 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope +import com.android.systemui.testKosmos +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before @@ -41,9 +42,10 @@ class ColorCorrectionRepositoryImplTest : SysuiTestCase() { private val testUser1 = UserHandle.of(1)!! private val testUser2 = UserHandle.of(2)!! - private val testDispatcher = StandardTestDispatcher() - private val scope = TestScope(testDispatcher) - private val settings: FakeSettings = FakeSettings() + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val scope = kosmos.testScope + private val settings = kosmos.fakeSettings private lateinit var underTest: ColorCorrectionRepository diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/ColorInversionRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/ColorInversionRepositoryImplTest.kt index b99dec44b519..2f457be8a81b 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/ColorInversionRepositoryImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/ColorInversionRepositoryImplTest.kt @@ -23,11 +23,12 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope +import com.android.systemui.testKosmos +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before @@ -41,9 +42,10 @@ class ColorInversionRepositoryImplTest : SysuiTestCase() { private val testUser1 = UserHandle.of(1)!! private val testUser2 = UserHandle.of(2)!! - private val testDispatcher = StandardTestDispatcher() - private val scope = TestScope(testDispatcher) - private val settings: FakeSettings = FakeSettings() + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val scope = kosmos.testScope + private val settings = kosmos.fakeSettings private lateinit var underTest: ColorInversionRepository diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/NightDisplayRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/NightDisplayRepositoryTest.kt index 5757f67cc1dd..54dbed8407d0 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/NightDisplayRepositoryTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/NightDisplayRepositoryTest.kt @@ -26,7 +26,9 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.dagger.NightDisplayListenerModule -import com.android.systemui.kosmos.Kosmos +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope +import com.android.systemui.testKosmos import com.android.systemui.user.utils.UserScopedService import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.eq @@ -38,8 +40,6 @@ import com.android.systemui.utils.leaks.FakeLocationController import com.google.common.truth.Truth.assertThat import java.time.LocalTime import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Test @@ -51,7 +51,7 @@ import org.mockito.Mockito.verify @SmallTest @RunWith(AndroidJUnit4::class) class NightDisplayRepositoryTest : SysuiTestCase() { - private val kosmos = Kosmos() + private val kosmos = testKosmos() private val testUser = UserHandle.of(1)!! private val testStartTime = LocalTime.MIDNIGHT private val testEndTime = LocalTime.NOON @@ -71,8 +71,8 @@ class NightDisplayRepositoryTest : SysuiTestCase() { } private val globalSettings = kosmos.fakeGlobalSettings private val secureSettings = kosmos.fakeSettings - private val testDispatcher = StandardTestDispatcher() - private val scope = TestScope(testDispatcher) + private val testDispatcher = kosmos.testDispatcher + private val scope = kosmos.testScope private val userScopedColorDisplayManager = mock<UserScopedService<ColorDisplayManager>> { whenever(forUser(eq(testUser))).thenReturn(colorDisplayManager) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/OneHandedModeRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/OneHandedModeRepositoryImplTest.kt index 1378dac98eaa..729d356e2be1 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/OneHandedModeRepositoryImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/OneHandedModeRepositoryImplTest.kt @@ -22,11 +22,12 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope +import com.android.systemui.testKosmos +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Test @@ -39,9 +40,10 @@ class OneHandedModeRepositoryImplTest : SysuiTestCase() { private val testUser1 = UserHandle.of(1)!! private val testUser2 = UserHandle.of(2)!! - private val testDispatcher = StandardTestDispatcher() - private val scope = TestScope(testDispatcher) - private val settings: FakeSettings = FakeSettings() + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val scope = kosmos.testScope + private val settings = kosmos.fakeSettings private val underTest: OneHandedModeRepository = OneHandedModeRepositoryImpl( diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/UserA11yQsShortcutsRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/UserA11yQsShortcutsRepositoryTest.kt index ce22e288e292..62f13f8e38e6 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/UserA11yQsShortcutsRepositoryTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/accessibility/data/repository/UserA11yQsShortcutsRepositoryTest.kt @@ -21,10 +21,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope +import com.android.systemui.testKosmos +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @@ -32,9 +33,10 @@ import org.junit.runner.RunWith @SmallTest @RunWith(AndroidJUnit4::class) class UserA11yQsShortcutsRepositoryTest : SysuiTestCase() { - private val secureSettings = FakeSettings() - private val testDispatcher = StandardTestDispatcher() - private val testScope = TestScope(testDispatcher) + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope + private val secureSettings = kosmos.fakeSettings private val underTest = UserA11yQsShortcutsRepository( diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalTutorialRepositoryImplTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalTutorialRepositoryImplTest.kt index c37b33e52fa6..ae1c496797c2 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalTutorialRepositoryImplTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/communal/data/repository/CommunalTutorialRepositoryImplTest.kt @@ -29,7 +29,7 @@ import com.android.systemui.log.logcatLogBuffer import com.android.systemui.log.table.TableLogBuffer import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.FakeUserRepository -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.test.runTest import org.junit.Before @@ -45,8 +45,7 @@ class CommunalTutorialRepositoryImplTest : SysuiTestCase() { private val kosmos = testKosmos() private val testScope = kosmos.testScope - - private lateinit var secureSettings: FakeSettings + private val secureSettings = kosmos.fakeSettings private lateinit var userRepository: FakeUserRepository private lateinit var underTest: CommunalTutorialRepositoryImpl @@ -55,7 +54,6 @@ class CommunalTutorialRepositoryImplTest : SysuiTestCase() { fun setUp() { MockitoAnnotations.initMocks(this) - secureSettings = FakeSettings() userRepository = FakeUserRepository() val listOfUserInfo = listOf(MAIN_USER_INFO) userRepository.setUserInfos(listOfUserInfo) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt index bbfaf6fa4ce6..6c3c7ef0162d 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/DoNotDisturbQuickAffordanceConfigTest.kt @@ -31,19 +31,19 @@ import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.coroutines.collectLastValue import com.android.systemui.keyguard.shared.quickaffordance.ActivationState +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.policy.ZenModeController +import com.android.systemui.testKosmos import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals @@ -63,27 +63,24 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidJUnit4::class) class DoNotDisturbQuickAffordanceConfigTest : SysuiTestCase() { + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope + private val settings = kosmos.fakeSettings + @Mock private lateinit var zenModeController: ZenModeController @Mock private lateinit var userTracker: UserTracker @Mock private lateinit var conditionUri: Uri @Mock private lateinit var enableZenModeDialog: EnableZenModeDialog @Captor private lateinit var spyZenMode: ArgumentCaptor<Int> @Captor private lateinit var spyConditionId: ArgumentCaptor<Uri?> - private lateinit var settings: FakeSettings private lateinit var underTest: DoNotDisturbQuickAffordanceConfig - private lateinit var testDispatcher: TestDispatcher - private lateinit var testScope: TestScope @Before fun setUp() { MockitoAnnotations.initMocks(this) - testDispatcher = StandardTestDispatcher() - testScope = TestScope(testDispatcher) - - settings = FakeSettings() - underTest = DoNotDisturbQuickAffordanceConfig( context, diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceLegacySettingSyncerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceLegacySettingSyncerTest.kt index 26fcb234843d..0145f1748b10 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceLegacySettingSyncerTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/quickaffordance/KeyguardQuickAffordanceLegacySettingSyncerTest.kt @@ -23,19 +23,19 @@ import android.provider.Settings import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.kosmos.unconfinedTestDispatcher +import com.android.systemui.kosmos.unconfinedTestScope import com.android.systemui.res.R import com.android.systemui.settings.FakeUserTracker import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots +import com.android.systemui.testKosmos import com.android.systemui.util.FakeSharedPreferences import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.unconfinedDispatcherFakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.TestDispatcher -import kotlinx.coroutines.test.TestScope -import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest import org.junit.Before @@ -51,14 +51,15 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidJUnit4::class) class KeyguardQuickAffordanceLegacySettingSyncerTest : SysuiTestCase() { + private val kosmos = testKosmos() + private val testDispatcher = kosmos.unconfinedTestDispatcher + private val testScope = kosmos.unconfinedTestScope + private val settings = kosmos.unconfinedDispatcherFakeSettings + @Mock private lateinit var sharedPrefs: FakeSharedPreferences private lateinit var underTest: KeyguardQuickAffordanceLegacySettingSyncer - - private lateinit var testScope: TestScope - private lateinit var testDispatcher: TestDispatcher private lateinit var selectionManager: KeyguardQuickAffordanceLocalUserSelectionManager - private lateinit var settings: FakeSettings @Before fun setUp() { @@ -73,8 +74,6 @@ class KeyguardQuickAffordanceLegacySettingSyncerTest : SysuiTestCase() { whenever(resources.getBoolean(R.bool.custom_lockscreen_shortcuts_enabled)).thenReturn(true) whenever(context.resources).thenReturn(resources) - testDispatcher = UnconfinedTestDispatcher() - testScope = TestScope(testDispatcher) selectionManager = KeyguardQuickAffordanceLocalUserSelectionManager( context = context, @@ -92,7 +91,6 @@ class KeyguardQuickAffordanceLegacySettingSyncerTest : SysuiTestCase() { userTracker = FakeUserTracker(), broadcastDispatcher = fakeBroadcastDispatcher, ) - settings = FakeSettings() settings.putInt(Settings.Secure.LOCKSCREEN_SHOW_CONTROLS, 0) settings.putInt(Settings.Secure.LOCKSCREEN_SHOW_WALLET, 0) settings.putInt(Settings.Secure.LOCK_SCREEN_SHOW_QR_CODE_SCANNER, 0) diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/repository/KeyguardQuickAffordanceRepositoryTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/repository/KeyguardQuickAffordanceRepositoryTest.kt index c85cd662dac6..1582e4776e15 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/repository/KeyguardQuickAffordanceRepositoryTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/data/repository/KeyguardQuickAffordanceRepositoryTest.kt @@ -31,20 +31,21 @@ import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanc import com.android.systemui.keyguard.data.quickaffordance.KeyguardQuickAffordanceRemoteUserSelectionManager import com.android.systemui.keyguard.shared.model.KeyguardQuickAffordancePickerRepresentation import com.android.systemui.keyguard.shared.model.KeyguardSlotPickerRepresentation +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.settings.FakeUserTracker import com.android.systemui.settings.UserFileManager import com.android.systemui.shared.customization.data.content.FakeCustomizationProviderClient import com.android.systemui.shared.keyguard.shared.model.KeyguardQuickAffordanceSlots +import com.android.systemui.testKosmos import com.android.systemui.util.FakeSharedPreferences import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import java.util.Locale import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest import org.junit.After import org.junit.Before @@ -58,6 +59,11 @@ import org.mockito.ArgumentMatchers.anyString @RunWith(AndroidJUnit4::class) class KeyguardQuickAffordanceRepositoryTest : SysuiTestCase() { + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope + private val settings = kosmos.fakeSettings + private lateinit var underTest: KeyguardQuickAffordanceRepository private lateinit var config1: FakeKeyguardQuickAffordanceConfig @@ -65,7 +71,6 @@ class KeyguardQuickAffordanceRepositoryTest : SysuiTestCase() { private lateinit var userTracker: FakeUserTracker private lateinit var client1: FakeCustomizationProviderClient private lateinit var client2: FakeCustomizationProviderClient - private lateinit var testScope: TestScope @Before fun setUp() { @@ -73,8 +78,6 @@ class KeyguardQuickAffordanceRepositoryTest : SysuiTestCase() { context.resources.configuration.setLayoutDirection(Locale.US) config1 = FakeKeyguardQuickAffordanceConfig(FakeCustomizationProviderClient.AFFORDANCE_1) config2 = FakeKeyguardQuickAffordanceConfig(FakeCustomizationProviderClient.AFFORDANCE_2) - val testDispatcher = StandardTestDispatcher() - testScope = TestScope(testDispatcher) userTracker = FakeUserTracker() val localUserSelectionManager = KeyguardQuickAffordanceLocalUserSelectionManager( @@ -128,7 +131,7 @@ class KeyguardQuickAffordanceRepositoryTest : SysuiTestCase() { KeyguardQuickAffordanceLegacySettingSyncer( scope = testScope.backgroundScope, backgroundDispatcher = testDispatcher, - secureSettings = FakeSettings(), + secureSettings = settings, selectionsManager = localUserSelectionManager, ), configs = setOf(config1, config2), diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt index ad07c1c1b88f..a8bb2b0aca56 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractorTest.kt @@ -61,7 +61,7 @@ import com.android.systemui.testKosmos import com.android.systemui.util.FakeSharedPreferences import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow @@ -80,6 +80,10 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidJUnit4::class) class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { + private val kosmos = testKosmos() + private val testScope = kosmos.testScope + private val settings = kosmos.fakeSettings + @Mock private lateinit var lockPatternUtils: LockPatternUtils @Mock private lateinit var keyguardStateController: KeyguardStateController @Mock private lateinit var userTracker: UserTracker @@ -90,11 +94,8 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { @Mock private lateinit var logger: KeyguardQuickAffordancesLogger @Mock private lateinit var metricsLogger: KeyguardQuickAffordancesMetricsLogger - private val kosmos = testKosmos() - private lateinit var underTest: KeyguardQuickAffordanceInteractor - private val testScope = kosmos.testScope private lateinit var repository: FakeKeyguardRepository private lateinit var homeControls: FakeKeyguardQuickAffordanceConfig private lateinit var quickAccessWallet: FakeKeyguardQuickAffordanceConfig @@ -170,7 +171,7 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() { KeyguardQuickAffordanceLegacySettingSyncer( scope = testScope.backgroundScope, backgroundDispatcher = kosmos.testDispatcher, - secureSettings = FakeSettings(), + secureSettings = settings, selectionsManager = localUserSelectionManager, ), configs = setOf(homeControls, quickAccessWallet, qrCodeScanner), diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/domain/autoaddable/AutoAddableSettingTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/domain/autoaddable/AutoAddableSettingTest.kt index d153e9d1d361..561902234990 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/domain/autoaddable/AutoAddableSettingTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/qs/pipeline/domain/autoaddable/AutoAddableSettingTest.kt @@ -21,14 +21,15 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope import com.android.systemui.qs.pipeline.domain.model.AutoAddSignal import com.android.systemui.qs.pipeline.domain.model.AutoAddTracking import com.android.systemui.qs.pipeline.shared.TileSpec -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.testKosmos +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith @@ -38,10 +39,11 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class AutoAddableSettingTest : SysuiTestCase() { - private val testDispatcher = StandardTestDispatcher() - private val testScope = TestScope(testDispatcher) + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope + private val secureSettings = kosmos.fakeSettings - private val secureSettings = FakeSettings() private val underTest = AutoAddableSetting( secureSettings, diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyboard/stickykeys/ui/viewmodel/StickyKeysIndicatorViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyboard/stickykeys/ui/viewmodel/StickyKeysIndicatorViewModelTest.kt index 9d9e5be62351..3ccb989dc65a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyboard/stickykeys/ui/viewmodel/StickyKeysIndicatorViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyboard/stickykeys/ui/viewmodel/StickyKeysIndicatorViewModelTest.kt @@ -34,14 +34,16 @@ import com.android.systemui.keyboard.stickykeys.shared.model.ModifierKey.CTRL import com.android.systemui.keyboard.stickykeys.shared.model.ModifierKey.META import com.android.systemui.keyboard.stickykeys.shared.model.ModifierKey.SHIFT import com.android.systemui.kosmos.Kosmos +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope +import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.android.systemui.util.settings.repository.UserAwareSecureSettingsRepositoryImpl import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest @@ -57,29 +59,28 @@ import org.mockito.Mockito.verifyZeroInteractions @RunWith(AndroidJUnit4::class) class StickyKeysIndicatorViewModelTest : SysuiTestCase() { - private val dispatcher = StandardTestDispatcher() - private val testScope = TestScope(dispatcher) + private val kosmos = testKosmos() + private val dispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope private lateinit var viewModel: StickyKeysIndicatorViewModel private val inputManager = mock<InputManager>() private val keyboardRepository = FakeKeyboardRepository() - private val secureSettings = FakeSettings() + private val secureSettings = kosmos.fakeSettings private val userRepository = Kosmos().fakeUserRepository private val captor = ArgumentCaptor.forClass(InputManager.StickyModifierStateListener::class.java) @Before fun setup() { - val settingsRepository = UserAwareSecureSettingsRepositoryImpl( - secureSettings, - userRepository, - dispatcher - ) - val stickyKeysRepository = StickyKeysRepositoryImpl( - inputManager, - dispatcher, - settingsRepository, - mock<StickyKeysLogger>() - ) + val settingsRepository = + UserAwareSecureSettingsRepositoryImpl(secureSettings, userRepository, dispatcher) + val stickyKeysRepository = + StickyKeysRepositoryImpl( + inputManager, + dispatcher, + settingsRepository, + mock<StickyKeysLogger>() + ) setStickyKeySetting(enabled = false) viewModel = StickyKeysIndicatorViewModel( @@ -182,16 +183,16 @@ class StickyKeysIndicatorViewModelTest : SysuiTestCase() { val stickyKeys by collectLastValue(viewModel.indicatorContent) setStickyKeysActive() - setStickyKeys(mapOf( - ALT to false, - META to false, - SHIFT to false)) + setStickyKeys(mapOf(ALT to false, META to false, SHIFT to false)) - assertThat(stickyKeys).isEqualTo(mapOf( - ALT to Locked(false), - META to Locked(false), - SHIFT to Locked(false), - )) + assertThat(stickyKeys) + .isEqualTo( + mapOf( + ALT to Locked(false), + META to Locked(false), + SHIFT to Locked(false), + ) + ) } } @@ -201,9 +202,7 @@ class StickyKeysIndicatorViewModelTest : SysuiTestCase() { val stickyKeys by collectLastValue(viewModel.indicatorContent) setStickyKeysActive() - setStickyKeys(mapOf( - ALT to false, - ALT to true)) + setStickyKeys(mapOf(ALT to false, ALT to true)) assertThat(stickyKeys).isEqualTo(mapOf(ALT to Locked(true))) } @@ -215,17 +214,23 @@ class StickyKeysIndicatorViewModelTest : SysuiTestCase() { val stickyKeys by collectLastValue(viewModel.indicatorContent) setStickyKeysActive() - setStickyKeys(mapOf( - META to false, - SHIFT to false, // shift is sticky but not locked - CTRL to false)) + setStickyKeys( + mapOf( + META to false, + SHIFT to false, // shift is sticky but not locked + CTRL to false + ) + ) val previousShiftIndex = stickyKeys?.toList()?.indexOf(SHIFT to Locked(false)) - setStickyKeys(mapOf( - SHIFT to false, - SHIFT to true, // shift is now locked - META to false, - CTRL to false)) + setStickyKeys( + mapOf( + SHIFT to false, + SHIFT to true, // shift is now locked + META to false, + CTRL to false + ) + ) assertThat(stickyKeys?.toList()?.indexOf(SHIFT to Locked(true))) .isEqualTo(previousShiftIndex) } @@ -247,17 +252,27 @@ class StickyKeysIndicatorViewModelTest : SysuiTestCase() { StickyModifierState() { private fun isOn(key: ModifierKey) = keys.any { it.key == key && !it.value } + private fun isLocked(key: ModifierKey) = keys.any { it.key == key && it.value } override fun isAltGrModifierLocked() = isLocked(ALT_GR) + override fun isAltGrModifierOn() = isOn(ALT_GR) + override fun isAltModifierLocked() = isLocked(ALT) + override fun isAltModifierOn() = isOn(ALT) + override fun isCtrlModifierLocked() = isLocked(CTRL) + override fun isCtrlModifierOn() = isOn(CTRL) + override fun isMetaModifierLocked() = isLocked(META) + override fun isMetaModifierOn() = isOn(META) + override fun isShiftModifierLocked() = isLocked(SHIFT) + override fun isShiftModifierOn() = isOn(SHIFT) } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt index 29cd9a270ed3..fa69fdd38b8e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/CustomizationProviderTest.kt @@ -50,6 +50,8 @@ import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAfforda import com.android.systemui.keyguard.ui.preview.KeyguardPreviewRenderer import com.android.systemui.keyguard.ui.preview.KeyguardPreviewRendererFactory import com.android.systemui.keyguard.ui.preview.KeyguardRemotePreviewManager +import com.android.systemui.kosmos.unconfinedTestDispatcher +import com.android.systemui.kosmos.unconfinedTestScope import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R import com.android.systemui.scene.domain.interactor.sceneInteractor @@ -64,12 +66,12 @@ import com.android.systemui.util.FakeSharedPreferences import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings +import com.android.systemui.util.settings.unconfinedDispatcherFakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.test.TestScope -import kotlinx.coroutines.test.UnconfinedTestDispatcher +import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.After import org.junit.Before @@ -87,6 +89,11 @@ import org.mockito.MockitoAnnotations @TestableLooper.RunWithLooper(setAsMainLooper = true) class CustomizationProviderTest : SysuiTestCase() { + private val kosmos = testKosmos() + private val testDispatcher = kosmos.unconfinedTestDispatcher + private val testScope = kosmos.unconfinedTestScope + private val fakeSettings = kosmos.unconfinedDispatcherFakeSettings + @Mock private lateinit var lockPatternUtils: LockPatternUtils @Mock private lateinit var keyguardStateController: KeyguardStateController @Mock private lateinit var userTracker: UserTracker @@ -104,9 +111,6 @@ class CustomizationProviderTest : SysuiTestCase() { private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository private lateinit var underTest: CustomizationProvider - private lateinit var testScope: TestScope - - private val kosmos = testKosmos() @Before fun setUp() { @@ -120,8 +124,6 @@ class CustomizationProviderTest : SysuiTestCase() { biometricSettingsRepository = FakeBiometricSettingsRepository() underTest = CustomizationProvider() - val testDispatcher = UnconfinedTestDispatcher() - testScope = TestScope(testDispatcher) val localUserSelectionManager = KeyguardQuickAffordanceLocalUserSelectionManager( context = context, @@ -170,7 +172,7 @@ class CustomizationProviderTest : SysuiTestCase() { KeyguardQuickAffordanceLegacySettingSyncer( scope = testScope.backgroundScope, backgroundDispatcher = testDispatcher, - secureSettings = FakeSettings(), + secureSettings = fakeSettings, selectionsManager = localUserSelectionManager, ), dumpManager = mock(), @@ -216,7 +218,7 @@ class CustomizationProviderTest : SysuiTestCase() { mainDispatcher = testDispatcher, backgroundHandler = backgroundHandler, ) - underTest.mainDispatcher = UnconfinedTestDispatcher() + underTest.mainDispatcher = testDispatcher underTest.attachInfoForTesting( context, @@ -319,6 +321,7 @@ class CustomizationProviderTest : SysuiTestCase() { ), ) ) + runCurrent() } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardClockRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardClockRepositoryTest.kt index af5187d03261..1e9db6466de6 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardClockRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardClockRepositoryTest.kt @@ -25,15 +25,14 @@ import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.FakeFeatureFlagsClassic import com.android.systemui.flags.Flags import com.android.systemui.keyguard.shared.model.ClockSizeSetting +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.shared.clocks.ClockRegistry -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.testKosmos +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth import kotlin.test.Test -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestCoroutineScheduler -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.runner.RunWith @@ -44,12 +43,12 @@ import org.mockito.MockitoAnnotations @SmallTest class KeyguardClockRepositoryTest : SysuiTestCase() { - private lateinit var scheduler: TestCoroutineScheduler - private lateinit var dispatcher: CoroutineDispatcher - private lateinit var scope: TestScope + private val kosmos = testKosmos() + private val dispatcher = kosmos.testDispatcher + private val scope = kosmos.testScope + private val fakeSettings = kosmos.fakeSettings private lateinit var underTest: KeyguardClockRepository - private lateinit var fakeSettings: FakeSettings @Mock private lateinit var clockRegistry: ClockRegistry @Mock private lateinit var clockEventController: ClockEventController private val fakeFeatureFlagsClassic = FakeFeatureFlagsClassic() @@ -57,10 +56,6 @@ class KeyguardClockRepositoryTest : SysuiTestCase() { @Before fun setup() { MockitoAnnotations.initMocks(this) - fakeSettings = FakeSettings() - scheduler = TestCoroutineScheduler() - dispatcher = StandardTestDispatcher(scheduler) - scope = TestScope(dispatcher) underTest = KeyguardClockRepositoryImpl( fakeSettings, diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardSmartspaceRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardSmartspaceRepositoryImplTest.kt index 8b8a6cbf6148..5a597fe8e920 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardSmartspaceRepositoryImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/data/repository/KeyguardSmartspaceRepositoryImplTest.kt @@ -21,14 +21,12 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue +import com.android.systemui.kosmos.testScope import com.android.systemui.settings.FakeUserTracker -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.testKosmos +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth import kotlin.test.Test -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestCoroutineScheduler -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.runner.RunWith @@ -38,23 +36,18 @@ import org.mockito.MockitoAnnotations @SmallTest class KeyguardSmartspaceRepositoryImplTest : SysuiTestCase() { - private lateinit var scheduler: TestCoroutineScheduler - private lateinit var dispatcher: CoroutineDispatcher - private lateinit var scope: TestScope + private val kosmos = testKosmos() + private val scope = kosmos.testScope + private val fakeSettings = kosmos.fakeSettings private lateinit var underTest: KeyguardSmartspaceRepository - private lateinit var fakeSettings: FakeSettings private lateinit var fakeUserTracker: FakeUserTracker @Before fun setup() { MockitoAnnotations.initMocks(this) - fakeSettings = FakeSettings() fakeUserTracker = FakeUserTracker() fakeSettings.userId = fakeUserTracker.userId - scheduler = TestCoroutineScheduler() - dispatcher = StandardTestDispatcher(scheduler) - scope = TestScope(dispatcher) underTest = KeyguardSmartspaceRepositoryImpl( context = context, diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt index d13419eed281..1929cd172750 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardBottomAreaViewModelTest.kt @@ -54,6 +54,8 @@ import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInterac import com.android.systemui.keyguard.shared.quickaffordance.ActivationState import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancePosition import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordancesMetricsLogger +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R import com.android.systemui.scene.domain.interactor.sceneInteractor @@ -69,13 +71,11 @@ import com.android.systemui.util.FakeSharedPreferences import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import kotlin.math.max import kotlin.math.min import kotlinx.coroutines.flow.map -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test @@ -93,6 +93,11 @@ import platform.test.runner.parameterized.Parameters @RunWith(ParameterizedAndroidJunit4::class) class KeyguardBottomAreaViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope + private val settings = kosmos.fakeSettings + @Mock private lateinit var expandable: Expandable @Mock private lateinit var burnInHelperWrapper: BurnInHelperWrapper @Mock private lateinit var lockPatternUtils: LockPatternUtils @@ -108,7 +113,6 @@ class KeyguardBottomAreaViewModelTest(flags: FlagsParameterization) : SysuiTestC private lateinit var underTest: KeyguardBottomAreaViewModel - private lateinit var testScope: TestScope private lateinit var repository: FakeKeyguardRepository private lateinit var homeControlsQuickAffordanceConfig: FakeKeyguardQuickAffordanceConfig private lateinit var quickAccessWalletAffordanceConfig: FakeKeyguardQuickAffordanceConfig @@ -116,8 +120,6 @@ class KeyguardBottomAreaViewModelTest(flags: FlagsParameterization) : SysuiTestC private lateinit var dockManager: DockManagerFake private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository - private val kosmos = testKosmos() - init { mSetFlagsRule.setFlagsParameterization(flags) } @@ -162,8 +164,6 @@ class KeyguardBottomAreaViewModelTest(flags: FlagsParameterization) : SysuiTestC whenever(userTracker.userHandle).thenReturn(mock()) whenever(lockPatternUtils.getStrongAuthForUser(anyInt())) .thenReturn(LockPatternUtils.StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED) - val testDispatcher = StandardTestDispatcher() - testScope = TestScope(testDispatcher) val localUserSelectionManager = KeyguardQuickAffordanceLocalUserSelectionManager( context = context, @@ -199,7 +199,7 @@ class KeyguardBottomAreaViewModelTest(flags: FlagsParameterization) : SysuiTestC KeyguardQuickAffordanceLegacySettingSyncer( scope = testScope.backgroundScope, backgroundDispatcher = testDispatcher, - secureSettings = FakeSettings(), + secureSettings = settings, selectionsManager = localUserSelectionManager, ), configs = diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardQuickAffordancesCombinedViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardQuickAffordancesCombinedViewModelTest.kt index 07f7557d965a..7de088dbcdca 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardQuickAffordancesCombinedViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardQuickAffordancesCombinedViewModelTest.kt @@ -72,7 +72,7 @@ import com.android.systemui.testKosmos import com.android.systemui.util.FakeSharedPreferences import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth import kotlin.math.min import kotlin.test.assertEquals @@ -94,6 +94,10 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidJUnit4::class) class KeyguardQuickAffordancesCombinedViewModelTest : SysuiTestCase() { + private val kosmos = testKosmos() + private val testScope = kosmos.testScope + private val settings = kosmos.fakeSettings + @Mock private lateinit var activityStarter: ActivityStarter @Mock private lateinit var devicePolicyManager: DevicePolicyManager @Mock private lateinit var expandable: Expandable @@ -151,11 +155,8 @@ class KeyguardQuickAffordancesCombinedViewModelTest : SysuiTestCase() { private lateinit var glanceableHubToLockscreenTransitionViewModel: GlanceableHubToLockscreenTransitionViewModel - private val kosmos = testKosmos() - private lateinit var underTest: KeyguardQuickAffordancesCombinedViewModel - private val testScope = kosmos.testScope private lateinit var repository: FakeKeyguardRepository private lateinit var homeControlsQuickAffordanceConfig: FakeKeyguardQuickAffordanceConfig private lateinit var quickAccessWalletAffordanceConfig: FakeKeyguardQuickAffordanceConfig @@ -244,7 +245,7 @@ class KeyguardQuickAffordancesCombinedViewModelTest : SysuiTestCase() { KeyguardQuickAffordanceLegacySettingSyncer( scope = testScope.backgroundScope, backgroundDispatcher = kosmos.testDispatcher, - secureSettings = FakeSettings(), + secureSettings = settings, selectionsManager = localUserSelectionManager, ), configs = diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessorTest.kt index 3459645ad034..f4c2b47d6653 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/domain/pipeline/MediaDataProcessorTest.kt @@ -84,7 +84,7 @@ import com.android.systemui.statusbar.SbnBuilder import com.android.systemui.statusbar.notificationLockscreenUserManager import com.android.systemui.testKosmos import com.android.systemui.util.concurrency.FakeExecutor -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -141,6 +141,11 @@ private fun <T> anyObject(): T { @RunWith(ParameterizedAndroidJunit4::class) @EnableSceneContainer class MediaDataProcessorTest(flags: FlagsParameterization) : SysuiTestCase() { + private val kosmos = testKosmos() + private val testDispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope + private val settings = kosmos.fakeSettings + @JvmField @Rule val mockito = MockitoJUnit.rule() @Mock lateinit var controller: MediaController @Mock lateinit var transportControls: MediaController.TransportControls @@ -193,9 +198,6 @@ class MediaDataProcessorTest(flags: FlagsParameterization) : SysuiTestCase() { mSetFlagsRule.setFlagsParameterization(flags) } - private val kosmos = testKosmos() - private val testDispatcher = kosmos.testDispatcher - private val testScope = kosmos.testScope private val fakeFeatureFlags = kosmos.fakeFeatureFlagsClassic private val activityStarter = kosmos.activityStarter private val mediaControllerFactory = kosmos.fakeMediaControllerFactory @@ -203,7 +205,6 @@ class MediaDataProcessorTest(flags: FlagsParameterization) : SysuiTestCase() { private val mediaFilterRepository = kosmos.mediaFilterRepository private val mediaDataFilter = kosmos.mediaDataFilter - private val settings = FakeSettings() private val instanceIdSequence = InstanceIdSequenceFake(1 shl 20) private val originalSmartspaceSetting = diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt index 46c66e03fd9f..03667cfb8a3b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaCarouselControllerTest.kt @@ -48,6 +48,7 @@ import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticati import com.android.systemui.kosmos.applicationCoroutineScope import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope +import com.android.systemui.kosmos.unconfinedTestDispatcher import com.android.systemui.media.controls.MediaTestUtils import com.android.systemui.media.controls.domain.pipeline.EMPTY_SMARTSPACE_MEDIA_DATA import com.android.systemui.media.controls.domain.pipeline.MediaDataManager @@ -72,9 +73,8 @@ import com.android.systemui.statusbar.policy.ConfigurationController import com.android.systemui.testKosmos import com.android.systemui.util.concurrency.DelayableExecutor import com.android.systemui.util.concurrency.FakeExecutor -import com.android.systemui.util.settings.FakeSettings import com.android.systemui.util.settings.GlobalSettings -import com.android.systemui.util.settings.SecureSettings +import com.android.systemui.util.settings.unconfinedDispatcherFakeSettings import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import java.util.Locale @@ -84,9 +84,7 @@ import junit.framework.Assert.assertFalse import junit.framework.Assert.assertTrue import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.test.TestDispatcher import kotlinx.coroutines.test.TestScope -import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.After @@ -120,7 +118,9 @@ private const val PLAYING_LOCAL = "playing local" @TestableLooper.RunWithLooper(setAsMainLooper = true) @RunWith(AndroidJUnit4::class) class MediaCarouselControllerTest : SysuiTestCase() { - val kosmos = testKosmos() + private val kosmos = testKosmos() + private val testDispatcher = kosmos.unconfinedTestDispatcher + private val secureSettings = kosmos.unconfinedDispatcherFakeSettings @Mock lateinit var mediaControlPanelFactory: Provider<MediaControlPanel> @Mock lateinit var mediaViewControllerFactory: Provider<MediaViewController> @@ -142,7 +142,6 @@ class MediaCarouselControllerTest : SysuiTestCase() { @Mock lateinit var mediaFlags: MediaFlags @Mock lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor @Mock lateinit var globalSettings: GlobalSettings - private lateinit var secureSettings: SecureSettings private val transitionRepository = kosmos.fakeKeyguardTransitionRepository @Captor lateinit var listener: ArgumentCaptor<MediaDataManager.Listener> @Captor @@ -154,7 +153,6 @@ class MediaCarouselControllerTest : SysuiTestCase() { private val clock = FakeSystemClock() private lateinit var bgExecutor: FakeExecutor - private lateinit var testDispatcher: TestDispatcher private lateinit var mediaCarouselController: MediaCarouselController private var originalResumeSetting = @@ -163,10 +161,8 @@ class MediaCarouselControllerTest : SysuiTestCase() { @Before fun setup() { MockitoAnnotations.initMocks(this) - secureSettings = FakeSettings() context.resources.configuration.setLocales(LocaleList(Locale.US, Locale.UK)) bgExecutor = FakeExecutor(clock) - testDispatcher = UnconfinedTestDispatcher() mediaCarouselController = MediaCarouselController( applicationScope = kosmos.applicationCoroutineScope, diff --git a/packages/SystemUI/tests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt index 37a73cf62929..c235954dffa4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/user/data/repository/UserRepositoryImplTest.kt @@ -24,21 +24,21 @@ import android.provider.Settings import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase +import com.android.systemui.kosmos.unconfinedTestDispatcher +import com.android.systemui.kosmos.unconfinedTestScope import com.android.systemui.settings.FakeUserTracker +import com.android.systemui.testKosmos import com.android.systemui.user.data.model.SelectedUserModel import com.android.systemui.user.data.model.SelectionStatus import com.android.systemui.user.data.model.UserSwitcherSettingsModel -import com.android.systemui.util.settings.FakeGlobalSettings +import com.android.systemui.util.settings.unconfinedDispatcherFakeGlobalSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.Job -import kotlinx.coroutines.cancel import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.test.TestCoroutineScope +import kotlinx.coroutines.test.runTest import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @@ -52,143 +52,153 @@ import org.mockito.MockitoAnnotations @RunWith(AndroidJUnit4::class) class UserRepositoryImplTest : SysuiTestCase() { + private val kosmos = testKosmos() + private val testDispatcher = kosmos.unconfinedTestDispatcher + private val testScope = kosmos.unconfinedTestScope + private val globalSettings = kosmos.unconfinedDispatcherFakeGlobalSettings + @Mock private lateinit var manager: UserManager private lateinit var underTest: UserRepositoryImpl - private lateinit var globalSettings: FakeGlobalSettings private lateinit var tracker: FakeUserTracker @Before fun setUp() { MockitoAnnotations.initMocks(this) - - globalSettings = FakeGlobalSettings() tracker = FakeUserTracker() } @Test - fun userSwitcherSettings() = runSelfCancelingTest { - setUpGlobalSettings( - isSimpleUserSwitcher = true, - isAddUsersFromLockscreen = true, - isUserSwitcherEnabled = true, - ) - underTest = create(this) - - var value: UserSwitcherSettingsModel? = null - underTest.userSwitcherSettings.onEach { value = it }.launchIn(this) - - assertUserSwitcherSettings( - model = value, - expectedSimpleUserSwitcher = true, - expectedAddUsersFromLockscreen = true, - expectedUserSwitcherEnabled = true, - ) - - setUpGlobalSettings( - isSimpleUserSwitcher = false, - isAddUsersFromLockscreen = true, - isUserSwitcherEnabled = true, - ) - assertUserSwitcherSettings( - model = value, - expectedSimpleUserSwitcher = false, - expectedAddUsersFromLockscreen = true, - expectedUserSwitcherEnabled = true, - ) - } - - @Test - fun userSwitcherSettings_isUserSwitcherEnabled_notInitialized() = runSelfCancelingTest { - underTest = create(this) - - var value: UserSwitcherSettingsModel? = null - underTest.userSwitcherSettings.onEach { value = it }.launchIn(this) - - assertUserSwitcherSettings( - model = value, - expectedSimpleUserSwitcher = false, - expectedAddUsersFromLockscreen = false, - expectedUserSwitcherEnabled = - context.resources.getBoolean( - com.android.internal.R.bool.config_showUserSwitcherByDefault - ), - ) - } - - @Test - fun refreshUsers() = runSelfCancelingTest { - val mainUserId = 10 - val mainUser = mock(UserHandle::class.java) - whenever(manager.mainUser).thenReturn(mainUser) - whenever(mainUser.identifier).thenReturn(mainUserId) - - underTest = create(this) - val initialExpectedValue = - setUpUsers( - count = 3, - selectedIndex = 0, + fun userSwitcherSettings() = + testScope.runTest { + setUpGlobalSettings( + isSimpleUserSwitcher = true, + isAddUsersFromLockscreen = true, + isUserSwitcherEnabled = true, ) - var userInfos: List<UserInfo>? = null - var selectedUserInfo: UserInfo? = null - underTest.userInfos.onEach { userInfos = it }.launchIn(this) - underTest.selectedUserInfo.onEach { selectedUserInfo = it }.launchIn(this) - - underTest.refreshUsers() - assertThat(userInfos).isEqualTo(initialExpectedValue) - assertThat(selectedUserInfo).isEqualTo(initialExpectedValue[0]) - assertThat(underTest.lastSelectedNonGuestUserId).isEqualTo(selectedUserInfo?.id) - - val secondExpectedValue = - setUpUsers( - count = 4, - selectedIndex = 1, + underTest = create(testScope.backgroundScope) + var value: UserSwitcherSettingsModel? = null + val job = underTest.userSwitcherSettings.onEach { value = it }.launchIn(this) + + assertUserSwitcherSettings( + model = value, + expectedSimpleUserSwitcher = true, + expectedAddUsersFromLockscreen = true, + expectedUserSwitcherEnabled = true, ) - underTest.refreshUsers() - assertThat(userInfos).isEqualTo(secondExpectedValue) - assertThat(selectedUserInfo).isEqualTo(secondExpectedValue[1]) - assertThat(underTest.lastSelectedNonGuestUserId).isEqualTo(selectedUserInfo?.id) - val selectedNonGuestUserId = selectedUserInfo?.id - val thirdExpectedValue = - setUpUsers( - count = 2, - isLastGuestUser = true, - selectedIndex = 1, + setUpGlobalSettings( + isSimpleUserSwitcher = false, + isAddUsersFromLockscreen = true, + isUserSwitcherEnabled = true, ) - underTest.refreshUsers() - assertThat(userInfos).isEqualTo(thirdExpectedValue) - assertThat(selectedUserInfo).isEqualTo(thirdExpectedValue[1]) - assertThat(selectedUserInfo?.isGuest).isTrue() - assertThat(underTest.lastSelectedNonGuestUserId).isEqualTo(selectedNonGuestUserId) - assertThat(underTest.mainUserId).isEqualTo(mainUserId) - } + assertUserSwitcherSettings( + model = value, + expectedSimpleUserSwitcher = false, + expectedAddUsersFromLockscreen = true, + expectedUserSwitcherEnabled = true, + ) + job.cancel() + } @Test - fun refreshUsers_sortsByCreationTime_guestUserLast() = runSelfCancelingTest { - underTest = create(this) - val unsortedUsers = - setUpUsers( - count = 3, - selectedIndex = 0, - isLastGuestUser = true, + fun userSwitcherSettings_isUserSwitcherEnabled_notInitialized() = + testScope.runTest { + underTest = create(testScope.backgroundScope) + + var value: UserSwitcherSettingsModel? = null + val job = underTest.userSwitcherSettings.onEach { value = it }.launchIn(this) + + assertUserSwitcherSettings( + model = value, + expectedSimpleUserSwitcher = false, + expectedAddUsersFromLockscreen = false, + expectedUserSwitcherEnabled = + context.resources.getBoolean( + com.android.internal.R.bool.config_showUserSwitcherByDefault + ), ) - unsortedUsers[0].creationTime = 999 - unsortedUsers[1].creationTime = 900 - unsortedUsers[2].creationTime = 950 - val expectedUsers = - listOf( - unsortedUsers[1], - unsortedUsers[0], - unsortedUsers[2], // last because this is the guest - ) - var userInfos: List<UserInfo>? = null - underTest.userInfos.onEach { userInfos = it }.launchIn(this) + job.cancel() + } - underTest.refreshUsers() - assertThat(userInfos).isEqualTo(expectedUsers) - } + @Test + fun refreshUsers() = + testScope.runTest { + val mainUserId = 10 + val mainUser = mock(UserHandle::class.java) + whenever(manager.mainUser).thenReturn(mainUser) + whenever(mainUser.identifier).thenReturn(mainUserId) + + underTest = create(testScope.backgroundScope) + val initialExpectedValue = + setUpUsers( + count = 3, + selectedIndex = 0, + ) + var userInfos: List<UserInfo>? = null + var selectedUserInfo: UserInfo? = null + val job1 = underTest.userInfos.onEach { userInfos = it }.launchIn(this) + val job2 = underTest.selectedUserInfo.onEach { selectedUserInfo = it }.launchIn(this) + + underTest.refreshUsers() + assertThat(userInfos).isEqualTo(initialExpectedValue) + assertThat(selectedUserInfo).isEqualTo(initialExpectedValue[0]) + assertThat(underTest.lastSelectedNonGuestUserId).isEqualTo(selectedUserInfo?.id) + + val secondExpectedValue = + setUpUsers( + count = 4, + selectedIndex = 1, + ) + underTest.refreshUsers() + assertThat(userInfos).isEqualTo(secondExpectedValue) + assertThat(selectedUserInfo).isEqualTo(secondExpectedValue[1]) + assertThat(underTest.lastSelectedNonGuestUserId).isEqualTo(selectedUserInfo?.id) + + val selectedNonGuestUserId = selectedUserInfo?.id + val thirdExpectedValue = + setUpUsers( + count = 2, + isLastGuestUser = true, + selectedIndex = 1, + ) + underTest.refreshUsers() + assertThat(userInfos).isEqualTo(thirdExpectedValue) + assertThat(selectedUserInfo).isEqualTo(thirdExpectedValue[1]) + assertThat(selectedUserInfo?.isGuest).isTrue() + assertThat(underTest.lastSelectedNonGuestUserId).isEqualTo(selectedNonGuestUserId) + assertThat(underTest.mainUserId).isEqualTo(mainUserId) + job1.cancel() + job2.cancel() + } + + @Test + fun refreshUsers_sortsByCreationTime_guestUserLast() = + testScope.runTest { + underTest = create(testScope.backgroundScope) + val unsortedUsers = + setUpUsers( + count = 3, + selectedIndex = 0, + isLastGuestUser = true, + ) + unsortedUsers[0].creationTime = 999 + unsortedUsers[1].creationTime = 900 + unsortedUsers[2].creationTime = 950 + val expectedUsers = + listOf( + unsortedUsers[1], + unsortedUsers[0], + unsortedUsers[2], // last because this is the guest + ) + var userInfos: List<UserInfo>? = null + val job = underTest.userInfos.onEach { userInfos = it }.launchIn(this) + + underTest.refreshUsers() + assertThat(userInfos).isEqualTo(expectedUsers) + job.cancel() + } private fun setUpUsers( count: Int, @@ -206,58 +216,68 @@ class UserRepositoryImplTest : SysuiTestCase() { tracker.set(userInfos, selectedIndex) return userInfos } + @Test - fun userTrackerCallback_updatesSelectedUserInfo() = runSelfCancelingTest { - underTest = create(this) - var selectedUserInfo: UserInfo? = null - underTest.selectedUserInfo.onEach { selectedUserInfo = it }.launchIn(this) - setUpUsers( - count = 2, - selectedIndex = 0, - ) - tracker.onProfileChanged() - assertThat(selectedUserInfo?.id).isEqualTo(0) - setUpUsers( - count = 2, - selectedIndex = 1, - ) - tracker.onProfileChanged() - assertThat(selectedUserInfo?.id).isEqualTo(1) - } + fun userTrackerCallback_updatesSelectedUserInfo() = + testScope.runTest { + underTest = create(testScope.backgroundScope) + var selectedUserInfo: UserInfo? = null + val job = underTest.selectedUserInfo.onEach { selectedUserInfo = it }.launchIn(this) + + setUpUsers( + count = 2, + selectedIndex = 0, + ) + tracker.onProfileChanged() + assertThat(selectedUserInfo?.id).isEqualTo(0) + setUpUsers( + count = 2, + selectedIndex = 1, + ) + tracker.onProfileChanged() + assertThat(selectedUserInfo?.id).isEqualTo(1) + job.cancel() + } @Test - fun userTrackerCallback_updatesSelectionStatus() = runSelfCancelingTest { - underTest = create(this) - var selectedUser: SelectedUserModel? = null - underTest.selectedUser.onEach { selectedUser = it }.launchIn(this) - setUpUsers(count = 2, selectedIndex = 1) + fun userTrackerCallback_updatesSelectionStatus() = + testScope.runTest { + underTest = create(testScope.backgroundScope) + var selectedUser: SelectedUserModel? = null + val job = underTest.selectedUser.onEach { selectedUser = it }.launchIn(this) - // WHEN the user is changing - tracker.onUserChanging(userId = 1) + setUpUsers(count = 2, selectedIndex = 1) - // THEN the selection status is IN_PROGRESS - assertThat(selectedUser!!.selectionStatus).isEqualTo(SelectionStatus.SELECTION_IN_PROGRESS) + // WHEN the user is changing + tracker.onUserChanging(userId = 1) - // WHEN the user has finished changing - tracker.onUserChanged(userId = 1) + // THEN the selection status is IN_PROGRESS + assertThat(selectedUser!!.selectionStatus) + .isEqualTo(SelectionStatus.SELECTION_IN_PROGRESS) - // THEN the selection status is COMPLETE - assertThat(selectedUser!!.selectionStatus).isEqualTo(SelectionStatus.SELECTION_COMPLETE) + // WHEN the user has finished changing + tracker.onUserChanged(userId = 1) - tracker.onProfileChanged() - assertThat(selectedUser!!.selectionStatus).isEqualTo(SelectionStatus.SELECTION_COMPLETE) + // THEN the selection status is COMPLETE + assertThat(selectedUser!!.selectionStatus).isEqualTo(SelectionStatus.SELECTION_COMPLETE) - setUpUsers(count = 2, selectedIndex = 0) + tracker.onProfileChanged() + assertThat(selectedUser!!.selectionStatus).isEqualTo(SelectionStatus.SELECTION_COMPLETE) - tracker.onUserChanging(userId = 0) - assertThat(selectedUser!!.selectionStatus).isEqualTo(SelectionStatus.SELECTION_IN_PROGRESS) + setUpUsers(count = 2, selectedIndex = 0) - // WHEN a profile change occurs while a user is changing - tracker.onProfileChanged() + tracker.onUserChanging(userId = 0) + assertThat(selectedUser!!.selectionStatus) + .isEqualTo(SelectionStatus.SELECTION_IN_PROGRESS) - // THEN the selection status remains as IN_PROGRESS - assertThat(selectedUser!!.selectionStatus).isEqualTo(SelectionStatus.SELECTION_IN_PROGRESS) - } + // WHEN a profile change occurs while a user is changing + tracker.onProfileChanged() + + // THEN the selection status remains as IN_PROGRESS + assertThat(selectedUser!!.selectionStatus) + .isEqualTo(SelectionStatus.SELECTION_IN_PROGRESS) + job.cancel() + } private fun createUserInfo( id: Int, @@ -308,26 +328,13 @@ class UserRepositoryImplTest : SysuiTestCase() { assertThat(model.isUserSwitcherEnabled).isEqualTo(expectedUserSwitcherEnabled) } - /** - * Executes the given block of execution within the scope of a dedicated [CoroutineScope] which - * is then automatically canceled and cleaned-up. - */ - private fun runSelfCancelingTest( - block: suspend CoroutineScope.() -> Unit, - ) = - runBlocking(Dispatchers.Main.immediate) { - val scope = CoroutineScope(coroutineContext + Job()) - block(scope) - scope.cancel() - } - - private fun create(scope: CoroutineScope = TestCoroutineScope()): UserRepositoryImpl { + private fun create(scope: CoroutineScope): UserRepositoryImpl { return UserRepositoryImpl( appContext = context, manager = manager, applicationScope = scope, - mainDispatcher = IMMEDIATE, - backgroundDispatcher = IMMEDIATE, + mainDispatcher = testDispatcher, + backgroundDispatcher = testDispatcher, globalSettings = globalSettings, tracker = tracker, ) diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/settings/repository/UserAwareSecureSettingsRepositoryTest.kt b/packages/SystemUI/tests/src/com/android/systemui/util/settings/repository/UserAwareSecureSettingsRepositoryTest.kt index 88b2630bd78f..a0cfab4d2160 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/settings/repository/UserAwareSecureSettingsRepositoryTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/util/settings/repository/UserAwareSecureSettingsRepositoryTest.kt @@ -23,12 +23,13 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues import com.android.systemui.kosmos.Kosmos +import com.android.systemui.kosmos.testDispatcher +import com.android.systemui.kosmos.testScope +import com.android.systemui.testKosmos import com.android.systemui.user.data.repository.fakeUserRepository -import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.settings.fakeSettings import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.ExperimentalCoroutinesApi -import kotlinx.coroutines.test.StandardTestDispatcher -import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Before @@ -40,9 +41,10 @@ import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class UserAwareSecureSettingsRepositoryTest : SysuiTestCase() { - private val dispatcher = StandardTestDispatcher() - private val testScope = TestScope(dispatcher) - private val secureSettings = FakeSettings() + private val kosmos = testKosmos() + private val dispatcher = kosmos.testDispatcher + private val testScope = kosmos.testScope + private val secureSettings = kosmos.fakeSettings private val userRepository = Kosmos().fakeUserRepository private lateinit var repository: UserAwareSecureSettingsRepository |