Loading packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt +22 −6 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ import android.app.smartspace.SmartspaceTarget import android.appwidget.AppWidgetProviderInfo import android.content.pm.UserInfo import android.os.UserHandle import android.platform.test.flag.junit.FlagsParameterization import android.provider.Settings import android.widget.RemoteViews import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.Flags.FLAG_COMMUNAL_HUB import com.android.systemui.SysuiTestCase Loading @@ -41,6 +41,7 @@ import com.android.systemui.communal.ui.viewmodel.CommunalViewModel.Companion.PO import com.android.systemui.coroutines.collectLastValue import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.flags.Flags.COMMUNAL_SERVICE_ENABLED import com.android.systemui.flags.andSceneContainer import com.android.systemui.flags.fakeFeatureFlagsClassic import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository Loading @@ -50,8 +51,9 @@ import com.android.systemui.log.logcatLogBuffer import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager import com.android.systemui.media.controls.ui.view.MediaHost import com.android.systemui.settings.fakeUserTracker import com.android.systemui.shade.data.repository.fakeShadeRepository import com.android.systemui.shade.ShadeTestUtil import com.android.systemui.shade.domain.interactor.shadeInteractor import com.android.systemui.shade.shadeTestUtil import com.android.systemui.smartspace.data.repository.FakeSmartspaceRepository import com.android.systemui.smartspace.data.repository.fakeSmartspaceRepository import com.android.systemui.testKosmos Loading @@ -70,11 +72,13 @@ import org.mockito.Mock import org.mockito.Mockito import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters @OptIn(ExperimentalCoroutinesApi::class) @SmallTest @RunWith(AndroidJUnit4::class) class CommunalViewModelTest : SysuiTestCase() { @RunWith(ParameterizedAndroidJunit4::class) class CommunalViewModelTest(flags: FlagsParameterization?) : SysuiTestCase() { @Mock private lateinit var mediaHost: MediaHost @Mock private lateinit var user: UserInfo @Mock private lateinit var providerInfo: AppWidgetProviderInfo Loading @@ -88,9 +92,14 @@ class CommunalViewModelTest : SysuiTestCase() { private lateinit var smartspaceRepository: FakeSmartspaceRepository private lateinit var mediaRepository: FakeCommunalMediaRepository private lateinit var userRepository: FakeUserRepository private lateinit var shadeTestUtil: ShadeTestUtil private lateinit var underTest: CommunalViewModel init { mSetFlagsRule.setFlagsParameterization(flags!!) } @Before fun setUp() { MockitoAnnotations.initMocks(this) Loading @@ -101,6 +110,7 @@ class CommunalViewModelTest : SysuiTestCase() { smartspaceRepository = kosmos.fakeSmartspaceRepository mediaRepository = kosmos.fakeCommunalMediaRepository userRepository = kosmos.fakeUserRepository shadeTestUtil = kosmos.shadeTestUtil kosmos.fakeFeatureFlagsClassic.set(COMMUNAL_SERVICE_ENABLED, true) mSetFlagsRule.enableFlags(FLAG_COMMUNAL_HUB) Loading Loading @@ -274,7 +284,7 @@ class CommunalViewModelTest : SysuiTestCase() { testScope.runTest { // On keyguard without any shade expansion. kosmos.fakeKeyguardRepository.setStatusBarState(StatusBarState.KEYGUARD) kosmos.fakeShadeRepository.setLockscreenShadeExpansion(0f) shadeTestUtil.setLockscreenShadeExpansion(0f) runCurrent() assertThat(underTest.canChangeScene()).isTrue() } Loading @@ -284,7 +294,7 @@ class CommunalViewModelTest : SysuiTestCase() { testScope.runTest { // On keyguard with shade fully expanded. kosmos.fakeKeyguardRepository.setStatusBarState(StatusBarState.KEYGUARD) kosmos.fakeShadeRepository.setLockscreenShadeExpansion(1f) shadeTestUtil.setLockscreenShadeExpansion(1f) runCurrent() assertThat(underTest.canChangeScene()).isFalse() } Loading @@ -297,5 +307,11 @@ class CommunalViewModelTest : SysuiTestCase() { private companion object { val MAIN_USER_INFO = UserInfo(0, "primary", UserInfo.FLAG_MAIN) @JvmStatic @Parameters(name = "{0}") fun getParams(): List<FlagsParameterization> { return FlagsParameterization.allCombinationsOf().andSceneContainer() } } } packages/SystemUI/tests/src/com/android/systemui/shade/GlanceableHubContainerControllerTest.kt +28 −6 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.systemui.shade import android.graphics.Rect import android.os.PowerManager import android.testing.AndroidTestingRunner import android.platform.test.flag.junit.FlagsParameterization import android.testing.TestableLooper import android.testing.ViewUtils import android.view.MotionEvent Loading @@ -41,6 +41,7 @@ import com.android.systemui.communal.shared.model.CommunalScenes import com.android.systemui.communal.ui.viewmodel.CommunalViewModel import com.android.systemui.communal.util.CommunalColors import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.andSceneContainer import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor Loading @@ -49,8 +50,10 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.shared.model.sceneDataSourceDelegator import com.android.systemui.shade.data.repository.fakeShadeRepository import com.android.systemui.shade.domain.interactor.shadeInteractor import com.android.systemui.statusbar.phone.SystemUIDialogFactory import com.android.systemui.testKosmos Loading @@ -69,12 +72,14 @@ import org.mockito.Mock import org.mockito.Mockito.times import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters @ExperimentalCoroutinesApi @RunWith(AndroidTestingRunner::class) @RunWith(ParameterizedAndroidJunit4::class) @TestableLooper.RunWithLooper(setAsMainLooper = true) @SmallTest class GlanceableHubContainerControllerTest : SysuiTestCase() { class GlanceableHubContainerControllerTest(flags: FlagsParameterization?) : SysuiTestCase() { private val kosmos: Kosmos = testKosmos().apply { // UnconfinedTestDispatcher makes testing simpler due to CommunalInteractor flows using Loading @@ -96,6 +101,10 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { private lateinit var communalRepository: FakeCommunalRepository private lateinit var underTest: GlanceableHubContainerController init { mSetFlagsRule.setFlagsParameterization(flags!!) } @Before fun setUp() { MockitoAnnotations.initMocks(this) Loading Loading @@ -251,7 +260,7 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { goToScene(CommunalScenes.Communal) // Shade shows up. fakeShadeRepository.setQsExpansion(1.0f) shadeTestUtil.setQsExpansion(1.0f) testableLooper.processAllMessages() // Touch events are not intercepted. Loading Loading @@ -405,7 +414,7 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { goToScene(CommunalScenes.Communal) // Shade shows up. fakeShadeRepository.setQsExpansion(1.0f) shadeTestUtil.setQsExpansion(1.0f) testableLooper.processAllMessages() assertThat(underTest.lifecycle.currentState).isEqualTo(Lifecycle.State.STARTED) Loading Loading @@ -458,6 +467,13 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { } private fun goToScene(scene: SceneKey) { if (SceneContainerFlag.isEnabled) { if (scene == CommunalScenes.Communal) { kosmos.sceneInteractor.changeScene(Scenes.Communal, "test") } else { kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "test") } } communalRepository.changeScene(scene) testableLooper.processAllMessages() } Loading Loading @@ -486,5 +502,11 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_DOWN, CONTAINER_WIDTH.toFloat(), 0f, 0) private val MOVE_EVENT = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_MOVE, 0f, 0f, 0) private val UP_EVENT = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_UP, 0f, 0f, 0) @JvmStatic @Parameters(name = "{0}") fun getParams(): List<FlagsParameterization> { return FlagsParameterization.allCombinationsOf().andSceneContainer() } } } packages/SystemUI/tests/utils/src/com/android/systemui/shade/ShadeTestUtil.kt +43 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,16 @@ import org.junit.Assert /** Sets up shade state for tests for either value of the scene container flag. */ class ShadeTestUtil constructor(val delegate: ShadeTestUtilDelegate) { /** Sets shade expansion to a value between 0-1. */ fun setShadeExpansion(shadeExpansion: Float) { setShadeAndQsExpansion(shadeExpansion, 0f) } /** Sets QS expansion to a value between 0-1. */ fun setQsExpansion(qsExpansion: Float) { setShadeAndQsExpansion(0f, qsExpansion) } /** Sets both shade and QS expansion. One value must be zero or values must add up to 1f. */ fun setShadeAndQsExpansion(shadeExpansion: Float, qsExpansion: Float) { Assert.assertTrue( Loading @@ -40,15 +50,24 @@ class ShadeTestUtil constructor(val delegate: ShadeTestUtilDelegate) { delegate.assertFlagValid() delegate.setShadeAndQsExpansionInternal(shadeExpansion, qsExpansion) } /** Sets the shade expansion on the lockscreen to the given amount from 0-1. */ fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) { delegate.assertFlagValid() delegate.setLockscreenShadeExpansion(lockscreenShadeExpansion) } } /** Sets up shade state for tests for a specific value of the scene container flag. */ interface ShadeTestUtilDelegate { /** Asserts that the scene container flag matches this implementation. */ fun assertFlagValid() /** Sets both shade and QS expansion. One value must be zero or values must add up to 1f. */ fun setShadeAndQsExpansionInternal(shadeExpansion: Float, qsExpansion: Float) /** Asserts that the scene container flag matches this implementation. */ fun assertFlagValid() /** Sets the shade expansion on the lockscreen to the given amount from 0-1. */ fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) } /** Sets up shade state for tests when the scene container flag is disabled. */ Loading @@ -60,6 +79,10 @@ class ShadeTestUtilLegacyImpl(val testScope: TestScope, val shadeRepository: Fak testScope.runCurrent() } override fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) { shadeRepository.setLockscreenShadeExpansion(lockscreenShadeExpansion) } override fun assertFlagValid() { Assert.assertFalse(SceneContainerFlag.isEnabled) } Loading @@ -78,6 +101,24 @@ class ShadeTestUtilSceneImpl(val testScope: TestScope, val sceneInteractor: Scen } } override fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) { if (lockscreenShadeExpansion == 0f) { setIdleScene(Scenes.Lockscreen) } else if (lockscreenShadeExpansion == 1f) { setIdleScene(Scenes.Shade) } else { setTransitionProgress(Scenes.Lockscreen, Scenes.Shade, lockscreenShadeExpansion) } } private fun setIdleScene(scene: SceneKey) { sceneInteractor.changeScene(scene, "test") val transitionState = MutableStateFlow<ObservableTransitionState>(ObservableTransitionState.Idle(scene)) sceneInteractor.setTransitionState(transitionState) testScope.runCurrent() } private fun setTransitionProgress(from: SceneKey, to: SceneKey, progress: Float) { sceneInteractor.changeScene(from, "test") val transitionState = Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt +22 −6 Original line number Diff line number Diff line Loading @@ -20,9 +20,9 @@ import android.app.smartspace.SmartspaceTarget import android.appwidget.AppWidgetProviderInfo import android.content.pm.UserInfo import android.os.UserHandle import android.platform.test.flag.junit.FlagsParameterization import android.provider.Settings import android.widget.RemoteViews import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.Flags.FLAG_COMMUNAL_HUB import com.android.systemui.SysuiTestCase Loading @@ -41,6 +41,7 @@ import com.android.systemui.communal.ui.viewmodel.CommunalViewModel.Companion.PO import com.android.systemui.coroutines.collectLastValue import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.flags.Flags.COMMUNAL_SERVICE_ENABLED import com.android.systemui.flags.andSceneContainer import com.android.systemui.flags.fakeFeatureFlagsClassic import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository Loading @@ -50,8 +51,9 @@ import com.android.systemui.log.logcatLogBuffer import com.android.systemui.media.controls.ui.controller.MediaHierarchyManager import com.android.systemui.media.controls.ui.view.MediaHost import com.android.systemui.settings.fakeUserTracker import com.android.systemui.shade.data.repository.fakeShadeRepository import com.android.systemui.shade.ShadeTestUtil import com.android.systemui.shade.domain.interactor.shadeInteractor import com.android.systemui.shade.shadeTestUtil import com.android.systemui.smartspace.data.repository.FakeSmartspaceRepository import com.android.systemui.smartspace.data.repository.fakeSmartspaceRepository import com.android.systemui.testKosmos Loading @@ -70,11 +72,13 @@ import org.mockito.Mock import org.mockito.Mockito import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters @OptIn(ExperimentalCoroutinesApi::class) @SmallTest @RunWith(AndroidJUnit4::class) class CommunalViewModelTest : SysuiTestCase() { @RunWith(ParameterizedAndroidJunit4::class) class CommunalViewModelTest(flags: FlagsParameterization?) : SysuiTestCase() { @Mock private lateinit var mediaHost: MediaHost @Mock private lateinit var user: UserInfo @Mock private lateinit var providerInfo: AppWidgetProviderInfo Loading @@ -88,9 +92,14 @@ class CommunalViewModelTest : SysuiTestCase() { private lateinit var smartspaceRepository: FakeSmartspaceRepository private lateinit var mediaRepository: FakeCommunalMediaRepository private lateinit var userRepository: FakeUserRepository private lateinit var shadeTestUtil: ShadeTestUtil private lateinit var underTest: CommunalViewModel init { mSetFlagsRule.setFlagsParameterization(flags!!) } @Before fun setUp() { MockitoAnnotations.initMocks(this) Loading @@ -101,6 +110,7 @@ class CommunalViewModelTest : SysuiTestCase() { smartspaceRepository = kosmos.fakeSmartspaceRepository mediaRepository = kosmos.fakeCommunalMediaRepository userRepository = kosmos.fakeUserRepository shadeTestUtil = kosmos.shadeTestUtil kosmos.fakeFeatureFlagsClassic.set(COMMUNAL_SERVICE_ENABLED, true) mSetFlagsRule.enableFlags(FLAG_COMMUNAL_HUB) Loading Loading @@ -274,7 +284,7 @@ class CommunalViewModelTest : SysuiTestCase() { testScope.runTest { // On keyguard without any shade expansion. kosmos.fakeKeyguardRepository.setStatusBarState(StatusBarState.KEYGUARD) kosmos.fakeShadeRepository.setLockscreenShadeExpansion(0f) shadeTestUtil.setLockscreenShadeExpansion(0f) runCurrent() assertThat(underTest.canChangeScene()).isTrue() } Loading @@ -284,7 +294,7 @@ class CommunalViewModelTest : SysuiTestCase() { testScope.runTest { // On keyguard with shade fully expanded. kosmos.fakeKeyguardRepository.setStatusBarState(StatusBarState.KEYGUARD) kosmos.fakeShadeRepository.setLockscreenShadeExpansion(1f) shadeTestUtil.setLockscreenShadeExpansion(1f) runCurrent() assertThat(underTest.canChangeScene()).isFalse() } Loading @@ -297,5 +307,11 @@ class CommunalViewModelTest : SysuiTestCase() { private companion object { val MAIN_USER_INFO = UserInfo(0, "primary", UserInfo.FLAG_MAIN) @JvmStatic @Parameters(name = "{0}") fun getParams(): List<FlagsParameterization> { return FlagsParameterization.allCombinationsOf().andSceneContainer() } } }
packages/SystemUI/tests/src/com/android/systemui/shade/GlanceableHubContainerControllerTest.kt +28 −6 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.systemui.shade import android.graphics.Rect import android.os.PowerManager import android.testing.AndroidTestingRunner import android.platform.test.flag.junit.FlagsParameterization import android.testing.TestableLooper import android.testing.ViewUtils import android.view.MotionEvent Loading @@ -41,6 +41,7 @@ import com.android.systemui.communal.shared.model.CommunalScenes import com.android.systemui.communal.ui.viewmodel.CommunalViewModel import com.android.systemui.communal.util.CommunalColors import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.andSceneContainer import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor Loading @@ -49,8 +50,10 @@ import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.res.R import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.scene.shared.model.sceneDataSourceDelegator import com.android.systemui.shade.data.repository.fakeShadeRepository import com.android.systemui.shade.domain.interactor.shadeInteractor import com.android.systemui.statusbar.phone.SystemUIDialogFactory import com.android.systemui.testKosmos Loading @@ -69,12 +72,14 @@ import org.mockito.Mock import org.mockito.Mockito.times import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters @ExperimentalCoroutinesApi @RunWith(AndroidTestingRunner::class) @RunWith(ParameterizedAndroidJunit4::class) @TestableLooper.RunWithLooper(setAsMainLooper = true) @SmallTest class GlanceableHubContainerControllerTest : SysuiTestCase() { class GlanceableHubContainerControllerTest(flags: FlagsParameterization?) : SysuiTestCase() { private val kosmos: Kosmos = testKosmos().apply { // UnconfinedTestDispatcher makes testing simpler due to CommunalInteractor flows using Loading @@ -96,6 +101,10 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { private lateinit var communalRepository: FakeCommunalRepository private lateinit var underTest: GlanceableHubContainerController init { mSetFlagsRule.setFlagsParameterization(flags!!) } @Before fun setUp() { MockitoAnnotations.initMocks(this) Loading Loading @@ -251,7 +260,7 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { goToScene(CommunalScenes.Communal) // Shade shows up. fakeShadeRepository.setQsExpansion(1.0f) shadeTestUtil.setQsExpansion(1.0f) testableLooper.processAllMessages() // Touch events are not intercepted. Loading Loading @@ -405,7 +414,7 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { goToScene(CommunalScenes.Communal) // Shade shows up. fakeShadeRepository.setQsExpansion(1.0f) shadeTestUtil.setQsExpansion(1.0f) testableLooper.processAllMessages() assertThat(underTest.lifecycle.currentState).isEqualTo(Lifecycle.State.STARTED) Loading Loading @@ -458,6 +467,13 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { } private fun goToScene(scene: SceneKey) { if (SceneContainerFlag.isEnabled) { if (scene == CommunalScenes.Communal) { kosmos.sceneInteractor.changeScene(Scenes.Communal, "test") } else { kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "test") } } communalRepository.changeScene(scene) testableLooper.processAllMessages() } Loading Loading @@ -486,5 +502,11 @@ class GlanceableHubContainerControllerTest : SysuiTestCase() { MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_DOWN, CONTAINER_WIDTH.toFloat(), 0f, 0) private val MOVE_EVENT = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_MOVE, 0f, 0f, 0) private val UP_EVENT = MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_UP, 0f, 0f, 0) @JvmStatic @Parameters(name = "{0}") fun getParams(): List<FlagsParameterization> { return FlagsParameterization.allCombinationsOf().andSceneContainer() } } }
packages/SystemUI/tests/utils/src/com/android/systemui/shade/ShadeTestUtil.kt +43 −2 Original line number Diff line number Diff line Loading @@ -31,6 +31,16 @@ import org.junit.Assert /** Sets up shade state for tests for either value of the scene container flag. */ class ShadeTestUtil constructor(val delegate: ShadeTestUtilDelegate) { /** Sets shade expansion to a value between 0-1. */ fun setShadeExpansion(shadeExpansion: Float) { setShadeAndQsExpansion(shadeExpansion, 0f) } /** Sets QS expansion to a value between 0-1. */ fun setQsExpansion(qsExpansion: Float) { setShadeAndQsExpansion(0f, qsExpansion) } /** Sets both shade and QS expansion. One value must be zero or values must add up to 1f. */ fun setShadeAndQsExpansion(shadeExpansion: Float, qsExpansion: Float) { Assert.assertTrue( Loading @@ -40,15 +50,24 @@ class ShadeTestUtil constructor(val delegate: ShadeTestUtilDelegate) { delegate.assertFlagValid() delegate.setShadeAndQsExpansionInternal(shadeExpansion, qsExpansion) } /** Sets the shade expansion on the lockscreen to the given amount from 0-1. */ fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) { delegate.assertFlagValid() delegate.setLockscreenShadeExpansion(lockscreenShadeExpansion) } } /** Sets up shade state for tests for a specific value of the scene container flag. */ interface ShadeTestUtilDelegate { /** Asserts that the scene container flag matches this implementation. */ fun assertFlagValid() /** Sets both shade and QS expansion. One value must be zero or values must add up to 1f. */ fun setShadeAndQsExpansionInternal(shadeExpansion: Float, qsExpansion: Float) /** Asserts that the scene container flag matches this implementation. */ fun assertFlagValid() /** Sets the shade expansion on the lockscreen to the given amount from 0-1. */ fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) } /** Sets up shade state for tests when the scene container flag is disabled. */ Loading @@ -60,6 +79,10 @@ class ShadeTestUtilLegacyImpl(val testScope: TestScope, val shadeRepository: Fak testScope.runCurrent() } override fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) { shadeRepository.setLockscreenShadeExpansion(lockscreenShadeExpansion) } override fun assertFlagValid() { Assert.assertFalse(SceneContainerFlag.isEnabled) } Loading @@ -78,6 +101,24 @@ class ShadeTestUtilSceneImpl(val testScope: TestScope, val sceneInteractor: Scen } } override fun setLockscreenShadeExpansion(lockscreenShadeExpansion: Float) { if (lockscreenShadeExpansion == 0f) { setIdleScene(Scenes.Lockscreen) } else if (lockscreenShadeExpansion == 1f) { setIdleScene(Scenes.Shade) } else { setTransitionProgress(Scenes.Lockscreen, Scenes.Shade, lockscreenShadeExpansion) } } private fun setIdleScene(scene: SceneKey) { sceneInteractor.changeScene(scene, "test") val transitionState = MutableStateFlow<ObservableTransitionState>(ObservableTransitionState.Idle(scene)) sceneInteractor.setTransitionState(transitionState) testScope.runCurrent() } private fun setTransitionProgress(from: SceneKey, to: SceneKey, progress: Float) { sceneInteractor.changeScene(from, "test") val transitionState = Loading