Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e80236e2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add test for scene animation when distance is not specified yet" into main

parents 5ed3fbe6 ad1f8438
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import com.android.compose.animation.scene.TestScenes.SceneA
import com.android.compose.animation.scene.TestScenes.SceneB
import com.android.compose.animation.scene.TestScenes.SceneC
import com.android.compose.animation.scene.content.state.TransitionState
import com.android.compose.animation.scene.content.state.TransitionState.Companion.DistanceUnspecified
import com.android.compose.animation.scene.content.state.TransitionState.Transition
import com.android.compose.animation.scene.subjects.assertThat
import com.android.compose.gesture.NestedDraggable
@@ -784,6 +785,29 @@ class DraggableHandlerTest {
        assertIdle(SceneB)
    }

    @Test
    fun animateWhenDistanceUnspecified() = runGestureTest {
        layoutState.transitions = transitions {
            from(SceneA, to = SceneB) {
                distance = UserActionDistance { _, _, _ -> DistanceUnspecified }
            }
        }

        val controller = onDragStarted(overSlop = up(fractionOfScreen = 0.9f))

        // The distance is not computed yet, so we don't know the "progress" value yet.
        assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.0f)

        controller.onDragStoppedAnimateNow(
            // We are animating from SceneA to SceneA, when the distance is still unspecified.
            velocity = velocityThreshold,
            onAnimationStart = {
                assertTransition(fromScene = SceneA, toScene = SceneB, progress = 0.0f)
            },
        )
        assertIdle(SceneA)
    }

    @Test
    fun showOverlay() = runGestureTest {
        mutableUserActionsA = mapOf(Swipe.Down to UserActionResult.ShowOverlay(OverlayA))