# androidx.compose.ui.test

Common/AllAndroid/JVM

In this page, you'll find documentation for types, properties, and functions available in the `androidx.compose.ui.test` package.

If you're looking for guidance instead, check out the [Testing in Compose guide](https://developer.android.com/jetpack/compose/testing).

## Testing cheat sheet

The Compose testing cheat sheet is a quick reference of some of the most useful Compose test APIs. The cheat sheet is also [downloadable in PDF format](https://developer.android.com/static/develop/ui/compose/images/compose-testing-cheatsheet.pdf).

![Useful Compose testing APIs](https://developer.android.com/static/develop/ui/compose/images/compose-testing-cheatsheet.png)

## Interfaces

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest` | Variant of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest` for when you want to have access the current `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest#activity()` of type `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest`. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest` | A test environment that allows you to test and control composables, either in isolation or in applications. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | The specification for an override applied to some piece of content. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` | Represents a resource of an application under test which can cause asynchronous background work to happen during test execution (e.g. an http request in response to a button click). | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResourceOwner` | An interface for `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest` implementations that support registering and unregistering `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource`s. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope` | The receiver scope of the indirect pointer input injection lambda from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performIndirectPointerInput(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope` | The receiver scope for input injection lambdas that are tied to a specific node, such as `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTouchInput(kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMouseInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope` | The receiver scope of the key input injection lambda from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performKeyInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock` | The clock that drives `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock#withFrameNanos(kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Recomposer` and `https://developer.android.com/reference/kotlin/androidx/compose/runtime/LaunchedEffect.composable#LaunchedEffect(kotlin.coroutines.SuspendFunction1)` in compose tests. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope` | The receiver scope of the mouse input injection lambda from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMouseInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope` | The receiver scope of the multi-modal input injection lambda from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope` | The receiver scope of rotary input injection lambda from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performRotaryScrollInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider` | Provides the main entry point into testing. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestFailureHandler` | Handles Compose UI test failures for custom diagnostics or artifact processing. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope` | The receiver scope of the touch input injection lambda from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTouchInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope` | The receiver scope of the trackpad input injection lambda from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTrackpadInput(kotlin.Function1)`. | Cmn |

## Classes

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTestEnvironment` | A test environment that can `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTestEnvironment#runTest(kotlin.coroutines.SuspendFunction1)` using the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTestEnvironment#test()`. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig` | Defines the configuration requirements for a Compose test environment. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/FailureArtifact` | Represents a diagnostic artifact produced by the test failure pipeline when a Compose UI test fails. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/FailureArtifact.Type` | Defines the category of a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/FailureArtifact`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/FailureContext` | A contextual object provided to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestFailureHandler`s when a Compose UI test fails. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope` | **This class is deprecated.** Replaced by TouchInjectionScope | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton` | Representation of a mouse button with its associated `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#buttonId()` for the current platform. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ScrollWheel` | Representation of a mouse scroll wheel axis. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SelectionResult` | Result of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsSelector` projection. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | Wrapper for semantics matcher lambdas that allows to build string explaining to the developer what conditions were being tested. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | Represents a semantics node and the path to fetch it from the semantics tree. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | Represents a collection of semantics nodes and the path to fetch them from the semantics tree. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsSelector` | Projects the given set of nodes to a new set of nodes. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/StateRestorationTester` | Helps to test the state restoration for your Composable component. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestContext` | Provides storage of test related entities that must be accessible by anything other than `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest` and friends, for example the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InputDispatcher` or the implementation of some assertions and actions. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestFailurePolicy` | Configuration for the failure handling pipeline in Compose UI tests. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestFailurePolicy.CaptureMode` | Represents a tri-state flag for failure artifact captures, allowing individual test configurations to explicitly override or fall back to suite-level runner arguments. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestMonotonicFrameClock` | A `https://developer.android.com/reference/kotlin/androidx/compose/runtime/MonotonicFrameClock` with a time source controlled by a `kotlinx-coroutines-test` `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html`. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton` | Representation of a trackpad button with its associated `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#buttonId()` for the current platform. | Cmn android |

## Exceptions

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeTimeoutException` | Thrown in cases where Compose test can't satisfy a condition in a defined time limit. | Cmn |

## Objects

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTestFlags` | This is a collection of flags which are used to guard against regressions in some of the "riskier" refactors or new feature support that is added to this module. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestFlags` | This is a collection of flags which are used to guard against regressions in some of the "riskier" refactors or new feature support that is added to this module. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion` |   | Cmn |

## Annotations

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InternalTestApi` |   | Cmn |

## Composables

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.composable` | Applies `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.composable#DeviceConfigurationOverride(androidx.compose.ui.test.DeviceConfigurationOverride,kotlin.Function0)` to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#DeviceConfigurationOverride(androidx.compose.ui.test.DeviceConfigurationOverride,kotlin.Function0)` under test to apply some configuration override. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/PlatformTextInputMethodTestOverride.composable` | Installs a custom `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/PlatformTextInputSession` implementation to run when `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/PlatformTextInputSession#startInputMethod(androidx.compose.ui.platform.PlatformTextInputMethodRequest)` is called by text editors inside `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#PlatformTextInputMethodTestOverride(androidx.compose.ui.platform.PlatformTextInputSession,kotlin.Function0)`. | Cmn |

## Top-level functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTestEnvironment<A>` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi <A : https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity> [AndroidComposeUiTestEnvironment](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0))( effectContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html, runTestContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html, testTimeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html, activityProvider: () -> A? )` **This function is deprecated.** Use \`androidx.compose.ui.test.v2.AndroidComposeUiTestEnvironment\` instead. | android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi [addGlobalAssertion](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#addGlobalAssertion(kotlin.String,kotlin.Function1))( name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, assertion: (https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` **This function is deprecated.** This API has been removed and its intended usage to run accessibility checks can now be done via \`ComposeUiTest.enableAccessibilityChecks()\` and \`ComposeTestRule.enableAccessibilityChecks()\` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasAnyAncestor(androidx.compose.ui.test.SemanticsMatcher)(matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher)` Returns whether the node has at least one ancestor that satisfies the given matcher. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasAnyChild(androidx.compose.ui.test.SemanticsMatcher)(matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher)` Returns whether the node has at least one child that satisfies the given matcher. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasAnyDescendant(androidx.compose.ui.test.SemanticsMatcher)(matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher)` Returns whether the node has at least one descendant that satisfies the given matcher. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasAnySibling(androidx.compose.ui.test.SemanticsMatcher)(matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher)` Returns whether the node has at least one sibling that satisfies the given matcher. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasClickAction()()` Return whether the node has a semantics click action defined. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasContentDescription(kotlin.String,kotlin.Boolean,kotlin.Boolean)( value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Returns whether the node's content description contains the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasContentDescription(kotlin.String,kotlin.Boolean,kotlin.Boolean)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasContentDescriptionExactly(kotlin.Array)(vararg values: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Returns whether the node's content description contains exactly the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasContentDescriptionExactly(kotlin.Array)` and nothing else. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasImeAction(androidx.compose.ui.text.input.ImeAction)(actionType: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/input/ImeAction)` Returns whether the node defines the given IME action. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasInsertTextAtCursorAction()()` Returns whether the node defines a semantics action to insert text on it. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasNoClickAction()()` Return whether the node has no semantics click action defined. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasNoScrollAction()()` Return whether the node has no semantics scrollable action defined. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasParent(androidx.compose.ui.test.SemanticsMatcher)(matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher)` Returns whether the node's parent satisfies the given matcher. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasPerformImeAction()()` Returns whether the node defines a semantics action to perform the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ImeAction()` on it. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasProgressBarRangeInfo(androidx.compose.ui.semantics.ProgressBarRangeInfo)(rangeInfo: https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/ProgressBarRangeInfo)` Returns whether the node's range info matches exactly to the given accessibility range info. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasRequestFocusAction()()` Returns whether the node defines a semantics action to request focus. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasScrollAction()()` Return whether the node has a semantics scrollable action defined. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasScrollToIndexAction()()` Returns whether the node defines the ability to scroll to an item index. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasScrollToKeyAction()()` Returns whether the node defines the ability to scroll to an item identified by a key, such as `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyRow.composable#LazyRow(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasScrollToNodeAction()()` Returns whether the node defines the ability to scroll to content identified by a matcher. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasSetTextAction()()` Returns whether the node defines a semantics action to set text on it. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasStateDescription(kotlin.String)(value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Returns whether the node's value matches exactly to the given accessibility value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasTestTag(kotlin.String)(testTag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Returns whether the node is annotated by the given test tag. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasText(kotlin.String,kotlin.Boolean,kotlin.Boolean)(text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Returns whether the node's text contains the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasText(kotlin.String,kotlin.Boolean,kotlin.Boolean)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasTextExactly(kotlin.Array,kotlin.Boolean,kotlin.Boolean)( vararg textValues: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, includeEditableText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, includeInputText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Returns whether the node's text contains exactly the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasTextExactly(kotlin.Array,kotlin.Boolean,kotlin.Boolean)` and nothing else. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isDialog()()` Returns whether the node is a dialog. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isEditable()()` Returns whether the node is editable. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isEnabled()()` Returns whether the node is enabled. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isFocusable()()` Return whether the node is able to receive focus | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isFocused()()` Returns whether the node is focused. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isHeading()()` Returns whether the node is marked as an accessibility header. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isHiddenFromAccessibility()()` Returns whether the node is hidden from accessibility. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isNotEnabled()()` Returns whether the node is not enabled. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isNotFocusable()()` Return whether the node is not able to receive focus. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isNotFocused()()` Returns whether the node is not focused. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isNotSelected()()` Returns whether the node is not selected. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isOff()()` Returns whether the node is not toggled. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isOn()()` Returns whether the node is toggled. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isPopup()()` Returns whether the node is a popup. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isRoot()()` Return whether the node is the root semantics node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isSelectable()()` Return whether the node is selectable. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isSelected()()` Returns whether the node is selected. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#isToggleable()()` Return whether the node is checkable. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi [removeGlobalAssertion](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#removeGlobalAssertion(kotlin.String))(name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` **This function is deprecated.** This API has been removed and its intended usage to run accessibility checks can now be done via \`ComposeUiTest.disableAccessibilityChecks()\` and \`ComposeTestRule.disableAccessibilityChecks()\` | Cmn |
| `inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi <A : https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity> [runAndroidComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1))( effectContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html, runTestContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html, testTimeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html, noinline block: suspend https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest<A>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` **This function is deprecated.** Use \`androidx.compose.ui.test.v2.runAndroidComposeUiTest\` instead. | android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi <A : https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity> [runAndroidComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(java.lang.Class,kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1))( activityClass: https://developer.android.com/reference/java/lang/Class.html<A>, effectContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html, runTestContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html, testTimeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html, block: suspend https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest<A>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` **This function is deprecated.** Use \`androidx.compose.ui.test.v2.runAndroidComposeUiTest\` instead. | android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi [runComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1))( effectContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html, runTestContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html, testTimeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html, block: suspend https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` **This function is deprecated.** Use \`androidx.compose.ui.test.v2.runComposeUiTest\` instead. | Cmn android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi [runEmptyComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runEmptyComposeUiTest(kotlin.Function1))(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` **This function is deprecated.** Use \`androidx.compose.ui.test.v2.runEmptyComposeUiTest\` instead. | android |

## Extension functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).DarkMode(kotlin.Boolean)(isDarkMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the dark mode or light mode theme for the contained content. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).FontScale(kotlin.Float)(fontScale: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the font scale for the contained content. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 31) https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).FontWeightAdjustment(kotlin.Int)( fontWeightAdjustment: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the font weight adjustment for the contained content. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).ForcedSize(androidx.compose.ui.unit.DpSize)(size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize)` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the available size for the contained content. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).Keyboard(kotlin.Int,kotlin.Boolean,kotlin.Boolean)( keyboardType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, isHardKeyboardHidden: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, isHidden: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the current keyboard type. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).LayoutDirection(androidx.compose.ui.unit.LayoutDirection)( layoutDirection: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/LayoutDirection )` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the layout direction for the contained content. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).Locales(androidx.compose.ui.text.intl.LocaleList)(locales: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/intl/LocaleList)` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the locales for the contained content. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).Navigation(kotlin.Int,kotlin.Boolean)( navigationType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, isHidden: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the current navigation type and whether it is hidden. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 23) https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).RoundScreen(kotlin.Boolean)( isScreenRound: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides whether the screen is round for the contained content. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).Touchscreen(kotlin.Boolean)( isTouchScreen: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the current touchscreen type. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).UiMode(kotlin.Int)(uiModeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the current ui mode type. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).WindowInsets(androidx.core.view.WindowInsetsCompat)( windowInsets: https://developer.android.com/reference/kotlin/androidx/core/view/WindowInsetsCompat )` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the window insets for the contained content. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.Companion.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).WindowSize(androidx.compose.ui.unit.DpSize)(size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize)` A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the window size for the contained content. | Cmn android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[advanceEventTime](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).advanceEventTime(kotlin.Long))(durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)( curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Move the mouse along the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)( curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Move the trackpad along the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)(delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Move the mouse from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope#currentPosition()` by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)( delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Move the trackpad from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope#currentPosition()` by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)( position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Move the mouse from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope#currentPosition()` to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)( position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Move the trackpad from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope#currentPosition()` to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)` milliseconds. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assert(androidx.compose.ui.test.SemanticsMatcher,kotlin.Function0)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher, messagePrefixOnError: (() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)? )` Asserts that the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assert(androidx.compose.ui.test.SemanticsMatcher,kotlin.Function0)` is satisfied for this node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertAll(androidx.compose.ui.test.SemanticsMatcher)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher )` Asserts that all the nodes in this collection satisfy the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertAll(androidx.compose.ui.test.SemanticsMatcher)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertAny(androidx.compose.ui.test.SemanticsMatcher)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher )` Asserts that this collection contains at least one element that satisfies the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertAny(androidx.compose.ui.test.SemanticsMatcher)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionContains(kotlin.String,kotlin.Boolean,kotlin.Boolean)( value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Asserts that the node's list of content descriptions contains the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionContains(kotlin.String,kotlin.Boolean,kotlin.Boolean)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionEquals(kotlin.Array)( vararg values: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html )` Asserts that the node's list of content descriptions contains exactly the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionEquals(kotlin.Array)` and nothing else. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertCountEquals(kotlin.Int)( expectedSize: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` Asserts that this collection of nodes is equal to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertCountEquals(kotlin.Int)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHasClickAction()()` Asserts that the current semantics node has a click action. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHasNoClickAction()()` Asserts that the current semantics node has doesn't have a click action. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHeightIsAtLeast(androidx.compose.ui.unit.Dp)(expectedMinHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Asserts that the layout of this node has height that is greater than or equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHeightIsAtLeast(androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( expectedHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Asserts that the layout of this node has height equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsDisplayed()()` Asserts that the current semantics node is displayed on screen. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsEnabled()()` Asserts that the current semantics node is enabled. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.unit.Dp).assertIsEqualTo(androidx.compose.ui.unit.Dp,kotlin.String,androidx.compose.ui.unit.Dp)(expected: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, subject: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Asserts that this value is equal to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.unit.Dp).assertIsEqualTo(androidx.compose.ui.unit.Dp,kotlin.String,androidx.compose.ui.unit.Dp)` value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsFocused()()` Asserts that the current semantics node has a focus. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsNotDisplayed()()` Asserts that the current semantics node is not displayed on screen, including when the node is not composed, composed but not placed, or when none of its bounds are visible on screen after clipping is applied. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsNotEnabled()()` Asserts that the current semantics node is not enabled. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsNotFocused()()` Asserts that the current semantics node does not have a focus. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsNotSelected()()` Asserts that the current semantics node is not selected. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsOff()()` Asserts that the current semantics node is unchecked. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsOn()()` Asserts that the current semantics node is checked. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsSelectable()()` Asserts that the current semantics node is selectable. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsSelected()()` Asserts that the current semantics node is selected. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsToggleable()()` Asserts that the current semantics node is toggleable. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertLeftPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( expectedLeft: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Asserts that the layout of this node has the left position in the root composable that is equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertLeftPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertLeftPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( expectedLeft: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, expectedTop: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Asserts that the layout of this node has position in the root composable that is equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertRangeInfoEquals(androidx.compose.ui.semantics.ProgressBarRangeInfo)( value: https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/ProgressBarRangeInfo )` Asserts the node's range info equals the given value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextContains(kotlin.String,kotlin.Boolean,kotlin.Boolean)( value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Asserts that the node's list of text values contains the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextContains(kotlin.String,kotlin.Boolean,kotlin.Boolean)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextEquals(kotlin.Array,kotlin.Boolean,kotlin.Boolean)( vararg values: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, includeEditableText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, includeInputText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Asserts that the node's list of text values contains exactly the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextEquals(kotlin.Array,kotlin.Boolean,kotlin.Boolean)` and nothing else. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTopPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( expectedTop: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Asserts that the layout of this node has the top position in the root composable that is equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTopPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTopPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( expectedHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Asserts that the touch bounds of this node has height equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( expectedWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Asserts that the touch bounds of this node has width equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertValueEquals(kotlin.String)(value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Asserts the node's value equals the given value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertWidthIsAtLeast(androidx.compose.ui.unit.Dp)(expectedMinWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)` Asserts that the layout of this node has width that is greater than or equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertWidthIsAtLeast(androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)( expectedWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp )` Asserts that the layout of this node has width equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[cancel](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).cancel())()` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/ImageBitmap` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 26) https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).captureToImage(kotlin.Long)(timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Captures the underlying semantics node's surface into an `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/ImageBitmap`. | android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[click](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).click(androidx.compose.ui.geometry.Offset))(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).click(androidx.compose.ui.geometry.Offset)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` Performs a click gesture (aka a tap) on nodes in the focus path. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).click(androidx.compose.ui.geometry.Offset)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` Performs a click gesture (aka a tap) on the associated node. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton)` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` to click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton)` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` to click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)`, or on the current cursor position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton)` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` to double-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)( position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton )` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` to double-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)`, or on the current trackpad position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[doubleClick](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long))(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)( position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a double click gesture (aka a double tap) on nodes in the focus path. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Performs a double click gesture (aka a double tap) on the associated node. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[down](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(androidx.compose.ui.geometry.Offset))(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[down](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)( start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` to drag and drop something from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)( start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` to drag and drop something from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` milliseconds. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).filter(androidx.compose.ui.test.SemanticsMatcher)(matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher)` Returns all the nodes matching the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).filter(androidx.compose.ui.test.SemanticsMatcher)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).filterToOne(androidx.compose.ui.test.SemanticsMatcher)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher )` Expects to return exactly one node matching the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).filterToOne(androidx.compose.ui.test.SemanticsMatcher)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).getAlignmentLinePosition(androidx.compose.ui.layout.AlignmentLine)( alignmentLine: https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/AlignmentLine )` Returns the position of an `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/AlignmentLine`, or `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp#Unspecified()` if the line is not provided. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpRect` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).getBoundsInRoot()()` Returns the bounds of the layout of this node as clipped to the root. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect?` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).getFirstLinkBounds(kotlin.Function1)( predicate: (https://developer.android.com/reference/kotlin/androidx/compose/ui/text/AnnotatedString.Range<https://developer.android.com/reference/kotlin/androidx/compose/ui/text/LinkAnnotation>) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Returns the bounds of the first link matching the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).getFirstLinkBounds(kotlin.Function1)`, or if that link spans multiple lines, returns the bounds of the first line of the link. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpRect` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).getUnclippedBoundsInRoot()()` Returns the bounds of the layout of this node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.[invokeGlobalAssertions](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).invokeGlobalAssertions())()` **This function is deprecated.** This API has been removed and its intended usage to run accessibility checks can now be done via \`SemanticsNodeInteraction.tryPerformAccessibilityChecks()\` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.[invokeGlobalAssertions](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).invokeGlobalAssertions())()` **This function is deprecated.** This API has been removed and its intended usage to run accessibility checks can now be done via \`SemanticsNodeInteraction.tryPerformAccessibilityChecks()\` | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).isDisplayed()()` Returns true if the matched node is displayed on screen. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).isIdlingResourceSupported()()` Capability query to determine if the current `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest` implementation supports registering an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).isNotDisplayed()()` Returns true if the matched node is not displayed on screen, including when the node is not composed, composed but not placed, or when none of its bounds are visible on screen after clipping is applied. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton)` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` to long-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)( position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton )` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` to long-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)`, or on the current trackpad position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[longClick](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long))(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)( position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a long click gesture (aka a long press) on nodes in the focus path. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Performs a long click gesture (aka a long press) on the associated node. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[move](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).move())()` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[moveBy](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveBy(androidx.compose.ui.geometry.Offset))(delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[moveBy](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveBy(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[movePointerBy](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerBy(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[movePointerTo](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[moveTo](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(androidx.compose.ui.geometry.Offset))(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[moveTo](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).multiTouchSwipe(kotlin.collections.List,kotlin.Long,kotlin.collections.List)( curves: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<(timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset>, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> )` Performs a multitouch swipe gesture on nodes in the focus path. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).multiTouchSwipe(kotlin.collections.List,kotlin.Long,kotlin.collections.List)( curves: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<(timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset>, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> )` Performs a multi touch swipe gesture on the associated node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).onAllNodesWithContentDescription(kotlin.String,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)( label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Finds all semantics nodes with the given label as content description. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).onAllNodesWithTag(kotlin.String,kotlin.Boolean)( testTag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Finds all semantics nodes identified by the given tag. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).onAllNodesWithText(kotlin.String,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)( text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Finds all semantics nodes with the given text. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onAncestors()()` Returns all the ancestors of this node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onChild()()` Returns exactly one child of this node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onChildAt(kotlin.Int)(index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Returns child of this node at the given index. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onChildren()()` Returns children of this node at the moment of invocation, it only captures nodes that are currently present in the semantic tree. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onDescendants()()` Returns all the descendants of this node in Depth-First Search order. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).onFirst()()` Returns the first node in this collection. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).onLast()()` Returns the last node in this collection. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).onNodeWithContentDescription(kotlin.String,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)( label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Finds a semantics node with the given content description. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).onNodeWithTag(kotlin.String,kotlin.Boolean)( testTag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Finds a semantics node identified by the given tag. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).onNodeWithText(kotlin.String,kotlin.Boolean,kotlin.Boolean,kotlin.Boolean)( text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Finds a semantics node with the given text. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onParent()()` Returns a parent of this node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).onRoot(kotlin.Boolean)(useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Finds the root semantics node of the Compose tree. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).onRootWithViewInteraction(androidx.test.espresso.ViewInteraction)(interaction: https://developer.android.com/reference/kotlin/androidx/test/espresso/ViewInteraction)` Scopes Compose interactions to the `https://developer.android.com/reference/android/view/View.html` hierarchy matched by an Espresso `https://developer.android.com/reference/kotlin/androidx/test/espresso/ViewInteraction`. | android |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onSibling()()` Returns exactly one sibling of this node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onSiblings()()` Returns all siblings of this node. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).pan(androidx.compose.ui.geometry.Offset)(offset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` Sends a pan gesture with the given total `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).pan(androidx.compose.ui.geometry.Offset)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).pan(kotlin.Function1,kotlin.Long,kotlin.collections.List)( curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> )` Sends a pan gesture with the offsets in the panning coordinate space following the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).pan(kotlin.Function1,kotlin.Long,kotlin.collections.List)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).panWithVelocity(androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)( offset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, endVelocity: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a pan gesture on the associated node such that it ends with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).panWithVelocity(androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[percentOffset](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).percentOffset(kotlin.Float,kotlin.Float))(x: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, y: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performClick()()` Performs a click action on the element represented by the given semantics node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabel(kotlin.String)( label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html )` Finds the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` in the node's `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#CustomActions()` list whose label is equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabel(kotlin.String)` and then invokes it. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabelMatching(kotlin.String,kotlin.Function1)( predicateDescription: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, labelPredicate: (label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Finds the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` in the node's `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#CustomActions()` list whose label satisfies a predicate function and then invokes it. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performFirstLinkClick(kotlin.Function1)( predicate: (https://developer.android.com/reference/kotlin/androidx/compose/ui/text/AnnotatedString.Range<https://developer.android.com/reference/kotlin/androidx/compose/ui/text/LinkAnnotation>) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` For a first link matching the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performFirstLinkClick(kotlin.Function1)` performs a click on it. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.[performGesture](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1))(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` **This function is deprecated.** Replaced by performTouchInput | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performImeAction()()` Sends to this node the IME action associated with it in a similar way to the IME. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performKeyInput(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the key input gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performKeyInput(kotlin.Function1)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performKeyPress(androidx.compose.ui.input.key.KeyEvent)(keyEvent: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent)` Send the specified `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent` to the focused component. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMouseInput(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the mouse gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMouseInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the multi-modal gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performRotaryScrollInput(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the rotary input specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performRotaryScrollInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollTo()()` Scrolls the closest enclosing scroll parent by the smallest amount such that this node is fully visible in its viewport. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToIndex(kotlin.Int)(index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Scrolls a scrollable container with items to the item with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToIndex(kotlin.Int)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToKey(kotlin.Any)(key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)` Scrolls a scrollable container with keyed items to the item with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToKey(kotlin.Any)`, such as `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyRow.composable#LazyRow(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToNode(androidx.compose.ui.test.SemanticsMatcher)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher )` Scrolls a scrollable container to the content that matches the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToNode(androidx.compose.ui.test.SemanticsMatcher)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performSemanticsAction(androidx.compose.ui.semantics.SemanticsPropertyKey)( key: https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsPropertyKey<https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/AccessibilityAction<() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html>> )` Provides support to call custom semantics actions on this node. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `<T : () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html> https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performSemanticsAction(androidx.compose.ui.semantics.SemanticsPropertyKey,kotlin.Function1)( key: https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsPropertyKey<https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/AccessibilityAction<T>>, invocation: (T) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Provides support to call custom semantics actions on this node. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTextClearance()()` Clears the text in this node in similar way to IME. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTextInput(kotlin.String)(text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Sends the given text to this node in similar way to IME. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTextInputSelection(androidx.compose.ui.text.TextRange,kotlin.Boolean)( selection: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextRange, relativeToOriginalText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Sends the given selection to this node in similar way to IME. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTextReplacement(kotlin.String)(text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)` Replaces existing text with the given text in this node in similar way to IME. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTouchInput(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the touch gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTouchInput(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTrackpadInput(kotlin.Function1)(block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the trackpad gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTrackpadInput(kotlin.Function1)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[pinch](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).pinch(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long))( start0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, start1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).pinch(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)( start0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, start1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a pinch gesture on nodes in the focus path. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).pinch(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)( start0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, start1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a pinch gesture on the associated node. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).pressKey(androidx.compose.ui.input.key.Key,kotlin.Long)(key: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key, pressDurationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Holds down the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).pressKey(androidx.compose.ui.input.key.Key,kotlin.Long)` for the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).pressKey(androidx.compose.ui.input.key.Key,kotlin.Long)` by sending a key down event, advancing the event time and sending a key up event. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).printToLog(kotlin.String,kotlin.Int)(tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, maxDepth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Prints all the semantics nodes information into logs (as debug level). | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).printToLog(kotlin.String,kotlin.Int)( tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, maxDepth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html )` Prints all the semantics nodes information into logs (as debug level). | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).printToString(kotlin.Int)(maxDepth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Prints all the semantics nodes information it holds into string. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).printToString(kotlin.Int)(maxDepth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Prints all the semantics nodes information it holds into string. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).registerIdlingResource(androidx.compose.ui.test.IdlingResource)(idlingResource: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource)` Attempts to register an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` in this test. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).requestFocus()()` Requests the focus system to give focus to this node by invoking the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#RequestFocus()` semantics action. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` Secondary-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset)` Secondary-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)`, or on the current cursor position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).scale(kotlin.Float)( scaleFactor: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Sends a scale event with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).scale(kotlin.Float)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).sendIndirectPointerInput(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)( indirectPointerEventPrimaryDirectionalMotionAxis: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/indirect/IndirectPointerEventPrimaryDirectionalMotionAxis, inputDeviceSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize, block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Sends an indirect pointer gesture globally, targeting the currently focused Compose UI (from root to the focused node). | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).smoothScroll(kotlin.Float,kotlin.Long,androidx.compose.ui.test.ScrollWheel)( scrollAmount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, scrollWheel: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ScrollWheel )` Rotate the mouse's `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).smoothScroll(kotlin.Float,kotlin.Long,androidx.compose.ui.test.ScrollWheel)` by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).smoothScroll(kotlin.Float,kotlin.Long,androidx.compose.ui.test.ScrollWheel)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipe(kotlin.Function1,kotlin.Long,kotlin.collections.List)( curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> )` Performs a swipe gesture on nodes in the focus path. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipe(kotlin.Function1,kotlin.Long,kotlin.collections.List)( curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> )` Performs a swipe gesture on the associated node. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipe](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long))(start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)( start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe gesture on nodes in the focus path. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)( start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe gesture on the associated node. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeDown](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown())()` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeDown](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long))(startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)( startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe down gesture on nodes in the focus path along `x = [IndirectPointerInjectionScope.inputDeviceCenter].x`, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)( startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe down gesture along `x = [centerX]` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeLeft](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft())()` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeLeft](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long))(startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)( startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe left gesture on nodes in the focus path along `y = [IndirectPointerInjectionScope.inputDeviceCenter].y`, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)( startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe left gesture along `y = [centerY]` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeRight](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight())()` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeRight](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long))(startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)( startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe right gesture on nodes in the focus path along `y = [IndirectPointerInjectionScope.inputDeviceCenter].y`, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)( startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe right gesture along `y = [centerY]` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeUp](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp())()` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeUp](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long))(startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)( startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe up gesture on nodes in the focus path along `x = [IndirectPointerInjectionScope.inputDeviceCenter].x`, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)( startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe up gesture along `x = [centerX]` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[swipeWithVelocity](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long))( start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, endVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)( start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, endVelocity: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe gesture on nodes in the focus path such that it ends with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)( start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, endVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Performs a swipe gesture on the associated node such that it ends with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`. | Cmn |
| `infix https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride).then(androidx.compose.ui.test.DeviceConfigurationOverride)(other: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride)` Combines this override with the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride).then(androidx.compose.ui.test.DeviceConfigurationOverride)` override into a single override, by applying this override as the outer override first, then the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride).then(androidx.compose.ui.test.DeviceConfigurationOverride)` override as an inner override, and then the content. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)(position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton)` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` to triple-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)( position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton )` Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` to triple-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)`, or on the current trackpad position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).tryPerformAccessibilityChecks()()` Tries to perform accessibility checks on the current screen. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).tryPerformAccessibilityChecks()()` Tries to perform accessibility checks on the current screen. | Cmn android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).unregisterIdlingResource(androidx.compose.ui.test.IdlingResource)(idlingResource: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource)` Attempts to unregister an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` in this test. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.[up](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).up(kotlin.Int))(pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` **This function is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher, timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Blocks until at least one node matches the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher, timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Blocks until no nodes match the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher, timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Blocks until exactly one node matches the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)( matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher, count: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Blocks until the number of nodes matching the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)` is equal to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyDown(androidx.compose.ui.input.key.Key,kotlin.Function1)(key: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key, block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the keyboard sequence specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyDown(androidx.compose.ui.input.key.Key,kotlin.Function1)`, whilst holding down the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyDown(androidx.compose.ui.input.key.Key,kotlin.Function1)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyToggled(androidx.compose.ui.input.key.Key,kotlin.Function1)(key: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key, block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the keyboard sequence specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyToggled(androidx.compose.ui.input.key.Key,kotlin.Function1)`, in between presses to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyToggled(androidx.compose.ui.input.key.Key,kotlin.Function1)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)(keys: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key>, block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the keyboard sequence specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)`, whilst holding down the each of the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)(keys: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key>, block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Executes the keyboard sequence specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)`, in between presses to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)`. | Cmn |

## Extension properties summary

|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottomCenter()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottomLeft()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottomRight()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).center()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerLeft()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerRight()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerX()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerY()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ExperimentalTestApi https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestMonotonicFrameClock.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TestMonotonicFrameClock).frameDelayMillis()` The frame delay time for the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestMonotonicFrameClock` in milliseconds. | android |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).height()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceBottom()` The y-coordinate for the bottom of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceBottomCenter()` The center of the bottom edge of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceBottomLeft()` The bottom left corner of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceBottomRight()` The bottom right corner of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceCenter()` The center of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceCenterLeft()` The center of the left edge of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceCenterRight()` The center of the right edge of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceCenterX()` The x-coordinate for the center of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceCenterY()` The y-coordinate for the center of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceHeight()` The height of the external indirect pointer input device that provide the height boundary for indirect input. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceLeft()` The x-coordinate for the left edge of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceRight()` The x-coordinate for the right edge of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceTop()` The y-coordinate for the top of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceTopCenter()` The center of the top edge of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceTopLeft()` The top left corner of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceTopRight()` The top right corner of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceWidth()` The width of the external indirect pointer input device that provide the width boundary for indirect input. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).isAltDown()` Verifies whether either of the alt keys are down. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).isCtrlDown()` Verifies whether either of the control keys are down. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).isFnDown()` Verifies whether the function key is down. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).isMetaDown()` Verifies whether either of the meta keys are down. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).isShiftDown()` Verifies whether either of the shift keys are down. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).left()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).top()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).topCenter()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).topLeft()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).topRight()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).width()` **This property is deprecated.** Replaced by TouchInjectionScope. | Cmn |

## Top-level functions

### AndroidComposeUiTestEnvironment

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.android.kt+function:AndroidComposeUiTestEnvironment)

```
@ExperimentalTestApi
fun <A : ComponentActivity> [AndroidComposeUiTestEnvironment](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0))(
    effectContext: CoroutineContext = EmptyCoroutineContext,
    runTestContext: CoroutineContext = EmptyCoroutineContext,
    testTimeout: Duration = 60.seconds,
    activityProvider: () -> A?
): AndroidComposeUiTestEnvironment<A>
```

> [!CAUTION]
> **This function is deprecated.**   
> Use \`androidx.compose.ui.test.v2.AndroidComposeUiTestEnvironment\` instead. The v2 APIs align with standard coroutine behavior by queuing tasks rather than executing them immediately. Tests relying on immediate execution may require explicit synchronization. Please refer to the migration guide for more details.

Creates an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0)` that retrieves the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest#activity()` by delegating to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0)`. Use this if you need to launch an Activity in a way that is not compatible with any of the existing `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)`, or `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runEmptyComposeUiTest(kotlin.Function1)` methods.

Valid use cases include, but are not limited to, creating your own JUnit test rule that implements `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest` by delegating to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTestEnvironment#test()`. See `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/AndroidComposeTestRule` for a reference implementation.

The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0)` is called every time `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest#activity()` is called, which in turn is called when `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#setContent(kotlin.Function0)` is called.

The most common implementation of an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0)` retrieves the activity from a backing `https://developer.android.com/reference/kotlin/androidx/test/core/app/ActivityScenario` (that the caller launches *within* the lambda passed to `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/index.html`), but one is not limited to this pattern.

| Parameters |
|---|---|
| `<A : https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity>` | The Activity type to be interacted with, which typically (but not necessarily) is the activity that was launched and hosts the Compose content. |
| `effectContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html = EmptyCoroutineContext` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` used to run the composition. The context for `LaunchedEffect`s and `rememberCoroutineScope` will be derived from this context. If this context contains a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-dispatcher/index.html` or `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html` (in that order), it will be used for composition and the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`. |
| `runTestContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html = EmptyCoroutineContext` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` used to create the context to run the test. By default it will run using `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/index.html`. `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0)` must not share `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html`. |
| `testTimeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html = 60.seconds` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html` within which the test is expected to complete, otherwise a platform specific timeout exception will be thrown. |
| `activityProvider: () -> A?` | A lambda that should return the current Activity instance of type `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#AndroidComposeUiTestEnvironment(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.Function0)`, if it is available. If it is not available, it should return `null`. |

### addGlobalAssertion

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GlobalAssertions.kt+function:addGlobalAssertion) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0) Deprecated in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0)

```
@ExperimentalTestApi
fun [addGlobalAssertion](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#addGlobalAssertion(kotlin.String,kotlin.Function1))(
    name: String,
    assertion: (SemanticsNodeInteraction) -> Unit
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> This API has been removed and its intended usage to run accessibility checks can now be done via \`ComposeUiTest.enableAccessibilityChecks()\` and \`ComposeTestRule.enableAccessibilityChecks()\`

Adds a named assertion to the collection of assertions to be executed before test actions.

This API is intended to be invoked by assertion frameworks to register assertions that must hold on the entire application whenever it's fully loaded and ready to interact with. They will be invoked upon common actions such as `performClick`, and they always verify every element on the screen, not just the element the action is performed on.

This is particularly useful to automatically catch accessibility problems such as contrast ratio, minimum touch-target size, etc.

| Parameters |
|---|---|
| `name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | An identifier for the assertion. It can subsequently be used to deactivate the assertion with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#removeGlobalAssertion(kotlin.String)`. |
| `assertion: (https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A function to be executed. |

### hasAnyAncestor

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasAnyAncestor) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasAnyAncestor(matcher: SemanticsMatcher): SemanticsMatcher
```

Returns whether the node has at least one ancestor that satisfies the given matcher.

Example: For the following tree

```kotlin
|-X
|-A
  |-B
    |-C1
    |-C2
```

In case of C1, we would check the matcher against A and B

### hasAnyChild

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasAnyChild) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasAnyChild(matcher: SemanticsMatcher): SemanticsMatcher
```

Returns whether the node has at least one child that satisfies the given matcher.

### hasAnyDescendant

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasAnyDescendant) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasAnyDescendant(matcher: SemanticsMatcher): SemanticsMatcher
```

Returns whether the node has at least one descendant that satisfies the given matcher.

Example: For the following tree

```kotlin
|-X
|-A
  |-B
    |-C1
    |-C2
```

In case of A, we would check the matcher against B,C1 and C2

### hasAnySibling

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasAnySibling) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasAnySibling(matcher: SemanticsMatcher): SemanticsMatcher
```

Returns whether the node has at least one sibling that satisfies the given matcher.

Sibling is defined as a any other node that shares the same parent.

### hasClickAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasClickAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasClickAction(): SemanticsMatcher
```

Return whether the node has a semantics click action defined.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#OnClick()` |   |

### hasContentDescription

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasContentDescription) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasContentDescription(
    value: String,
    substring: Boolean = false,
    ignoreCase: Boolean = false
): SemanticsMatcher
```

Returns whether the node's content description contains the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasContentDescription(kotlin.String,kotlin.Boolean,kotlin.Boolean)`.

Note that in merged semantics tree there can be a list of content descriptions that got merged from the child nodes. Typically an accessibility tooling will decide based on its heuristics which ones to announce.

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Value to match as one of the items in the list of content descriptions. |
| `substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether to use substring matching. |
| `ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether case should be ignored. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ContentDescription()` |   |

### hasContentDescriptionExactly

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasContentDescriptionExactly) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasContentDescriptionExactly(vararg values: String): SemanticsMatcher
```

Returns whether the node's content description contains exactly the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasContentDescriptionExactly(kotlin.Array)` and nothing else.

Note that in merged semantics tree there can be a list of content descriptions that got merged from the child nodes. Typically an accessibility tooling will decide based on its heuristics which ones to announce.

| Parameters |
|---|---|
| `vararg values: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | List of values to match (the order does not matter) |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ContentDescription()` |   |

### hasImeAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasImeAction) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun hasImeAction(actionType: ImeAction): SemanticsMatcher
```

Returns whether the node defines the given IME action.

| Parameters |
|---|---|
| `actionType: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/input/ImeAction` | the action to match. |

### hasInsertTextAtCursorAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasInsertTextAtCursorAction) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.5.0)

```
fun hasInsertTextAtCursorAction(): SemanticsMatcher
```

Returns whether the node defines a semantics action to insert text on it.

This can be used to, for instance, filter out text fields.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#InsertTextAtCursor()` |   |

### hasNoClickAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasNoClickAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasNoClickAction(): SemanticsMatcher
```

Return whether the node has no semantics click action defined.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#OnClick()` |   |

### hasNoScrollAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasNoScrollAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasNoScrollAction(): SemanticsMatcher
```

Return whether the node has no semantics scrollable action defined.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#ScrollBy()` |   |

### hasParent

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasParent) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasParent(matcher: SemanticsMatcher): SemanticsMatcher
```

Returns whether the node's parent satisfies the given matcher.

Returns false if no parent exists.

### hasPerformImeAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasPerformImeAction) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.5.0)

```
fun hasPerformImeAction(): SemanticsMatcher
```

Returns whether the node defines a semantics action to perform the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ImeAction()` on it.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#OnImeAction()` |   |

### hasProgressBarRangeInfo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasProgressBarRangeInfo) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasProgressBarRangeInfo(rangeInfo: ProgressBarRangeInfo): SemanticsMatcher
```

Returns whether the node's range info matches exactly to the given accessibility range info.

| Parameters |
|---|---|
| `rangeInfo: https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/ProgressBarRangeInfo` | range info to match. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ProgressBarRangeInfo()` |   |

### hasRequestFocusAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasRequestFocusAction) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.5.0)

```
fun hasRequestFocusAction(): SemanticsMatcher
```

Returns whether the node defines a semantics action to request focus.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#RequestFocus()` |   |

### hasScrollAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasScrollAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasScrollAction(): SemanticsMatcher
```

Return whether the node has a semantics scrollable action defined.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#ScrollBy()` |   |

### hasScrollToIndexAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasScrollToIndexAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasScrollToIndexAction(): SemanticsMatcher
```

Returns whether the node defines the ability to scroll to an item index.

Note that not all scrollable containers have item indices. For example, a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/scrollable.modifier#(androidx.compose.ui.Modifier).scrollable(androidx.compose.foundation.gestures.ScrollableState,androidx.compose.foundation.gestures.Orientation,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,androidx.compose.foundation.interaction.MutableInteractionSource)` doesn't have items with an index, while `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` does.

### hasScrollToKeyAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasScrollToKeyAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasScrollToKeyAction(): SemanticsMatcher
```

Returns whether the node defines the ability to scroll to an item identified by a key, such as `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyRow.composable#LazyRow(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`.

### hasScrollToNodeAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasScrollToNodeAction) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun hasScrollToNodeAction(): SemanticsMatcher
```

Returns whether the node defines the ability to scroll to content identified by a matcher.

### hasSetTextAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasSetTextAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasSetTextAction(): SemanticsMatcher
```

Returns whether the node defines a semantics action to set text on it.

This can be used to, for instance, filter out text fields.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#SetText()` |   |

### hasStateDescription

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasStateDescription) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasStateDescription(value: String): SemanticsMatcher
```

Returns whether the node's value matches exactly to the given accessibility value.

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Value to match. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#StateDescription()` |   |

### hasTestTag

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasTestTag) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasTestTag(testTag: String): SemanticsMatcher
```

Returns whether the node is annotated by the given test tag.

| Parameters |
|---|---|
| `testTag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Value to match. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#TestTag()` |   |

### hasText

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasText) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun hasText(text: String, substring: Boolean = false, ignoreCase: Boolean = false): SemanticsMatcher
```

Returns whether the node's text contains the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasText(kotlin.String,kotlin.Boolean,kotlin.Boolean)`.

This will also search in `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#EditableText()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#InputText()`.

Note that in merged semantics tree there can be a list of text items that got merged from the child nodes. Typically an accessibility tooling will decide based on its heuristics which ones to use.

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Value to match as one of the items in the list of text values. |
| `substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether to use substring matching. |
| `ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether case should be ignored. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Text()` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#EditableText()` |   |

### hasTextExactly

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:hasTextExactly)

```
fun hasTextExactly(
    vararg textValues: String,
    includeEditableText: Boolean = true,
    includeInputText: Boolean = false
): SemanticsMatcher
```

Returns whether the node's text contains exactly the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasTextExactly(kotlin.Array,kotlin.Boolean,kotlin.Boolean)` and nothing else.

By default, this searches in `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Text()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#EditableText()`. To also evaluate `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#InputText()` (which holds the raw user input of fields like passwords, bypassing visual transformations), set `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasTextExactly(kotlin.Array,kotlin.Boolean,kotlin.Boolean)` to `true`.

Note that in the merged semantics tree there can be a list of text items that got merged from the child nodes. Typically, an accessibility tooling will decide based on its heuristics which ones to use.

| Parameters |
|---|---|
| `vararg textValues: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | List of values to match (the order does not matter). |
| `includeEditableText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = true` | Whether to also assert against the editable text. Defaults to true. |
| `includeInputText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether to also assert against the un-transformed input text. Defaults to false. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Text()` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#EditableText()` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#InputText()` |   |

### isDialog

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isDialog) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isDialog(): SemanticsMatcher
```

Returns whether the node is a dialog.

This only checks if the node itself is a dialog, not if it is *part of* a dialog. Use `hasAnyAncestorThat(isDialog())` for that.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#IsDialog()` |   |

### isEditable

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isEditable) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0)

```
fun isEditable(): SemanticsMatcher
```

Returns whether the node is editable.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#IsEditable()` |   |

### isEnabled

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isEnabled) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isEnabled(): SemanticsMatcher
```

Returns whether the node is enabled.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Disabled()` |   |

### isFocusable

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isFocusable) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isFocusable(): SemanticsMatcher
```

Return whether the node is able to receive focus

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Focused()` |   |

### isFocused

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isFocused) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isFocused(): SemanticsMatcher
```

Returns whether the node is focused.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Focused()` |   |

### isHeading

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isHeading) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isHeading(): SemanticsMatcher
```

Returns whether the node is marked as an accessibility header.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Heading()` |   |

### isHiddenFromAccessibility

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isHiddenFromAccessibility) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun isHiddenFromAccessibility(): SemanticsMatcher
```

Returns whether the node is hidden from accessibility.

This only checks if the node itself is hidden from accessibility. To check if it is in a hidden subtree, use `hasAnyAncestor(isHiddenFromAccessibility())`.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#HideFromAccessibility()` |   |

### isNotEnabled

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isNotEnabled) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isNotEnabled(): SemanticsMatcher
```

Returns whether the node is not enabled.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Disabled()` |   |

### isNotFocusable

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isNotFocusable) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isNotFocusable(): SemanticsMatcher
```

Return whether the node is not able to receive focus.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Focused()` |   |

### isNotFocused

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isNotFocused) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isNotFocused(): SemanticsMatcher
```

Returns whether the node is not focused.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Focused()` |   |

### isNotSelected

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isNotSelected) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isNotSelected(): SemanticsMatcher
```

Returns whether the node is not selected.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Selected()` |   |

### isOff

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isOff) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isOff(): SemanticsMatcher
```

Returns whether the node is not toggled.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ToggleableState()` |   |

### isOn

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isOn) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isOn(): SemanticsMatcher
```

Returns whether the node is toggled.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ToggleableState()` |   |

### isPopup

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isPopup) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isPopup(): SemanticsMatcher
```

Returns whether the node is a popup.

This only checks if the node itself is a popup, not if it is *part of* a popup. Use `hasAnyAncestorThat(isPopup())` for that.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#IsPopup()` |   |

### isRoot

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isRoot) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isRoot(): SemanticsMatcher
```

Return whether the node is the root semantics node.

There is always one root in every node tree, added implicitly by Compose.

### isSelectable

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isSelectable) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isSelectable(): SemanticsMatcher
```

Return whether the node is selectable.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Selected()` |   |

### isSelected

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isSelected) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isSelected(): SemanticsMatcher
```

Returns whether the node is selected.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Selected()` |   |

### isToggleable

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Filters.kt+function:isToggleable) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun isToggleable(): SemanticsMatcher
```

Return whether the node is checkable.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ToggleableState()` |   |

### removeGlobalAssertion

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GlobalAssertions.kt+function:removeGlobalAssertion) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0) Deprecated in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0)

```
@ExperimentalTestApi
fun [removeGlobalAssertion](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#removeGlobalAssertion(kotlin.String))(name: String): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> This API has been removed and its intended usage to run accessibility checks can now be done via \`ComposeUiTest.disableAccessibilityChecks()\` and \`ComposeTestRule.disableAccessibilityChecks()\`

Removes a named assertion from the collection of assertions to be executed before test actions.

| Parameters |
|---|---|
| `name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | An identifier that was previously used in a call to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#addGlobalAssertion(kotlin.String,kotlin.Function1)`. |

### runAndroidComposeUiTest

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.android.kt+function:runAndroidComposeUiTest)

```
@ExperimentalTestApi
inline fun <A : ComponentActivity> [runAndroidComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1))(
    effectContext: CoroutineContext = EmptyCoroutineContext,
    runTestContext: CoroutineContext = EmptyCoroutineContext,
    testTimeout: Duration = 60.seconds,
    noinline block: suspend AndroidComposeUiTest<A>.() -> Unit
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Use \`androidx.compose.ui.test.v2.runAndroidComposeUiTest\` instead. The v2 APIs align with standard coroutine behavior by queuing tasks rather than executing them immediately. Tests relying on immediate execution may require explicit synchronization. Please refer to the migration guide for more details.

Variant of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` that allows you to specify which Activity should be launched. Be aware that if the Activity `https://developer.android.com/reference/kotlin/androidx/activity/compose/package-summary#(androidx.activity.ComponentActivity).setContent(androidx.compose.runtime.CompositionContext,kotlin.Function0)` during its launch, you cannot use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#setContent(kotlin.Function0)` on the ComposeUiTest anymore as this would override the content and can lead to subtle bugs.

Avoid using `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule` (e.g., createComposeRule) inside `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` or any of their respective variants. Since these APIs independently manage the test environment, mixing them may lead to unexpected behavior.

| Parameters |
|---|---|
| `<A : https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity>` | The Activity type to be launched, which typically (but not necessarily) hosts the Compose content |
| `effectContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html = EmptyCoroutineContext` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` used to run the composition. The context for `LaunchedEffect`s and `rememberCoroutineScope` will be derived from this context. If this context contains a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-dispatcher/index.html` or `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html` (in that order), it will be used for composition and the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`. |
| `runTestContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html = EmptyCoroutineContext` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` used to create the context to run the test `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)`. By default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` will run using `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/index.html`. `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` must not share `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html`. |
| `testTimeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html = 60.seconds` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html` within which the test is expected to complete, otherwise a platform specific timeout exception will be thrown. |
| `noinline block: suspend https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest<A>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The test function. |

### runAndroidComposeUiTest

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.android.kt+function:runAndroidComposeUiTest)

```
@ExperimentalTestApi
fun <A : ComponentActivity> [runAndroidComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(java.lang.Class,kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1))(
    activityClass: Class<A>,
    effectContext: CoroutineContext = EmptyCoroutineContext,
    runTestContext: CoroutineContext = EmptyCoroutineContext,
    testTimeout: Duration = 60.seconds,
    block: suspend AndroidComposeUiTest<A>.() -> Unit
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Use \`androidx.compose.ui.test.v2.runAndroidComposeUiTest\` instead. The v2 APIs use StandardTestDispatcher instead of UnconfinedTestDispatcher, which aligns with standard coroutine behavior by queuing tasks rather than executing them immediately. Tests relying on immediate execution may require explicit synchronization. Please refer to the migration guide for more details.

Variant of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` that allows you to specify which Activity should be launched. Be aware that if the Activity `https://developer.android.com/reference/kotlin/androidx/activity/compose/package-summary#(androidx.activity.ComponentActivity).setContent(androidx.compose.runtime.CompositionContext,kotlin.Function0)` during its launch, you cannot use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#setContent(kotlin.Function0)` on the ComposeUiTest anymore as this would override the content and can lead to subtle bugs.

Avoid using `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule` (e.g., createComposeRule) inside `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(java.lang.Class,kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` or any of their respective variants. Since these APIs independently manage the test environment, mixing them may lead to unexpected behavior.

| Parameters |
|---|---|
| `<A : https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity>` | The Activity type to be launched, which typically (but not necessarily) hosts the Compose content |
| `activityClass: https://developer.android.com/reference/java/lang/Class.html<A>` | The `https://developer.android.com/reference/java/lang/Class.html` of the Activity type to be launched, corresponding to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(java.lang.Class,kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)`. |
| `effectContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html = EmptyCoroutineContext` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` used to run the composition. The context for `LaunchedEffect`s and `rememberCoroutineScope` will be derived from this context. If this context contains a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-dispatcher/index.html` or `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html` (in that order), it will be used for composition and the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`. |
| `runTestContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html = EmptyCoroutineContext` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` used to create the context to run the test `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(java.lang.Class,kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)`. By default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(java.lang.Class,kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` will run using `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/index.html`. `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(java.lang.Class,kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runAndroidComposeUiTest(java.lang.Class,kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` must not share `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html`. |
| `testTimeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html = 60.seconds` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html` within which the test is expected to complete, otherwise a platform specific timeout exception will be thrown. |
| `block: suspend https://developer.android.com/reference/kotlin/androidx/compose/ui/test/AndroidComposeUiTest<A>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The test function. |

### runComposeUiTest

Cmn android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.+function:runComposeUiTest)

```
@ExperimentalTestApi
fun [runComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1))(
    effectContext: CoroutineContext = EmptyCoroutineContext,
    runTestContext: CoroutineContext = EmptyCoroutineContext,
    testTimeout: Duration = 60.seconds,
    block: suspend ComposeUiTest.() -> Unit
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Use \`androidx.compose.ui.test.v2.runComposeUiTest\` instead. The v2 APIs align with standard coroutine behavior by queuing tasks rather than executing them immediately. Tests relying on immediate execution may require explicit synchronization. Please refer to the migration guide for more details.

Sets up the test environment, runs the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` and then tears down the test environment. Use the methods on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest` in the test to find Compose content and make assertions on it. If you need access to platform specific elements (such as the Activity on Android), use one of the platform specific variants of this method, e.g. `runAndroidComposeUiTest` on Android.

Implementations of this method will launch a Compose host (such as an Activity on Android) for you. If your test needs to launch its own host, use a platform specific variant that doesn't launch anything for you (if available), e.g. `runEmptyComposeUiTest` on Android. Always make sure that the Compose content is set during execution of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` so the test framework is aware of the content. Whether you need to launch the host from within the test lambda as well depends on the platform.

This function follows the semantics of `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/index.html`. On JVM and Native it behaves similarly to `runBlocking`. On web targets it returns a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-result/index.html` backed by a `Promise`.

For multiplatform tests, make the test return `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-result/index.html` and immediately return the result of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)`. Keep assertions inside the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)`, and do not execute code after this call.

Example:

```kotlin
@Test
fun myTest(): TestResult = runComposeUiTest {
    setContent { /* content under test */}
}
```

Keeping a reference to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest` outside of this function is an error.

See also:

- [kotlinx.coroutines.test.runTest](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/run-test.html)

- [TestResult](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-result/)

```kotlin
import androidx.compose.foundation.layout.Column
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.test.assert
import androidx.compose.ui.test.hasText
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performClick
import androidx.compose.ui.test.v2.runComposeUiTest

runComposeUiTest {
    var counter by mutableIntStateOf(1)
    setContent {
        Column {
            Text(text = "Count: $counter", modifier = Modifier.testTag("text_tag"))
            Button(onClick = { counter++ }, modifier = Modifier.testTag("button_tag")) {
                Text("Click Me!")
            }
        }
    }

    onNodeWithTag("button_tag").performClick()
    onNodeWithTag("text_tag").assert(hasText("Count: 2"))
}
```

| Parameters |
|---|---|
| `effectContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html = EmptyCoroutineContext` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` used to run the composition. The context for `LaunchedEffect`s and `rememberCoroutineScope` will be derived from this context. If this context contains a `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-dispatcher/index.html` or `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html` (in that order), it will be used for composition and the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`. |
| `runTestContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html = EmptyCoroutineContext` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` used to create the context to run the test `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)`. By default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` will run using `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/index.html`. `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` must not share `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-test/kotlinx.coroutines.test/-test-coroutine-scheduler/index.html`. |
| `testTimeout: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html = 60.seconds` | The `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-duration/index.html` within which the test is expected to complete, otherwise a platform specific timeout exception will be thrown. |
| `block: suspend https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The test function. |

### runEmptyComposeUiTest

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.android.kt+function:runEmptyComposeUiTest)

```
@ExperimentalTestApi
fun [runEmptyComposeUiTest](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runEmptyComposeUiTest(kotlin.Function1))(block: ComposeUiTest.() -> Unit): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Use \`androidx.compose.ui.test.v2.runEmptyComposeUiTest\` instead. The v2 APIs align with standard coroutine behavior by queuing tasks rather than executing them immediately. Tests relying on immediate execution may require explicit synchronization. Please refer to the migration guide for more details.

Variant of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runComposeUiTest(kotlin.coroutines.CoroutineContext,kotlin.coroutines.CoroutineContext,kotlin.time.Duration,kotlin.coroutines.SuspendFunction1)` that does not launch an Activity to host Compose content in and thus acts as an "empty shell". Use this if you need to have control over the timing and method of launching the Activity, for example when you want to launch it with a custom Intent, or if you have a complex test setup.

When using this method, calling `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#setContent(kotlin.Function0)` will throw an IllegalStateException. Instead, you'll have to set the content in the Activity that you have launched yourself, either directly on the Activity or on an `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/AbstractComposeView`. You will need to do this from within the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runEmptyComposeUiTest(kotlin.Function1)`, or the test framework will not be able to find the content.

Avoid using `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule` (e.g., createComposeRule) inside `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#runEmptyComposeUiTest(kotlin.Function1)` or any of their respective variants. Since these APIs independently manage the test environment, mixing them may lead to unexpected behavior.

## Extension functions

### DeviceConfigurationOverride.Companion.DarkMode

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:DarkMode)

```
fun DeviceConfigurationOverride.Companion.DarkMode(isDarkMode: Boolean): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the dark mode or light mode theme for the contained content. Inside the content under test, `isSystemInDarkTheme()` will return `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).DarkMode(kotlin.Boolean)`.

```kotlin
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.ui.test.DarkMode
import androidx.compose.ui.test.DeviceConfigurationOverride

DeviceConfigurationOverride(DeviceConfigurationOverride.DarkMode(true)) {
    isSystemInDarkTheme() // will be true
}
```

| Parameters |
|---|---|
| `isDarkMode: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | if `true`, render content under test in dark mode. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the dark mode for the content under test. |

### DeviceConfigurationOverride.Companion.FontScale

Cmn android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.+function:FontScale)

```
fun DeviceConfigurationOverride.Companion.FontScale(fontScale: Float): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the font scale for the contained content.

```kotlin
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.FontScale

DeviceConfigurationOverride(DeviceConfigurationOverride.FontScale(1.5f)) {
    MyScreen() // will be rendered with a larger than default font scale
}
```

| Parameters |
|---|---|
| `fontScale: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | the font scale to use for the content under test. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the font scale for the content under test. |

### DeviceConfigurationOverride.Companion.FontWeightAdjustment

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:FontWeightAdjustment)

```
@RequiresApi(value = 31)
fun DeviceConfigurationOverride.Companion.FontWeightAdjustment(
    fontWeightAdjustment: Int
): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the font weight adjustment for the contained content.

```kotlin
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.FontWeightAdjustment

DeviceConfigurationOverride(DeviceConfigurationOverride.FontWeightAdjustment(200)) {
    MyComponent() // will be rendered with adjusted font weight
}
```

| Parameters |
|---|---|
| `fontWeightAdjustment: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the font weight adjustment to use to render the content under test. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the font weight adjustment for the content under test. |

### DeviceConfigurationOverride.Companion.ForcedSize

Cmn android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.+function:ForcedSize)

```
fun DeviceConfigurationOverride.Companion.ForcedSize(size: DpSize): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the available size for the contained content.

This is only suitable for tests, since this will override `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/package-summary#LocalDensity()` to ensure that the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).ForcedSize(androidx.compose.ui.unit.DpSize)` is met (as opposed to `Modifier.requiredSize` which will result in clipping).

```kotlin
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.ForcedSize
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp

DeviceConfigurationOverride(DeviceConfigurationOverride.ForcedSize(DpSize(1280.dp, 800.dp))) {
    MyScreen() // will be rendered in the space for 1280dp by 800dp without clipping
}
```

| Parameters |
|---|---|
| `size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize` | the `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize` to force the contained content to render in, changing density if necessary |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that forces the content size. |

### DeviceConfigurationOverride.Companion.Keyboard

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:Keyboard)

```
fun DeviceConfigurationOverride.Companion.Keyboard(
    keyboardType: Int,
    isHardKeyboardHidden: Boolean = false,
    isHidden: Boolean = false
): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the current keyboard type.

```kotlin
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.Keyboard

DeviceConfigurationOverride(
    DeviceConfigurationOverride.Keyboard(Configuration.KEYBOARD_QWERTY)
) {
    LocalConfiguration.current.keyboard // will be Configuration.KEYBOARD_QWERTY
}
```

| Parameters |
|---|---|
| `keyboardType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the keyboard type to render content under test in. This should be one of the `Configuration.KEYBOARD_*` types. Value is one of the following: - `1` - `2` - `3` <br /> |
| `isHardKeyboardHidden: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | if `true`, render the content under test with a hidden hard keyboard. |
| `isHidden: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | if `true`, render the content under test with a hidden keyboard. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the keyboard status for the content under test. |

| See also |
|---|---|
| `https://developer.android.com/reference/android/content/res/Configuration.html#keyboard` |   |
| `https://developer.android.com/reference/android/content/res/Configuration.html#keyboardHidden` |   |
| `https://developer.android.com/reference/android/content/res/Configuration.html#hardKeyboardHidden` |   |

### DeviceConfigurationOverride.Companion.LayoutDirection

Cmn android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.+function:LayoutDirection)

```
fun DeviceConfigurationOverride.Companion.LayoutDirection(
    layoutDirection: LayoutDirection
): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the layout direction for the contained content.

```kotlin
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.LayoutDirection
import androidx.compose.ui.unit.LayoutDirection

DeviceConfigurationOverride(DeviceConfigurationOverride.LayoutDirection(LayoutDirection.Rtl)) {
    MyComponent() // will be rendered with a right-to-left layout direction
}
```

| Parameters |
|---|---|
| `layoutDirection: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/LayoutDirection` | the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).LayoutDirection(androidx.compose.ui.unit.LayoutDirection)` to use for the content under test. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the layout direction for the content under test. |

### DeviceConfigurationOverride.Companion.Locales

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:Locales)

```
fun DeviceConfigurationOverride.Companion.Locales(locales: LocaleList): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the locales for the contained content.

This will change resource resolution for the content under test, and also override the layout direction as specified by the locales.

```kotlin
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.Locales
import androidx.compose.ui.text.intl.LocaleList

DeviceConfigurationOverride(DeviceConfigurationOverride.Locales(LocaleList("es-ES"))) {
    MyScreen() // will be rendered with overridden locale
}
```

| Parameters |
|---|---|
| `locales: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/intl/LocaleList` | the `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/intl/LocaleList` to use for the content under test. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the locales for the content under test. |

### DeviceConfigurationOverride.Companion.Navigation

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:Navigation)

```
fun DeviceConfigurationOverride.Companion.Navigation(
    navigationType: Int,
    isHidden: Boolean = false
): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the current navigation type and whether it is hidden.

```kotlin
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.Navigation

DeviceConfigurationOverride(
    DeviceConfigurationOverride.Navigation(
        navigationType = Configuration.NAVIGATION_DPAD,
        isHidden = false,
    )
) {
    LocalConfiguration.current.navigation // will be Configuration.NAVIGATION_DPAD
    LocalConfiguration.current.navigationHidden // will be Configuration.NAVIGATIONHIDDEN_NO
}
```

| Parameters |
|---|---|
| `navigationType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the navigation type to render the content under test in. This should be one of the `Configuration.NAVIGATION_*` values. Value is one of the following: - `1` - `2` - `3` - `4` <br /> |
| `isHidden: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | if `true`, render the content under test with hidden navigation. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the navigation type for the content under test. |

| See also |
|---|---|
| `https://developer.android.com/reference/android/content/res/Configuration.html#navigation` |   |
| `https://developer.android.com/reference/android/content/res/Configuration.html#navigationHidden` |   |

### DeviceConfigurationOverride.Companion.RoundScreen

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:RoundScreen)

```
@RequiresApi(value = 23)
fun DeviceConfigurationOverride.Companion.RoundScreen(
    isScreenRound: Boolean
): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides whether the screen is round for the contained content.

```kotlin
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.RoundScreen

DeviceConfigurationOverride(DeviceConfigurationOverride.RoundScreen(true)) {
    LocalConfiguration.current.isScreenRound // will be true
}
```

| Parameters |
|---|---|
| `isScreenRound: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | if `true`, render content under test in a round screen. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies whether the screen is round for the content under test. |

### DeviceConfigurationOverride.Companion.Touchscreen

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:Touchscreen)

```
fun DeviceConfigurationOverride.Companion.Touchscreen(
    isTouchScreen: Boolean
): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the current touchscreen type.

```kotlin
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.Touchscreen

DeviceConfigurationOverride(DeviceConfigurationOverride.Touchscreen(false)) {
    LocalConfiguration.current.touchscreen // will be Configuration.TOUCHSCREEN_NOTOUCH
}
```

### DeviceConfigurationOverride.Companion.UiMode

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:UiMode)

```
fun DeviceConfigurationOverride.Companion.UiMode(uiModeType: Int): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the current ui mode type.

```kotlin
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.UiMode

DeviceConfigurationOverride(
    DeviceConfigurationOverride.UiMode(Configuration.UI_MODE_TYPE_CAR)
) {
    // will be Configuration.UI_MODE_TYPE_CAR
    LocalConfiguration.current.uiMode and Configuration.UI_MODE_TYPE_MASK
}
```

| Parameters |
|---|---|
| `uiModeType: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the uiMode type to render the content under test in. This should be one of the `Configuration.UI_MODE_TYPE_*` values. Value is one of the following: - `1` - `2` - `3` - `4` - `5` - `6` - `7` <br /> |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the uiMode type for the content under test. |

### DeviceConfigurationOverride.Companion.WindowInsets

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.android.kt+function:WindowInsets)

```
fun DeviceConfigurationOverride.Companion.WindowInsets(
    windowInsets: WindowInsetsCompat
): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the window insets for the contained content.

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.safeDrawingPadding
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.WindowInsets
import androidx.compose.ui.unit.DpRect
import androidx.compose.ui.unit.IntRect
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.roundToIntRect
import androidx.core.view.WindowInsetsCompat

fun IntRect.toAndroidXInsets() = androidx.core.graphics.Insets.of(left, top, right, bottom)

DeviceConfigurationOverride(
    DeviceConfigurationOverride.WindowInsets(
        WindowInsetsCompat.Builder()
            .setInsets(
                WindowInsetsCompat.Type.captionBar(),
                with(LocalDensity.current) { DpRect(0.dp, 64.dp, 0.dp, 0.dp).toRect() }
                    .roundToIntRect()
                    .toAndroidXInsets(),
            )
            .setInsets(
                WindowInsetsCompat.Type.navigationBars(),
                with(LocalDensity.current) { DpRect(24.dp, 0.dp, 48.dp, 24.dp).toRect() }
                    .roundToIntRect()
                    .toAndroidXInsets(),
            )
            .build()
    )
) {
    Box(
        Modifier.background(Color.Blue)
            // Will apply 64dp padding on the top, 24dp padding on the sides, and 48dp on the
            // bottom
            .safeDrawingPadding()
            .background(Color.Red)
    )
}
```

| Parameters |
|---|---|
| `windowInsets: https://developer.android.com/reference/kotlin/androidx/core/view/WindowInsetsCompat` | the `https://developer.android.com/reference/kotlin/androidx/core/view/WindowInsetsCompat` to render the content under test in. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that specifies the window insets for the content under test. |

### DeviceConfigurationOverride.Companion.WindowSize

Cmn android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.+function:WindowSize)

```
fun DeviceConfigurationOverride.Companion.WindowSize(size: DpSize): DeviceConfigurationOverride
```

A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that overrides the window size for the contained content.

Like `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).ForcedSize(androidx.compose.ui.unit.DpSize)`, this is only suitable for tests, since this will override `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/package-summary#LocalDensity()` to ensure that the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).WindowSize(androidx.compose.ui.unit.DpSize)` is met (as opposed to `Modifier.requiredSize` which will result in clipping).

Unlike `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride.Companion).ForcedSize(androidx.compose.ui.unit.DpSize)`, this override will override `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/package-summary#LocalWindowInfo()` and `LocalConfiguration` on Android to reflect the requested size.

```kotlin
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.WindowSize
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp

DeviceConfigurationOverride(DeviceConfigurationOverride.WindowSize(DpSize(1280.dp, 800.dp))) {
    MyScreen() // will be rendered with an apparent window size of 1280dp by 800dp without
    // clipping
}
```

| Parameters |
|---|---|
| `size: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize` | the `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpSize` to force the window size to appear as, changing density if necessary |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that forces the window size. |

### GestureScope.advanceEventTime

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:advanceEventTime) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
@ExperimentalTestApi
fun GestureScope.[advanceEventTime](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).advanceEventTime(kotlin.Long))(durationMillis: Long): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Adds the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).advanceEventTime(kotlin.Long)` to the current event time, delaying the next event by that time. Only valid when a gesture has already been started, or when a finished gesture is resumed.

### MouseInjectionScope.animateMoveAlong

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:animateMoveAlong) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun MouseInjectionScope.animateMoveAlong(
    curve: (timeMillis: Long) -> Offset,
    durationMillis: Long = DefaultMouseGestureDurationMillis
): Unit
```

Move the mouse along the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)` milliseconds. The mouse will initially be moved to the start of the path, `curve(0)`, if it is not already there. The positions defined by the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)` are in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Example of moving the mouse along a curve:

```kotlin
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.test.animateMoveAlong
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performMouseInput

composeTestRule.onNodeWithTag("myComponent").performMouseInput {
    // Hover over the node, making a full circle with a radius of 100px
    val r = 100f
    animateMoveAlong(
        curve = {
            val angle = 2 * PI * it / 1000
            center + Offset(r * cos(angle).toFloat(), r * sin(angle).toFloat())
        },
        durationMillis = 1000L,
    )
}
```

| Parameters |
|---|---|
| `curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The function that defines the position of the mouse over time for this gesture, in the node's local coordinate system. The argument passed to the function is the time in milliseconds since the start of the animated move, and the return value is the location of the mouse at that point in time |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultMouseGestureDurationMillis` | The duration of the gesture. By default 300 milliseconds. |

### TrackpadInjectionScope.animateMoveAlong

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:animateMoveAlong) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.animateMoveAlong(
    curve: (timeMillis: Long) -> Offset,
    durationMillis: Long = DefaultTrackpadGestureDurationMillis
): Unit
```

Move the trackpad along the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)` milliseconds. The trackpad will initially be moved to the start of the path, `curve(0)`, if it is not already there. The positions defined by the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveAlong(kotlin.Function1,kotlin.Long)` are in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Example of moving the trackpad along a curve:

```kotlin
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.test.animateMoveAlong
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performTrackpadInput

composeTestRule.onNodeWithTag("myComponent").performTrackpadInput {
    // Hover over the node, making a full circle with a radius of 100px
    val r = 100f
    animateMoveAlong(
        curve = {
            val angle = 2 * PI * it / 1000
            center + Offset(r * cos(angle).toFloat(), r * sin(angle).toFloat())
        },
        durationMillis = 1000L,
    )
}
```

| Parameters |
|---|---|
| `curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The function that defines the position of the trackpad over time for this gesture, in the node's local coordinate system. The argument passed to the function is the time in milliseconds since the start of the animated move, and the return value is the location of the trackpad at that point in time |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultTrackpadGestureDurationMillis` | The duration of the gesture. By default, 300 milliseconds. |

### MouseInjectionScope.animateMoveBy

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:animateMoveBy) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.animateMoveBy(
    delta: Offset,
    durationMillis: Long = DefaultMouseGestureDurationMillis
): Unit
```

Move the mouse from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope#currentPosition()` by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position where to move the mouse to, relative to the current position of the mouse. For example, \`delta = Offset(100.px, -100.px) will move the mouse 100 pixels to the right and 100 pixels upwards. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultMouseGestureDurationMillis` | The duration of the gesture. By default 300 milliseconds. |

### TrackpadInjectionScope.animateMoveBy

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:animateMoveBy) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.animateMoveBy(
    delta: Offset,
    durationMillis: Long = DefaultTrackpadGestureDurationMillis
): Unit
```

Move the trackpad from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope#currentPosition()` by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveBy(androidx.compose.ui.geometry.Offset,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position where to move the trackpad to, relative to the current position of the trackpad. For example, \`delta = Offset(100.px, -100.px) will move the trackpad 100 pixels to the right and 100 pixels upwards. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultTrackpadGestureDurationMillis` | The duration of the gesture. By default, 300 milliseconds. |

### MouseInjectionScope.animateMoveTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:animateMoveTo) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.animateMoveTo(
    position: Offset,
    durationMillis: Long = DefaultMouseGestureDurationMillis
): Unit
```

Move the mouse from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope#currentPosition()` to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)` milliseconds. `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope#moveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)` the mouse to the desired start position if you want to start from a different position. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Example of moving the mouse along a line:

```kotlin
import androidx.compose.ui.test.animateMoveTo
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performMouseInput

composeTestRule.onNodeWithTag("myComponent").performMouseInput {
    // Hover over the node, making an X shape
    moveTo(topLeft)
    animateMoveTo(bottomRight)
    // Note that an actual user wouldn't be able to instantly
    // move from the bottom right to the top right
    advanceEventTime()
    moveTo(topRight)
    animateMoveTo(bottomLeft)
}
```

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position where to move the mouse to, in the node's local coordinate system |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultMouseGestureDurationMillis` | The duration of the gesture. By default 300 milliseconds. |

### TrackpadInjectionScope.animateMoveTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:animateMoveTo) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.animateMoveTo(
    position: Offset,
    durationMillis: Long = DefaultTrackpadGestureDurationMillis
): Unit
```

Move the trackpad from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope#currentPosition()` to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)`, sending a stream of move events to get an animated path of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)` milliseconds. `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope#moveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)` the trackpad to the desired start position if you want to start from a different position. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).animateMoveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

Example of moving the trackpad along a line:

```kotlin
import androidx.compose.ui.test.animateMoveTo
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performTrackpadInput

composeTestRule.onNodeWithTag("myComponent").performTrackpadInput {
    // Hover over the node, making an X shape
    moveTo(topLeft)
    animateMoveTo(bottomRight)
    // Note that an actual user wouldn't be able to instantly
    // move from the bottom right to the top right
    advanceEventTime()
    moveTo(topRight)
    animateMoveTo(bottomLeft)
}
```

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position where to move the trackpad to, in the node's local coordinate system |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultTrackpadGestureDurationMillis` | The duration of the gesture. By default, 300 milliseconds. |

### SemanticsNodeInteraction.assert

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assert) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assert(
    matcher: SemanticsMatcher,
    messagePrefixOnError: (() -> String)? = null
): SemanticsNodeInteraction
```

Asserts that the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assert(androidx.compose.ui.test.SemanticsMatcher,kotlin.Function0)` is satisfied for this node.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | Matcher to verify. |
| `messagePrefixOnError: (() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)? = null` | Prefix to be put in front of an error that gets thrown in case this assert fails. This can be helpful in situations where this assert fails as part of a bigger operation that used this assert as a precondition check. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if the matcher does not match or the node can no longer be found. |

### SemanticsNodeInteractionCollection.assertAll

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertAll) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.assertAll(
    matcher: SemanticsMatcher
): SemanticsNodeInteractionCollection
```

Asserts that all the nodes in this collection satisfy the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertAll(androidx.compose.ui.test.SemanticsMatcher)`.

This passes also for empty collections.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | Matcher that has to be satisfied by all the nodes in the collection. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if the collection contains at least one element that does not satisfy the given matcher. |

### SemanticsNodeInteractionCollection.assertAny

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertAny) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.assertAny(
    matcher: SemanticsMatcher
): SemanticsNodeInteractionCollection
```

Asserts that this collection contains at least one element that satisfies the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertAny(androidx.compose.ui.test.SemanticsMatcher)`.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | Matcher that has to be satisfied by at least one of the nodes in the collection. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if not at least one matching node was node. |

### SemanticsNodeInteraction.assertContentDescriptionContains

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertContentDescriptionContains) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertContentDescriptionContains(
    value: String,
    substring: Boolean = false,
    ignoreCase: Boolean = false
): SemanticsNodeInteraction
```

Asserts that the node's list of content descriptions contains the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionContains(kotlin.String,kotlin.Boolean,kotlin.Boolean)`.

The `ContentDescription` property is represented as a list of strings. In the merged semantics tree (the default in Compose testing), this list often contains multiple descriptions merged from child nodes. This function evaluates whether any individual item in that list matches the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionContains(kotlin.String,kotlin.Boolean,kotlin.Boolean)`.

By default, this requires an exact string match with at least one complete item in the list.

Typically, accessibility tooling will decide based on its heuristics which descriptions to announce.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node's value list does not contain `value`, or if the node has no value.

```kotlin
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.Icon
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.painter.ColorPainter
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTag
import androidx.compose.ui.test.assertContentDescriptionContains
import androidx.compose.ui.test.onNodeWithTag

composeTestRule.setContent {
    // Explicitly merging descendants to demonstrate list semantics
    Row(Modifier.semantics(mergeDescendants = true) { testTag = "iconRow" }) {
        Icon(ColorPainter(Color.Red), contentDescription = "Navigate Up")
        Icon(ColorPainter(Color.Yellow), contentDescription = "Go Home")
    }
}

// The merged content description list is: ["Navigate Up", "Go Home"]

// "Navigate Up" is an exact match for one of the items in the list.
composeTestRule.onNodeWithTag("iconRow").assertContentDescriptionContains("Navigate Up")

// "Navigate" is a substring of an item in the list, and we explicitly enable substring
// matching.
composeTestRule
    .onNodeWithTag("iconRow")
    .assertContentDescriptionContains("Navigate", substring = true)
```

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Value to match against the items in the list of content descriptions. |
| `substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether this can be satisfied as a substring match of an item in the list of descriptions. Defaults to false. |
| `ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether case should be ignored. Defaults to false. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ContentDescription()` |   |

### SemanticsNodeInteraction.assertContentDescriptionEquals

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertContentDescriptionEquals) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertContentDescriptionEquals(
    vararg values: String
): SemanticsNodeInteraction
```

Asserts that the node's list of content descriptions contains exactly the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionEquals(kotlin.Array)` and nothing else.

The `ContentDescription` property is represented as a list of strings. In the merged semantics tree (the default in Compose testing), this list often contains multiple descriptions merged from child nodes. This function evaluates the entire list.

The assertion will only pass if the node's list contains all the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionEquals(kotlin.Array)`, and contains no additional items. Note that the order of the elements does not matter.

Typically, accessibility tooling will decide based on its heuristics which descriptions to announce.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node's descriptions don't contain all items from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionEquals(kotlin.Array)`, or if the descriptions contain extra items that are not in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertContentDescriptionEquals(kotlin.Array)`.

```kotlin
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.Icon
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.painter.ColorPainter
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTag
import androidx.compose.ui.test.assertContentDescriptionEquals
import androidx.compose.ui.test.onNodeWithTag

composeTestRule.setContent {
    // Explicitly merging descendants to demonstrate list semantics
    Row(Modifier.semantics(mergeDescendants = true) { testTag = "iconRow" }) {
        Icon(ColorPainter(Color.Red), contentDescription = "Navigate Up")
        Icon(ColorPainter(Color.Yellow), contentDescription = "Go Home")
    }
}

// The merged content description list is: ["Navigate Up", "Go Home"]

// We provide all items exactly as they appear in the merged list.
// Order does not matter.
composeTestRule
    .onNodeWithTag("iconRow")
    .assertContentDescriptionEquals("Go Home", "Navigate Up")
```

| Parameters |
|---|---|
| `vararg values: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | List of values to match (the order does not matter). |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ContentDescription()` |   |

### SemanticsNodeInteractionCollection.assertCountEquals

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertCountEquals) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.assertCountEquals(
    expectedSize: Int
): SemanticsNodeInteractionCollection
```

Asserts that this collection of nodes is equal to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertCountEquals(kotlin.Int)`.

Provides a detailed error message on failure.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if the size is not equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).assertCountEquals(kotlin.Int)` |

### SemanticsNodeInteraction.assertHasClickAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertHasClickAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertHasClickAction(): SemanticsNodeInteraction
```

Asserts that the current semantics node has a click action.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is doesn't have a click action.

### SemanticsNodeInteraction.assertHasNoClickAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertHasNoClickAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertHasNoClickAction(): SemanticsNodeInteraction
```

Asserts that the current semantics node has doesn't have a click action.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node has a click action.

### SemanticsNodeInteraction.assertHeightIsAtLeast

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertHeightIsAtLeast) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun SemanticsNodeInteraction.assertHeightIsAtLeast(expectedMinHeight: Dp): SemanticsNodeInteraction
```

Asserts that the layout of this node has height that is greater than or equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHeightIsAtLeast(androidx.compose.ui.unit.Dp)`.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

### SemanticsNodeInteraction.assertHeightIsEqualTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertHeightIsEqualTo) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

```
fun SemanticsNodeInteraction.assertHeightIsEqualTo(
    expectedHeight: Dp,
    tolerance: Dp = Dp.Unspecified
): SemanticsNodeInteraction
```

Asserts that the layout of this node has height equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `expectedHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The expected height of the layout. |
| `tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The tolerance within which the values should be treated as equal. Defaults to the tolerance configured in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig`, or `0.5.dp` if unspecified. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig` |   |

### SemanticsNodeInteraction.assertIsDisplayed

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsDisplayed) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsDisplayed(): SemanticsNodeInteraction
```

Asserts that the current semantics node is displayed on screen.

Specifically, the node must be composed, placed and at least a portion of its bounds must be visible on screen after clipping is applied.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is not displayed.

### SemanticsNodeInteraction.assertIsEnabled

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsEnabled) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsEnabled(): SemanticsNodeInteraction
```

Asserts that the current semantics node is enabled.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is not enabled or does not define the property at all.

### Dp.assertIsEqualTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertIsEqualTo) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun Dp.assertIsEqualTo(expected: Dp, subject: String, tolerance: Dp = Dp(.5f)): Unit
```

Asserts that this value is equal to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.unit.Dp).assertIsEqualTo(androidx.compose.ui.unit.Dp,kotlin.String,androidx.compose.ui.unit.Dp)` value.

Performs the comparison with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.unit.Dp).assertIsEqualTo(androidx.compose.ui.unit.Dp,kotlin.String,androidx.compose.ui.unit.Dp)` or the default one if none is provided. It is recommended to use tolerance when comparing positions and size coming from the framework as there can be rounding operation performed by individual layouts so the values can be slightly off from the expected ones.

| Parameters |
|---|---|
| `expected: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The expected value to which this one should be equal to. |
| `subject: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Used in the error message to identify which item this assertion failed on. |
| `tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp(.5f)` | The tolerance within which the values should be treated as equal. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

### SemanticsNodeInteraction.assertIsFocused

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsFocused) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsFocused(): SemanticsNodeInteraction
```

Asserts that the current semantics node has a focus.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is not in the focus or does not defined the property at all.

### SemanticsNodeInteraction.assertIsNotDisplayed

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsNotDisplayed) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsNotDisplayed(): SemanticsNodeInteraction
```

Asserts that the current semantics node is not displayed on screen, including when the node is not composed, composed but not placed, or when none of its bounds are visible on screen after clipping is applied.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | If the node is displayed. |

### SemanticsNodeInteraction.assertIsNotEnabled

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsNotEnabled) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsNotEnabled(): SemanticsNodeInteraction
```

Asserts that the current semantics node is not enabled.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is enabled or does not defined the property at all.

### SemanticsNodeInteraction.assertIsNotFocused

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsNotFocused) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsNotFocused(): SemanticsNodeInteraction
```

Asserts that the current semantics node does not have a focus.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is in the focus or does not defined the property at all.

### SemanticsNodeInteraction.assertIsNotSelected

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsNotSelected) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsNotSelected(): SemanticsNodeInteraction
```

Asserts that the current semantics node is not selected.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is selected or not selectable.

### SemanticsNodeInteraction.assertIsOff

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsOff) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsOff(): SemanticsNodeInteraction
```

Asserts that the current semantics node is unchecked.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is checked, indeterminate, or not toggleable.

### SemanticsNodeInteraction.assertIsOn

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsOn) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsOn(): SemanticsNodeInteraction
```

Asserts that the current semantics node is checked.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is not unchecked, indeterminate, or not toggleable.

### SemanticsNodeInteraction.assertIsSelectable

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsSelectable) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsSelectable(): SemanticsNodeInteraction
```

Asserts that the current semantics node is selectable.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is not selectable.

### SemanticsNodeInteraction.assertIsSelected

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsSelected) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsSelected(): SemanticsNodeInteraction
```

Asserts that the current semantics node is selected.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is unselected or not selectable.

### SemanticsNodeInteraction.assertIsToggleable

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertIsToggleable) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertIsToggleable(): SemanticsNodeInteraction
```

Asserts that the current semantics node is toggleable.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node is not toggleable.

### SemanticsNodeInteraction.assertLeftPositionInRootIsEqualTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertLeftPositionInRootIsEqualTo) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

```
fun SemanticsNodeInteraction.assertLeftPositionInRootIsEqualTo(
    expectedLeft: Dp,
    tolerance: Dp = Dp.Unspecified
): SemanticsNodeInteraction
```

Asserts that the layout of this node has the left position in the root composable that is equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertLeftPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertLeftPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `expectedLeft: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The left (x) position to assert. |
| `tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The tolerance within which the values should be treated as equal. Defaults to the tolerance configured in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig`, or `0.5.dp` if unspecified. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig` |   |

### SemanticsNodeInteraction.assertPositionInRootIsEqualTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertPositionInRootIsEqualTo) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

```
fun SemanticsNodeInteraction.assertPositionInRootIsEqualTo(
    expectedLeft: Dp,
    expectedTop: Dp,
    tolerance: Dp = Dp.Unspecified
): SemanticsNodeInteraction
```

Asserts that the layout of this node has position in the root composable that is equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `expectedLeft: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The left (x) position to assert. |
| `expectedTop: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The top (y) position to assert. |
| `tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The tolerance within which the values should be treated as equal. Defaults to the tolerance configured in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig`, or `0.5.dp` if unspecified. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig` |   |

### SemanticsNodeInteraction.assertRangeInfoEquals

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertRangeInfoEquals) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertRangeInfoEquals(
    value: ProgressBarRangeInfo
): SemanticsNodeInteraction
```

Asserts the node's range info equals the given value.

For further details please check `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ProgressBarRangeInfo()`. Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node's value is not equal to `value`, or if the node has no value

### SemanticsNodeInteraction.assertTextContains

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertTextContains) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertTextContains(
    value: String,
    substring: Boolean = false,
    ignoreCase: Boolean = false
): SemanticsNodeInteraction
```

Asserts that the node's list of text values contains the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextContains(kotlin.String,kotlin.Boolean,kotlin.Boolean)`.

This will also search in `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#EditableText()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#InputText()`.

The `Text` property is represented as a list of strings. In the merged semantics tree (the default in Compose testing), this list often contains multiple text items merged from child nodes. This function evaluates whether any individual item in that list matches the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextContains(kotlin.String,kotlin.Boolean,kotlin.Boolean)`.

By default, this requires an exact string match with at least one complete item in the list.

Typically, accessibility tooling will decide based on its heuristics which ones to use.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node's value list does not contain `value`, or if the node has no value.

```kotlin
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTag
import androidx.compose.ui.semantics.text
import androidx.compose.ui.test.assertTextContains
import androidx.compose.ui.test.onNodeWithTag

composeTestRule.setContent {
    // Explicitly merging descendants to demonstrate list semantics
    Row(Modifier.semantics(mergeDescendants = true) { testTag = "textRow" }) {
        Text("Hello")
        Text("World")
    }
}

// The merged text list is: ["Hello", "World"]

// "Hello" is an exact match for one of the items in the list.
composeTestRule.onNodeWithTag("textRow").assertTextContains("Hello")

// "Hel" is a substring of an item in the list, and we explicitly enable substring matching.
composeTestRule.onNodeWithTag("textRow").assertTextContains("Hel", substring = true)
```

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Value to match against the items in the list of text values. |
| `substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether this can be satisfied as a substring match of an item in the list of text. Defaults to false. |
| `ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether case should be ignored. Defaults to false. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Text()` |   |

### SemanticsNodeInteraction.assertTextEquals

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertTextEquals)

```
fun SemanticsNodeInteraction.assertTextEquals(
    vararg values: String,
    includeEditableText: Boolean = true,
    includeInputText: Boolean = false
): SemanticsNodeInteraction
```

Asserts that the node's list of text values contains exactly the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextEquals(kotlin.Array,kotlin.Boolean,kotlin.Boolean)` and nothing else.

By default, this searches in `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Text()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#EditableText()`. To also evaluate `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#InputText()` (which holds the raw user input of fields like passwords, bypassing visual transformations), set `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextEquals(kotlin.Array,kotlin.Boolean,kotlin.Boolean)` to `true`.

The `Text` property is represented as a list of strings. In the merged semantics tree (the default in Compose testing), this list often contains multiple text items merged from child nodes. This function evaluates the entire list.

The assertion will only pass if the node's list contains all the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextEquals(kotlin.Array,kotlin.Boolean,kotlin.Boolean)`, and contains no additional items. Note that the order of the elements does not matter.

Typically, accessibility tooling will decide based on its heuristics which ones to use.

Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node's text values don't contain all items from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextEquals(kotlin.Array,kotlin.Boolean,kotlin.Boolean)`, or if the text values contain extra items that are not in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTextEquals(kotlin.Array,kotlin.Boolean,kotlin.Boolean)`.

```kotlin
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.inputText
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTag
import androidx.compose.ui.semantics.text
import androidx.compose.ui.test.assertTextEquals
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.text.AnnotatedString

composeTestRule.setContent {
    // Explicitly merging descendants to demonstrate list semantics
    Row(Modifier.semantics(mergeDescendants = true) { testTag = "textRow" }) {
        Text("First Name:")
        Text("Compose")
    }

    // Simulating a password field where the visual text is masked,
    // but the raw user input is stored in InputText.
    Box(
        Modifier.semantics {
            text = AnnotatedString("(000) 123-4567")
            inputText = AnnotatedString("0001234567")
            testTag = "phoneField"
        }
    )
}

// The merged text list is: ["First Name:", "Compose"]

// We provide all items exactly as they appear in the merged list.
composeTestRule.onNodeWithTag("textRow").assertTextEquals("Compose", "First Name:")

// By default, assertTextEquals evaluates Text (and EditableText),
// but ignores InputText. The evaluated list is simply ["(000) 123-4567"].
composeTestRule.onNodeWithTag("phoneField").assertTextEquals("(000) 123-4567")

// We explicitly opt in to evaluating the InputText property.
composeTestRule
    .onNodeWithTag("phoneField")
    .assertTextEquals("0001234567", "(000) 123-4567", includeInputText = true)
```

| Parameters |
|---|---|
| `vararg values: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | List of values to match (the order does not matter). |
| `includeEditableText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = true` | Whether to also assert against the editable text. Defaults to true. |
| `includeInputText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Whether to also assert against the un-transformed input text. Defaults to false. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#Text()` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#EditableText()` |   |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#InputText()` |   |

### SemanticsNodeInteraction.assertTopPositionInRootIsEqualTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertTopPositionInRootIsEqualTo) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

```
fun SemanticsNodeInteraction.assertTopPositionInRootIsEqualTo(
    expectedTop: Dp,
    tolerance: Dp = Dp.Unspecified
): SemanticsNodeInteraction
```

Asserts that the layout of this node has the top position in the root composable that is equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTopPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTopPositionInRootIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `expectedTop: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The top (y) position to assert. |
| `tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The tolerance within which the values should be treated as equal. Defaults to the tolerance configured in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig`, or `0.5.dp` if unspecified. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig` |   |

### SemanticsNodeInteraction.assertTouchHeightIsEqualTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertTouchHeightIsEqualTo) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

```
fun SemanticsNodeInteraction.assertTouchHeightIsEqualTo(
    expectedHeight: Dp,
    tolerance: Dp = Dp.Unspecified
): SemanticsNodeInteraction
```

Asserts that the touch bounds of this node has height equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchHeightIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `expectedHeight: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The expected touch height of the layout. |
| `tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The tolerance within which the values should be treated as equal. Defaults to the tolerance configured in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig`, or `0.5.dp` if unspecified. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig` |   |

### SemanticsNodeInteraction.assertTouchWidthIsEqualTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertTouchWidthIsEqualTo) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

```
fun SemanticsNodeInteraction.assertTouchWidthIsEqualTo(
    expectedWidth: Dp,
    tolerance: Dp = Dp.Unspecified
): SemanticsNodeInteraction
```

Asserts that the touch bounds of this node has width equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertTouchWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `expectedWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The expected touch width of the layout. |
| `tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The tolerance within which the values should be treated as equal. Defaults to the tolerance configured in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig`, or `0.5.dp` if unspecified. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig` |   |

### SemanticsNodeInteraction.assertValueEquals

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:assertValueEquals) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.assertValueEquals(value: String): SemanticsNodeInteraction
```

Asserts the node's value equals the given value.

For further details please check `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#StateDescription()`. Throws `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node's value is not equal to `value`, or if the node has no value

### SemanticsNodeInteraction.assertWidthIsAtLeast

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertWidthIsAtLeast) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun SemanticsNodeInteraction.assertWidthIsAtLeast(expectedMinWidth: Dp): SemanticsNodeInteraction
```

Asserts that the layout of this node has width that is greater than or equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertWidthIsAtLeast(androidx.compose.ui.unit.Dp)`.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

### SemanticsNodeInteraction.assertWidthIsEqualTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:assertWidthIsEqualTo) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

```
fun SemanticsNodeInteraction.assertWidthIsEqualTo(
    expectedWidth: Dp,
    tolerance: Dp = Dp.Unspecified
): SemanticsNodeInteraction
```

Asserts that the layout of this node has width equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` within the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertWidthIsEqualTo(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)`.

| Parameters |
|---|---|
| `expectedWidth: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | The expected width of the layout. |
| `tolerance: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = Dp.Unspecified` | The tolerance within which the values should be treated as equal. Defaults to the tolerance configured in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig`, or `0.5.dp` if unspecified. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if comparison fails. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTestConfig` |   |

### GestureScope.cancel

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:cancel) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun GestureScope.[cancel](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).cancel())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends a cancel event to cancel the current gesture. The cancel event contains the current position of all active pointers.

### SemanticsNodeInteraction.captureToImage

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/AndroidImageHelpers.android.kt+function:captureToImage)

```
@RequiresApi(value = 26)
fun SemanticsNodeInteraction.captureToImage(timeoutMillis: Long): ImageBitmap
```

Captures the underlying semantics node's surface into an `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/ImageBitmap`.

This can be used to capture nodes in a normal composable, as well as across multiple roots. Popups and Dialogs (if API \>= 28) are specific cases of this, where they can be captured together with their anchor.

For example, selecting the root node (via `onRoot()`) when a popup or dialog is present will detect multiple roots. In this scenario, the resulting image is cropped to the combined bounding box of all nodes across the different roots. If a Dialog is present among the roots, the image is cropped to the window's visible display frame.

| Parameters |
|---|---|
| `timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The maximum time (in ms) to wait for the drawing to complete. Default is 2000 ms. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if an attempt is made to capture a bitmap of a dialog before API 28. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeTimeoutException` | if drawing does not complete within `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).captureToImage(kotlin.Long)`. |

### GestureScope.click

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:click) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[click](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).click(androidx.compose.ui.geometry.Offset))(position: Offset = center): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a click gesture at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).click(androidx.compose.ui.geometry.Offset)` on the associated node, or in the center if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).click(androidx.compose.ui.geometry.Offset)` is omitted. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).click(androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).click(androidx.compose.ui.geometry.Offset)` is the center of the node.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the center position will be used. |

### IndirectPointerInjectionScope.click

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:click) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.click(position: Offset = inputDeviceCenter): Unit
```

Performs a click gesture (aka a tap) on nodes in the focus path.

The click is done at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).click(androidx.compose.ui.geometry.Offset)` within the indirect pointer input device's bounds, or the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceCenter()` if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).click(androidx.compose.ui.geometry.Offset)` is omitted. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).click(androidx.compose.ui.geometry.Offset)` is NOT in the node's local coordinate system (see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`).

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = inputDeviceCenter` | The position where to click, in the indirect pointer input device's coordinate system (`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`). If omitted, the defaultStartLocation will be used. |

### TouchInjectionScope.click

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:click) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun TouchInjectionScope.click(position: Offset = center): Unit
```

Performs a click gesture (aka a tap) on the associated node.

The click is done at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).click(androidx.compose.ui.geometry.Offset)`, or in the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).click(androidx.compose.ui.geometry.Offset)` is omitted. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).click(androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. |

### MouseInjectionScope.click

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:click) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.click(
    position: Offset = center,
    button: MouseButton = MouseButton.Primary
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` to click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` button. There is a small 60ms delay between the press and release events to have a realistic simulation.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current mouse position. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton = MouseButton.Primary` | The button to click with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` by default. |

### TrackpadInjectionScope.click

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:click) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.click(
    position: Offset = center,
    button: TrackpadButton = TrackpadButton.Primary
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` to click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)`, or on the current cursor position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).click(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` button.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current trackpad position. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton = TrackpadButton.Primary` | The button to click with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` by default. |

### MouseInjectionScope.doubleClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:doubleClick) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.doubleClick(
    position: Offset = center,
    button: MouseButton = MouseButton.Primary
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` to double-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` button.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current mouse position. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton = MouseButton.Primary` | The button to click with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` by default. |

### TrackpadInjectionScope.doubleClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:doubleClick) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.doubleClick(
    position: Offset = center,
    button: TrackpadButton = TrackpadButton.Primary
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` to double-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)`, or on the current trackpad position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` button.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current trackpad position. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton = TrackpadButton.Primary` | The button to click with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` by default. |

### GestureScope.doubleClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:doubleClick) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[doubleClick](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long))(
    position: Offset = center,
    delayMillis: Long = doubleClickDelayMillis
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a double click gesture at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` on the associated node, or in the center if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is omitted. By default, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` between the first and the second click is 145 milliseconds (empirically established). The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position of the double click, in the node's local coordinate system. If omitted, the center position will be used. |
| `delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = doubleClickDelayMillis` | The time between the up event of the first click and the down event of the second click |

### IndirectPointerInjectionScope.doubleClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:doubleClick) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.doubleClick(
    position: Offset = inputDeviceCenter,
    delayMillis: Long = viewConfiguration.defaultDoubleTapDelayMillis
): Unit
```

Performs a double click gesture (aka a double tap) on nodes in the focus path.

The double click is done at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` within the indirect pointer input device's bounds or `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceCenter()` if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is omitted. By default, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` between the first and the second click is halfway in between the minimum and maximum required delay for a double click. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is NOT in the node's local coordinate system (see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`).

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = inputDeviceCenter` | The position where to click, in the indirect pointer input device's coordinate system (`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`). If omitted, the defaultStartLocation will be used. |
| `delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = viewConfiguration.defaultDoubleTapDelayMillis` | The time between the up event of the first click and the down event of the second click |

### TouchInjectionScope.doubleClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:doubleClick) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun TouchInjectionScope.doubleClick(
    position: Offset = center,
    delayMillis: Long = viewConfiguration.defaultDoubleTapDelayMillis
): Unit
```

Performs a double click gesture (aka a double tap) on the associated node.

The double click is done at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` or in the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is omitted. By default, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` between the first and the second click is half way in between the minimum and maximum required delay for a double click. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).doubleClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position of the double click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` position will be used. |
| `delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = viewConfiguration.defaultDoubleTapDelayMillis` | The time between the up event of the first click and the down event of the second click |

### GestureScope.down

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:down) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[down](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(androidx.compose.ui.geometry.Offset))(position: Offset): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends a down event for the default pointer at `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(androidx.compose.ui.geometry.Offset)` on the associated node. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default pointer has `pointerId = 0`.

If no pointers are down yet, this will start a new gesture. If a gesture is already in progress, this event is sent with at the same timestamp as the last event. If the default pointer is already down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position of the down event, in the node's local coordinate system |

### GestureScope.down

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:down) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[down](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: Int, position: Offset): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends a down event for the pointer with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` at `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` on the associated node. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

If no pointers are down yet, this will start a new gesture. If a gesture is already in progress, this event is sent with at the same timestamp as the last event. If the given pointer is already down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` will be thrown.

Subsequent events for this or other gestures can be spread out over both this and future invocations of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1)`. An entire gesture starts with a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` event, followed by several down, move or up events, and ends with an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).up(kotlin.Int)` or a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).cancel()` event. Movement can be expressed with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveBy(kotlin.Int,androidx.compose.ui.geometry.Offset)` to move a single pointer at a time, or `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerBy(kotlin.Int,androidx.compose.ui.geometry.Offset)` to move multiple pointers at a time. The `movePointer[To|By]` methods do not send the move event directly, use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).move()` to send the move event. Some other methods can send a move event as well. All events, regardless the method used, will always contain the current position of *all* pointers.

Down and up events are sent at the same time as the previous event, but will send an extra move event just before the down or up event if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerBy(kotlin.Int,androidx.compose.ui.geometry.Offset)` has been called and no move event has been sent yet. This does not happen for cancel events, but the cancel event will contain the up to date position of all pointers. Move and cancel events will advance the event time by 16 milliseconds.

Because gestures don't have to be defined all in the same `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1)` block, keep in mind that while the gesture is not complete, all code you execute in between blocks that progress the gesture, will be executed while imaginary fingers are actively touching the screen.

In the context of testing, it is not necessary to complete a gesture with an up or cancel event, if the test ends before it expects the finger to be lifted from the screen.

| Parameters |
|---|---|
| `pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The id of the pointer, can be any number not yet in use by another pointer |
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position of the down event, in the node's local coordinate system |

### MouseInjectionScope.dragAndDrop

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:dragAndDrop) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.dragAndDrop(
    start: Offset,
    end: Offset,
    button: MouseButton = MouseButton.Primary,
    durationMillis: Long = DefaultMouseGestureDurationMillis
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` to drag and drop something from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` milliseconds. The mouse position is `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope#updatePointerTo(androidx.compose.ui.geometry.Offset)` to the start position before starting the gesture. The positions defined by the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton,kotlin.Long)` are in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position where to press the primary mouse button and initiate the drag, in the node's local coordinate system. |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position where to release the primary mouse button and end the drag, in the node's local coordinate system. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton = MouseButton.Primary` | The button to drag with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` by default. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultMouseGestureDurationMillis` | The duration of the gesture. By default 300 milliseconds. |

### TrackpadInjectionScope.dragAndDrop

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:dragAndDrop) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.dragAndDrop(
    start: Offset,
    end: Offset,
    button: TrackpadButton = TrackpadButton.Primary,
    durationMillis: Long = DefaultTrackpadGestureDurationMillis
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` to drag and drop something from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` milliseconds. The trackpad position is `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope#updatePointerTo(androidx.compose.ui.geometry.Offset)` to the start position before starting the gesture. The positions defined by the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).dragAndDrop(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton,kotlin.Long)` are in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position where to press the primary button and initiate the drag, in the node's local coordinate system. |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position where to release the primary button and end the drag, in the node's local coordinate system. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton = TrackpadButton.Primary` | The button to drag with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` by default. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultTrackpadGestureDurationMillis` | The duration of the gesture. By default, 300 milliseconds. |

### SemanticsNodeInteractionCollection.filter

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:filter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.filter(matcher: SemanticsMatcher): SemanticsNodeInteractionCollection
```

Returns all the nodes matching the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).filter(androidx.compose.ui.test.SemanticsMatcher)`.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | Matcher to use for the filtering. |

### SemanticsNodeInteractionCollection.filterToOne

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:filterToOne) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.filterToOne(
    matcher: SemanticsMatcher
): SemanticsNodeInteraction
```

Expects to return exactly one node matching the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).filterToOne(androidx.compose.ui.test.SemanticsMatcher)`.

Any subsequent operation on its result will expect exactly one element found (unless `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction#assertDoesNotExist()` is used) and will throw `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if no element is found.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | Matcher to use for the filtering. |

### SemanticsNodeInteraction.getAlignmentLinePosition

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:getAlignmentLinePosition) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.getAlignmentLinePosition(
    alignmentLine: AlignmentLine
): Dp
```

Returns the position of an `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/AlignmentLine`, or `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp#Unspecified()` if the line is not provided.

### SemanticsNodeInteraction.getBoundsInRoot

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:getBoundsInRoot) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun SemanticsNodeInteraction.getBoundsInRoot(): DpRect
```

Returns the bounds of the layout of this node as clipped to the root. The bounds are relative to the root composable.

### SemanticsNodeInteraction.getFirstLinkBounds

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:getFirstLinkBounds) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun SemanticsNodeInteraction.getFirstLinkBounds(
    predicate: (AnnotatedString.Range<LinkAnnotation>) -> Boolean = { true }
): Rect?
```

Returns the bounds of the first link matching the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).getFirstLinkBounds(kotlin.Function1)`, or if that link spans multiple lines, returns the bounds of the first line of the link.

A link in a Text composable is defined by a `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/LinkAnnotation` of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/AnnotatedString`.

The bounds are in the text node's coordinate system.

You can pass an offset from within the bounds to injection methods to operate them on the link, for example `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).click(androidx.compose.ui.geometry.Offset)` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope#moveTo(androidx.compose.ui.geometry.Offset,kotlin.Long)`.

```kotlin
import androidx.compose.ui.test.getFirstLinkBounds
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performMouseInput
import androidx.compose.ui.text.LinkAnnotation

// Example of hovering over the first link in test
val firstLinkBounds =
    composeTestRule.onNodeWithText("YOUR_TEXT_WITH_LINK").getFirstLinkBounds {
        (it.item as? LinkAnnotation.Url)?.url == "YOUR_URL"
    }

composeTestRule.onNodeWithText("YOUR_TEXT_WITH_LINK").performMouseInput {
    moveTo(firstLinkBounds!!.center)
}
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performFirstLinkClick(kotlin.Function1)` |   |

### SemanticsNodeInteraction.getUnclippedBoundsInRoot

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/BoundsAssertions.kt+function:getUnclippedBoundsInRoot) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.getUnclippedBoundsInRoot(): DpRect
```

Returns the bounds of the layout of this node. The bounds are relative to the root composable.

### SemanticsNodeInteraction.invokeGlobalAssertions

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GlobalAssertions.kt+function:invokeGlobalAssertions) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0) Deprecated in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0)

```
@ExperimentalTestApi
fun SemanticsNodeInteraction.[invokeGlobalAssertions](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).invokeGlobalAssertions())(): SemanticsNodeInteraction
```

> [!CAUTION]
> **This function is deprecated.**   
> This API has been removed and its intended usage to run accessibility checks can now be done via \`SemanticsNodeInteraction.tryPerformAccessibilityChecks()\`, use this instead:
>
> ```kotlin
> tryPerformAccessibilityChecks()
> ```

Executes all of the assertions registered by `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#addGlobalAssertion(kotlin.String,kotlin.Function1)`. This may be useful in a custom test action.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

### SemanticsNodeInteractionCollection.invokeGlobalAssertions

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GlobalAssertions.kt+function:invokeGlobalAssertions) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0) Deprecated in [1.9.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.9.0)

```
@ExperimentalTestApi
fun SemanticsNodeInteractionCollection.[invokeGlobalAssertions](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).invokeGlobalAssertions())(): SemanticsNodeInteractionCollection
```

> [!CAUTION]
> **This function is deprecated.**   
> This API has been removed and its intended usage to run accessibility checks can now be done via \`SemanticsNodeInteraction.tryPerformAccessibilityChecks()\`, use this instead:
>
> ```kotlin
> onFirst().tryPerformAccessibilityChecks()
> ```

Executes all of the assertions registered by `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#addGlobalAssertion(kotlin.String,kotlin.Function1)`, each of which will receive the first node of this collection. This may be useful in a custom test action.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` | the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionCollection` that is the receiver of this method |

### SemanticsNodeInteraction.isDisplayed

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:isDisplayed) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0)

```
fun SemanticsNodeInteraction.isDisplayed(): Boolean
```

Returns true if the matched node is displayed on screen.

Specifically, the node must be composed, placed and at least a portion of its bounds must be visible on screen after clipping is applied. If no matching node is found, returns false. If multiple nodes match, throws an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html`.

```kotlin
import androidx.compose.ui.test.isDisplayed
import androidx.compose.ui.test.onNodeWithTag

val interaction = composeTestRule.onNodeWithTag("test")
composeTestRule.waitUntil { interaction.isDisplayed() }
```

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | If multiple nodes match this `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsDisplayed()` |   |

### ComposeUiTest.isIdlingResourceSupported

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.kt+function:isIdlingResourceSupported)

```
fun ComposeUiTest.isIdlingResourceSupported(): Boolean
```

Capability query to determine if the current `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest` implementation supports registering an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource`.

While `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` is supported on Android and Desktop, currently it is not available on all targets (such as Web).

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the implementation supports `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` registration, false otherwise. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResourceOwner` |   |

### SemanticsNodeInteraction.isNotDisplayed

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Assertions.kt+function:isNotDisplayed) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0)

```
fun SemanticsNodeInteraction.isNotDisplayed(): Boolean
```

Returns true if the matched node is not displayed on screen, including when the node is not composed, composed but not placed, or when none of its bounds are visible on screen after clipping is applied.

Returns false if a matching node is currently displayed.

```kotlin
import androidx.compose.ui.test.isNotDisplayed
import androidx.compose.ui.test.onNodeWithTag

val interaction = composeTestRule.onNodeWithTag("test")
composeTestRule.waitUntil { interaction.isNotDisplayed() }
```

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | If multiple nodes match this `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).assertIsNotDisplayed()` |   |

### MouseInjectionScope.longClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:longClick) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.longClick(
    position: Offset = center,
    button: MouseButton = MouseButton.Primary
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` to long-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` button.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current mouse position. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton = MouseButton.Primary` | The button to click with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` by default. |

### TrackpadInjectionScope.longClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:longClick) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.longClick(
    position: Offset = center,
    button: TrackpadButton = TrackpadButton.Primary
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` to long-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)`, or on the current trackpad position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).longClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` button.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current trackpad position. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton = TrackpadButton.Primary` | The button to click with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` by default. |

### GestureScope.longClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:longClick) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[longClick](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long))(
    position: Offset = center,
    durationMillis: Long = LongPressTimeoutMillis + 100
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a long click gesture at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` on the associated node, or in the center if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is omitted. By default, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` of the press is `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#LongPressTimeoutMillis()` + 100 milliseconds. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position of the long click, in the node's local coordinate system. If omitted, the center position will be used. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = LongPressTimeoutMillis + 100` | The time between the down and the up event |

### IndirectPointerInjectionScope.longClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:longClick) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.longClick(
    position: Offset = inputDeviceCenter,
    durationMillis: Long = viewConfiguration.longPressTimeoutMillis + 100
): Unit
```

Performs a long click gesture (aka a long press) on nodes in the focus path.

The long click is done at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` within the indirect pointer input device's bounds, or `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceCenter()` if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is omitted. By default, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` of the press is 100ms longer than the minimum required duration for a long press. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is NOT in the node's local coordinate system (see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`).

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = inputDeviceCenter` | The position where to click, in the indirect pointer input device's coordinate system (see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`). If omitted, the defaultStartLocation will be used. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = viewConfiguration.longPressTimeoutMillis + 100` | The time between the down and the up event. |

### TouchInjectionScope.longClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:longClick) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun TouchInjectionScope.longClick(
    position: Offset = center,
    durationMillis: Long = viewConfiguration.longPressTimeoutMillis + 100
): Unit
```

Performs a long click gesture (aka a long press) on the associated node.

The long click is done at the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)`, or in the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` if the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is omitted. By default, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` of the press is 100ms longer than the minimum required duration for a long press. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).longClick(androidx.compose.ui.geometry.Offset,kotlin.Long)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position of the long click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = viewConfiguration.longPressTimeoutMillis + 100` | The time between the down and the up event |

### GestureScope.move

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:move) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun GestureScope.[move](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).move())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends a move event without updating any of the pointer positions. This can be useful when batching movement of multiple pointers together, which can be done with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerBy(kotlin.Int,androidx.compose.ui.geometry.Offset)`.

### GestureScope.moveBy

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:moveBy) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[moveBy](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveBy(androidx.compose.ui.geometry.Offset))(delta: Offset): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends a move event on the associated node, with the position of the default pointer moved by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveBy(androidx.compose.ui.geometry.Offset)`. The default pointer has `pointerId = 0`.

If the pointer is not yet down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position for this move event, relative to the last sent position of the pointer. For example, \`delta = Offset(10.px, -10.px) will add 10.px to the pointer's last x-position, and subtract 10.px from the pointer's last y-position. |

### GestureScope.moveBy

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:moveBy) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[moveBy](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveBy(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: Int, delta: Offset): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends a move event on the associated node, with the position of the pointer with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveBy(kotlin.Int,androidx.compose.ui.geometry.Offset)` moved by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveBy(kotlin.Int,androidx.compose.ui.geometry.Offset)`.

If the pointer is not yet down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The id of the pointer to move, as supplied in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` |
| `delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position for this move event, relative to the last sent position of the pointer. For example, \`delta = Offset(10.px, -10.px) will add 10.px to the pointer's last x-position, and subtract 10.px from the pointer's last y-position. |

### GestureScope.movePointerBy

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:movePointerBy) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[movePointerBy](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerBy(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: Int, delta: Offset): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`, use this instead:
>
> ```kotlin
> updatePointerBy(pointerId, delta)
> ```

Moves the position of the pointer with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerBy(kotlin.Int,androidx.compose.ui.geometry.Offset)` by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerBy(kotlin.Int,androidx.compose.ui.geometry.Offset)`, but does not send a move event. The move event can be sent with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).move()`.

If the pointer is not yet down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The id of the pointer to move, as supplied in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` |
| `delta: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position for this move event, relative to the last sent position of the pointer. For example, \`delta = Offset(10.px, -10.px) will add 10.px to the pointer's last x-position, and subtract 10.px from the pointer's last y-position. |

### GestureScope.movePointerTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:movePointerTo) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[movePointerTo](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: Int, position: Offset): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`, use this instead:
>
> ```kotlin
> updatePointerTo(pointerId, position)
> ```

Updates the position of the pointer with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset)`, but does not send a move event. The move event can be sent with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).move()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0.px, 0.px) is the top left corner of the node.

If the pointer is not yet down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The id of the pointer to move, as supplied in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` |
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The new position of the pointer, in the node's local coordinate system |

### GestureScope.moveTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:moveTo) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[moveTo](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(androidx.compose.ui.geometry.Offset))(position: Offset): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends a move event on the associated node, with the position of the default pointer updated to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(androidx.compose.ui.geometry.Offset)`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default pointer has `pointerId = 0`.

If the default pointer is not yet down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The new position of the pointer, in the node's local coordinate system |

### GestureScope.moveTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:moveTo) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[moveTo](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(kotlin.Int,androidx.compose.ui.geometry.Offset))(pointerId: Int, position: Offset): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends a move event on the associated node, with the position of the pointer with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` updated to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(kotlin.Int,androidx.compose.ui.geometry.Offset)`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).moveTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

If the pointer is not yet down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The id of the pointer to move, as supplied in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` |
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The new position of the pointer, in the node's local coordinate system |

### IndirectPointerInjectionScope.multiTouchSwipe

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:multiTouchSwipe)

```
fun IndirectPointerInjectionScope.multiTouchSwipe(
    curves: List<(timeMillis: Long) -> Offset>,
    durationMillis: Long = 200,
    keyTimes: List<Long> = emptyList()
): Unit
```

Performs a multitouch swipe gesture on nodes in the focus path.

Each pointer follows `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).multiTouchSwipe(kotlin.collections.List,kotlin.Long,kotlin.collections.List)` from 0 till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).multiTouchSwipe(kotlin.collections.List,kotlin.Long,kotlin.collections.List)`. Sampling of an event is forced at all times defined in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).multiTouchSwipe(kotlin.collections.List,kotlin.Long,kotlin.collections.List)`. The time between events is kept as close to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#eventPeriodMillis()` as possible, given the constraints.

The coordinates are NOT in the node's local coordinate system (see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`) and is usually used for focused movement (that is, a focused node would move to the next/previous focusable node in the hierarchy with a swipe).

| Parameters |
|---|---|
| `curves: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<(timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset>` | The functions that describe the gesture. Function *i* defines the position over time for pointer id *i*. The argument passed to each function is the time in milliseconds since the start of the swipe, and the return value is the location of that pointer at that point in time. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the gesture (default duration is 200 milliseconds) |
| `keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> = emptyList()` | An optional list of timestamps in milliseconds at which a move event must be sampled |

### TouchInjectionScope.multiTouchSwipe

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:multiTouchSwipe)

```
fun TouchInjectionScope.multiTouchSwipe(
    curves: List<(timeMillis: Long) -> Offset>,
    durationMillis: Long = 200,
    keyTimes: List<Long> = emptyList()
): Unit
```

Performs a multi touch swipe gesture on the associated node.

Each pointer follows `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).multiTouchSwipe(kotlin.collections.List,kotlin.Long,kotlin.collections.List)`\[i\] from 0 till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).multiTouchSwipe(kotlin.collections.List,kotlin.Long,kotlin.collections.List)`. Sampling of an event is forced at all times defined in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).multiTouchSwipe(kotlin.collections.List,kotlin.Long,kotlin.collections.List)`. The time between events is kept as close to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#eventPeriodMillis()` as possible, given the constraints. The coordinates are in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default duration is 200 milliseconds.

| Parameters |
|---|---|
| `curves: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<(timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset>` | The functions that describe the gesture. Function *i* defines the position over time for pointer id *i*. The argument passed to each function is the time in milliseconds since the start of the swipe, and the return value is the location of that pointer at that point in time. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the gesture |
| `keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> = emptyList()` | An optional list of timestamps in milliseconds at which a move event must be sampled |

### SemanticsNodeInteractionsProvider.onAllNodesWithContentDescription

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Finders.kt+function:onAllNodesWithContentDescription) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionsProvider.onAllNodesWithContentDescription(
    label: String,
    substring: Boolean = false,
    ignoreCase: Boolean = false,
    useUnmergedTree: Boolean = false
): SemanticsNodeInteractionCollection
```

Finds all semantics nodes with the given label as content description.

For usage patterns and semantics concepts see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`

| Parameters |
|---|---|
| `label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to search for. |
| `substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, allows matches where the label is a substring of the content description. |
| `ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, does a case-insensitive search. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider#onAllNodes(androidx.compose.ui.test.SemanticsMatcher,kotlin.Boolean)` | for more information. |

### SemanticsNodeInteractionsProvider.onAllNodesWithTag

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Finders.kt+function:onAllNodesWithTag) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionsProvider.onAllNodesWithTag(
    testTag: String,
    useUnmergedTree: Boolean = false
): SemanticsNodeInteractionCollection
```

Finds all semantics nodes identified by the given tag.

For usage patterns and semantics concepts see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`

| Parameters |
|---|---|
| `testTag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The tag to search for. Looks for exact matches only. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider#onAllNodes(androidx.compose.ui.test.SemanticsMatcher,kotlin.Boolean)` | for more information. |

### SemanticsNodeInteractionsProvider.onAllNodesWithText

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Finders.kt+function:onAllNodesWithText) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionsProvider.onAllNodesWithText(
    text: String,
    substring: Boolean = false,
    ignoreCase: Boolean = false,
    useUnmergedTree: Boolean = false
): SemanticsNodeInteractionCollection
```

Finds all semantics nodes with the given text.

For usage patterns and semantics concepts see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to search for. |
| `substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, allows matches where the label is a substring of the content description. |
| `ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, does a case-insensitive search. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider#onAllNodes(androidx.compose.ui.test.SemanticsMatcher,kotlin.Boolean)` | for more information. |

### SemanticsNodeInteraction.onAncestors

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onAncestors) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.onAncestors(): SemanticsNodeInteractionCollection
```

Returns all the ancestors of this node.

Example: For the following tree

```kotlin
|-A
  |-B
    |-C <- this node
```

Returns B, A

### SemanticsNodeInteraction.onChild

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onChild) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.onChild(): SemanticsNodeInteraction
```

Returns exactly one child of this node.

Use this only if this node has exactly one child.

Any subsequent operation on its result will expect exactly one element found (unless `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction#assertDoesNotExist()` is used) and will throw `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if none or more than one element is found.

### SemanticsNodeInteraction.onChildAt

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onChildAt) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.onChildAt(index: Int): SemanticsNodeInteraction
```

Returns child of this node at the given index.

This is just a shortcut for "children`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).onChildAt(kotlin.Int)`".

### SemanticsNodeInteraction.onChildren

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onChildren) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.onChildren(): SemanticsNodeInteractionCollection
```

Returns children of this node at the moment of invocation, it only captures nodes that are currently present in the semantic tree.

This is especially relevant for lazy layouts like 'LazyColumn' or 'LazyRow' where only a subset of items are currently composed and exist in the tree. Therefore, this function will only return those currently composed items, not all the items in the backing data set.

### SemanticsNodeInteraction.onDescendants

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onDescendants) Added in [1.13.0-rc01](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.13.0-rc01)

```
fun SemanticsNodeInteraction.onDescendants(): SemanticsNodeInteractionCollection
```

Returns all the descendants of this node in Depth-First Search order.

Example: For the following tree

```kotlin
|-A <- this node
  |-B
    |-C
  |-D
    |-E
```

Returns B, C, D, E

### SemanticsNodeInteractionCollection.onFirst

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onFirst) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.onFirst(): SemanticsNodeInteraction
```

Returns the first node in this collection.

Any subsequent operation on its result will expect exactly one element found (unless `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction#assertDoesNotExist()` is used) and will throw `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if no element is found.

### SemanticsNodeInteractionCollection.onLast

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onLast) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.onLast(): SemanticsNodeInteraction
```

Returns the last node in this collection.

Any subsequent operation on its result will expect exactly one element found (unless `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction#assertDoesNotExist()` is used) and will throw `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if no element is found.

### SemanticsNodeInteractionsProvider.onNodeWithContentDescription

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Finders.kt+function:onNodeWithContentDescription) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionsProvider.onNodeWithContentDescription(
    label: String,
    substring: Boolean = false,
    ignoreCase: Boolean = false,
    useUnmergedTree: Boolean = false
): SemanticsNodeInteraction
```

Finds a semantics node with the given content description.

For usage patterns and semantics concepts see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`

| Parameters |
|---|---|
| `label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to search for. |
| `substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, allows matches where the label is a substring of the content description. |
| `ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, does a case-insensitive search. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider#onNode(androidx.compose.ui.test.SemanticsMatcher,kotlin.Boolean)` | for more information. |

### SemanticsNodeInteractionsProvider.onNodeWithTag

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Finders.kt+function:onNodeWithTag) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionsProvider.onNodeWithTag(
    testTag: String,
    useUnmergedTree: Boolean = false
): SemanticsNodeInteraction
```

Finds a semantics node identified by the given tag.

For usage patterns and semantics concepts see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`

| Parameters |
|---|---|
| `testTag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The tag to search for. Looks for an exact match only. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider#onNode(androidx.compose.ui.test.SemanticsMatcher,kotlin.Boolean)` | for more information. |

### SemanticsNodeInteractionsProvider.onNodeWithText

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Finders.kt+function:onNodeWithText) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionsProvider.onNodeWithText(
    text: String,
    substring: Boolean = false,
    ignoreCase: Boolean = false,
    useUnmergedTree: Boolean = false
): SemanticsNodeInteraction
```

Finds a semantics node with the given text.

For usage patterns and semantics concepts see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The text to search for. |
| `substring: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, allows matches where the label is a substring of the content description. |
| `ignoreCase: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, does a case-insensitive search. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider#onNode(androidx.compose.ui.test.SemanticsMatcher,kotlin.Boolean)` | for more information. |

### SemanticsNodeInteraction.onParent

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onParent) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.onParent(): SemanticsNodeInteraction
```

Returns a parent of this node.

Any subsequent operation on its result will expect exactly one element found (unless `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction#assertDoesNotExist()` is used) and will throw `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if none or more than one element is found.

### SemanticsNodeInteractionsProvider.onRoot

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Finders.kt+function:onRoot) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionsProvider.onRoot(
    useUnmergedTree: Boolean = false
): SemanticsNodeInteraction
```

Finds the root semantics node of the Compose tree.

Useful for example for screenshot tests of the entire scene.

For usage patterns and semantics concepts see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction`

| Parameters |
|---|---|
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

### ComposeUiTest.onRootWithViewInteraction

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeTestInteropExt.android.kt+function:onRootWithViewInteraction)

```
fun ComposeUiTest.onRootWithViewInteraction(interaction: ViewInteraction): SemanticsNodeInteractionsProvider
```

Scopes Compose interactions to the `https://developer.android.com/reference/android/view/View.html` hierarchy matched by an Espresso `https://developer.android.com/reference/kotlin/androidx/test/espresso/ViewInteraction`.

Resolves the `https://developer.android.com/reference/android/view/View.html` from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).onRootWithViewInteraction(androidx.test.espresso.ViewInteraction)`, locates all Compose roots within that hierarchy, and creates a scoped `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider`.

```kotlin
import androidx.compose.ui.test.junit4.onRootWithViewInteraction
import androidx.compose.ui.test.onNodeWithContentDescription
import androidx.compose.ui.test.performClick
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.matcher.ViewMatchers.withId

// Select the "Header" View container
val headerInteraction = onView(withId(header_id))

// Scope the Compose interaction to only the Header
composeTestRule
    .onRootWithViewInteraction(headerInteraction)
    .onNodeWithContentDescription("Settings")
    .performClick()
```

```kotlin
import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.junit4.onRootWithViewInteraction
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performClick
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText

// Select the specific View row containing "Item #5"
val specificRowInteraction =
    onView(allOf(withId(recycler_item_root_id), hasDescendant(withText("Item #5"))))

// Scope interaction to that specific row View
composeTestRule
    .onRootWithViewInteraction(specificRowInteraction)
    .onNodeWithTag("fav_icon")
    .assertIsDisplayed()
    .performClick()
```

```kotlin
import androidx.compose.ui.test.assertIsEnabled
import androidx.compose.ui.test.junit4.onRootWithViewInteraction
import androidx.compose.ui.test.onNodeWithText
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.matcher.ViewMatchers.withId

// Select the container for the Detail Fragment
val detailContainerInteraction = onView(withId(detail_fragment_container_id))

// Assert that the submit button exists/is enabled only in the detail fragment
composeTestRule
    .onRootWithViewInteraction(detailContainerInteraction)
    .onNodeWithText("Submit")
    .assertIsEnabled()
```

| Parameters |
|---|---|
| `interaction: https://developer.android.com/reference/kotlin/androidx/test/espresso/ViewInteraction` | `https://developer.android.com/reference/kotlin/androidx/test/espresso/ViewInteraction` matching the target `https://developer.android.com/reference/android/view/View.html` hierarchy |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider` | scoped `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteractionsProvider` for the matched `https://developer.android.com/reference/android/view/View.html` hierarchy |

### SemanticsNodeInteraction.onSibling

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onSibling) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.onSibling(): SemanticsNodeInteraction
```

Returns exactly one sibling of this node.

Use this only if this node has exactly one sibling.

Any subsequent operation on its result will expect exactly one element found (unless `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction#assertDoesNotExist()` is used) and will throw `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if none or more than one element is found.

### SemanticsNodeInteraction.onSiblings

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Selectors.kt+function:onSiblings) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.onSiblings(): SemanticsNodeInteractionCollection
```

Returns all siblings of this node.

Example: For the following tree

```kotlin
|-A
  |-B1
  |-B2 <- this node
  |-B3
```

Returns B1, B3

### TrackpadInjectionScope.pan

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:pan) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.pan(offset: Offset): Unit
```

Sends a pan gesture with the given total `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).pan(androidx.compose.ui.geometry.Offset)`. The event will be sent starting at the current event time.

To send a pan gesture with a curve, use `pan(curve, durationMillis, keyTimes)`.

```kotlin
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.pan
import androidx.compose.ui.test.performTrackpadInput

composeTestRule.onNodeWithTag("verticalScrollable").performTrackpadInput {
    pan(Offset(0f, 100f))
}
```

| Parameters |
|---|---|
| `offset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The amount of pan |

### TrackpadInjectionScope.pan

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:pan) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.pan(
    curve: (timeMillis: Long) -> Offset,
    durationMillis: Long = 200,
    keyTimes: List<Long> = emptyList()
): Unit
```

Sends a pan gesture with the offsets in the panning coordinate space following the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).pan(kotlin.Function1,kotlin.Long,kotlin.collections.List)`. It is expected that the curve starts at `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Zero()`, as a pan gesture starts with no delta, and then move outward from the origin.

To send a pan with just a single amount, use `pan(offset)`.

| Parameters |
|---|---|
| `curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The function that describes the gesture. The argument passed to the function is the time in milliseconds since the start of the swipe, and the return value is the location of the pan from the origin at that point in time. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the gesture |
| `keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> = emptyList()` | An optional list of timestamps in milliseconds at which a pan move event must be sampled |

### TrackpadInjectionScope.panWithVelocity

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:panWithVelocity) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.panWithVelocity(
    offset: Offset,
    endVelocity: @FloatRange(from = 0.0) Float,
    durationMillis: Long = VelocityPathFinder.calculateDefaultDuration(Offset.Zero, offset, endVelocity)
): Unit
```

Performs a pan gesture on the associated node such that it ends with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).panWithVelocity(androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`.

The pan will go from `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Zero()` at t=0 to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).panWithVelocity(androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)` at t=`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).panWithVelocity(androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`. In between, the pan will go monotonically from `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Zero()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).panWithVelocity(androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`, but not strictly. Due to imprecision, no guarantees can be made for the actual velocity at the end of the gesture, but generally it is within 0.1 of the desired velocity.

When a pan cannot be created that results in the desired velocity (because the input is too restrictive), an exception will be thrown with suggestions to fix the input.

The coordinates are in the pan coordinate system, which has the same scale as the display in pixel coordinates, where `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Zero()` indicates no panning.

Use `pan(curve, duration, durationMillis)` to directly control the curve of the pan.

| Parameters |
|---|---|
| `offset: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the pan |
| `endVelocity: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The velocity of the gesture at the moment it ends in px/second. Must be positive. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = VelocityPathFinder.calculateDefaultDuration(Offset.Zero, offset, endVelocity)` | The duration of the gesture in milliseconds. Must be long enough that at least 3 input events are generated, which happens with a duration of 40ms or more. If omitted, a duration is calculated such that a valid pan with velocity can be created. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | When no pan can be generated that will result in the desired velocity. The error message will suggest changes to the input parameters such that a pan will become feasible. |

### GestureScope.percentOffset

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:percentOffset) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun GestureScope.[percentOffset](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).percentOffset(kotlin.Float,kotlin.Float))(x: Float = 0.0f, y: Float = 0.0f): Offset
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Creates an `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` relative to the size of the node we're interacting with. `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).percentOffset(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).percentOffset(kotlin.Float,kotlin.Float)` are fractions of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).width()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).height()`, between `-1` and `1`. Note that `percentOffset(1f, 1f) != bottomRight`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()`.

For example: `percentOffset(.5f, .5f)` is the same as the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).center()`; `centerLeft + percentOffset(.1f, 0f)` is a point 10% inward from the middle of the left edge; and `bottomRight - percentOffset(.2f, .1f)` is a point 20% to the left and 10% to the top of the bottom right corner.

### SemanticsNodeInteraction.performClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performClick) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performClick(): SemanticsNodeInteraction
```

Performs a click action on the element represented by the given semantics node. Depending on the platform this may be implemented by a touch click (tap), a mouse click, or another more appropriate method for that platform.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

### SemanticsNodeInteraction.performCustomAccessibilityActionWithLabel

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performCustomAccessibilityActionWithLabel) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0)

```
@ExperimentalTestApi
fun SemanticsNodeInteraction.performCustomAccessibilityActionWithLabel(
    label: String
): SemanticsNodeInteraction
```

Finds the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` in the node's `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#CustomActions()` list whose label is equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabel(kotlin.String)` and then invokes it.

To use your own logic to find the action to perform instead of matching on the full label, use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabelMatching(kotlin.String,kotlin.Function1)`.

| Parameters |
|---|---|
| `label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The exact label of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` to perform. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | If no `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsNode` is found, or no `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` has `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabel(kotlin.String)`, or more than one `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` has `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabel(kotlin.String)`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabelMatching(kotlin.String,kotlin.Function1)` |   |

### SemanticsNodeInteraction.performCustomAccessibilityActionWithLabelMatching

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performCustomAccessibilityActionWithLabelMatching) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0)

```
@ExperimentalTestApi
fun SemanticsNodeInteraction.performCustomAccessibilityActionWithLabelMatching(
    predicateDescription: String? = null,
    labelPredicate: (label: String) -> Boolean
): SemanticsNodeInteraction
```

Finds the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` in the node's `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#CustomActions()` list whose label satisfies a predicate function and then invokes it.

| Parameters |
|---|---|
| `predicateDescription: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html? = null` | A description of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabelMatching(kotlin.String,kotlin.Function1)` that will be included in the error message if zero or \>1 actions match. |
| `labelPredicate: (label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | A predicate function used to select the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` to perform. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | If no `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsNode` is found, or no `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` matches `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabelMatching(kotlin.String,kotlin.Function1)`, or more than one `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/CustomAccessibilityAction` matches `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabelMatching(kotlin.String,kotlin.Function1)`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performCustomAccessibilityActionWithLabel(kotlin.String)` |   |

### SemanticsNodeInteraction.performFirstLinkClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performFirstLinkClick) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun SemanticsNodeInteraction.performFirstLinkClick(
    predicate: (AnnotatedString.Range<LinkAnnotation>) -> Boolean = { true }
): SemanticsNodeInteraction
```

For a first link matching the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performFirstLinkClick(kotlin.Function1)` performs a click on it.

A link in a Text composable is defined by a `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/LinkAnnotation` of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/text/AnnotatedString`.

```kotlin
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performFirstLinkClick
import androidx.compose.ui.text.LinkAnnotation

// Example of clicking on a link in test
composeTestRule.onNodeWithText("YOUR_TEXT_WITH_LINK").performFirstLinkClick {
    (it.item as? LinkAnnotation.Url)?.url == "YOUR_URL"
}
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).getFirstLinkBounds(kotlin.Function1)` |   |

### SemanticsNodeInteraction.performGesture

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performGesture) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun SemanticsNodeInteraction.[performGesture](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1))(block: GestureScope.() -> Unit): SemanticsNodeInteraction
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by performTouchInput, use this instead:
>
> ```kotlin
> performTouchInput(block)
> ```

Executes the (partial) gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1)`. The gesture doesn't need to be complete and can be resumed in a later invocation of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1)`. The event time is initialized to the current time of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`.

Be aware that if you split a gesture over multiple invocations of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1)`, everything that happens in between will run as if the gesture is still ongoing (imagine a finger still touching the screen).

All events that are injected from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1)` are batched together and sent after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1)` is complete. This method blocks while the events are injected. If an error occurs during execution of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performGesture(kotlin.Function1)` or injection of the events, all (subsequent) events are dropped and the error is thrown here.

Due to the batching of events, all events in a block are sent together and no recomposition will take place in between events. Additionally all events will be generated before any of the events take effect. This means that the screen coordinates of all events are resolved before any of the events can cause the position of the node being injected into to change. This has certain advantages, for example, in the cases of nested scrolling or dragging an element around, it prevents the injection of events into a moving target since all events are enqueued before any of them has taken effect.

Example of performing a click:

```kotlin
import androidx.compose.ui.test.click
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performGesture

composeTestRule.onNodeWithTag("myComponent").performGesture { click() }
```

| Parameters |
|---|---|
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A lambda with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/GestureScope` as receiver that describes the gesture by sending all touch events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

### SemanticsNodeInteraction.performImeAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TextActions.kt+function:performImeAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performImeAction(): Unit
```

Sends to this node the IME action associated with it in a similar way to the IME.

The node needs to define its IME action in semantics via `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/package-summary#(androidx.compose.ui.semantics.SemanticsPropertyReceiver).onImeAction(androidx.compose.ui.text.input.ImeAction,kotlin.String,kotlin.Function0)`.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if the node does not support input or does not define IME action. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if the node did is not an editor or would not be able to establish an input connection (e.g. does not define `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#ImeAction()` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#OnImeAction()` or is not focused). |

### SemanticsNodeInteraction.performKeyInput

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performKeyInput) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
fun SemanticsNodeInteraction.performKeyInput(block: KeyInjectionScope.() -> Unit): SemanticsNodeInteraction
```

Executes the key input gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performKeyInput(kotlin.Function1)`. The gesture doesn't need to be complete and can be resumed in a later invocation of one of the `perform.*Input` methods. The event time is initialized to the current time of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`.

All events that are injected from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performKeyInput(kotlin.Function1)` are batched together and sent after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performKeyInput(kotlin.Function1)` is complete. This method blocks while the events are injected. If an error occurs during execution of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performKeyInput(kotlin.Function1)` or injection of the events, all (subsequent) events are dropped and the error is thrown here.

Due to the batching of events, all events in a block are sent together and no recomposition will take place in between events. Additionally all events will be generated before any of the events take effect. This means that the screen coordinates of all events are resolved before any of the events can cause the position of the node being injected into to change. This has certain advantages, for example, in the cases of nested scrolling or dragging an element around, it prevents the injection of events into a moving target since all events are enqueued before any of them has taken effect.

```kotlin
import androidx.compose.foundation.clickable
import androidx.compose.foundation.text.BasicText
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.input.InputMode.Companion.Keyboard
import androidx.compose.ui.input.InputModeManager
import androidx.compose.ui.input.key.Key
import androidx.compose.ui.platform.LocalInputModeManager
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performKeyInput

var counter = 0
val focusRequester = FocusRequester()
lateinit var inputModeManager: InputModeManager
composeTestRule.setContent {
    inputModeManager = LocalInputModeManager.current
    BasicText(
        "ClickableText",
        modifier =
            Modifier.testTag("myClickable").focusRequester(focusRequester).clickable {
                counter++
            },
    )
}
composeTestRule.runOnIdle {
    inputModeManager.requestInputMode(Keyboard)
    focusRequester.requestFocus()
}

composeTestRule.onNodeWithTag("myClickable").performKeyInput { keyDown(Key.Enter) }

composeTestRule.runOnIdle { assert(counter == 0) }

composeTestRule.onNodeWithTag("myClickable").performKeyInput { keyUp(Key.Enter) }

composeTestRule.runOnIdle { assert(counter == 1) }
```

| Parameters |
|---|---|
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A lambda with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope` as receiver that describes the gesture by sending all key press events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope` |   |

### SemanticsNodeInteraction.performKeyPress

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInputHelpers.kt+function:performKeyPress) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun SemanticsNodeInteraction.performKeyPress(keyEvent: KeyEvent): Boolean
```

Send the specified `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent` to the focused component.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the event was consumed. False otherwise. |

### SemanticsNodeInteraction.performMouseInput

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performMouseInput) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun SemanticsNodeInteraction.performMouseInput(block: MouseInjectionScope.() -> Unit): SemanticsNodeInteraction
```

Executes the mouse gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMouseInput(kotlin.Function1)`. The gesture doesn't need to be complete and can be resumed in a later invocation of one of the `perform.*Input` methods. The event time is initialized to the current time of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`.

Be aware that if you split a gesture over multiple invocations of `perform.*Input`, everything that happens in between will run as if the gesture is still ongoing (imagine a mouse button still being pressed).

All events that are injected from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMouseInput(kotlin.Function1)` are batched together and sent after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMouseInput(kotlin.Function1)` is complete. This method blocks while the events are injected. If an error occurs during execution of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMouseInput(kotlin.Function1)` or injection of the events, all (subsequent) events are dropped and the error is thrown here.

Due to the batching of events, all events in a block are sent together and no recomposition will take place in between events. Additionally all events will be generated before any of the events take effect. This means that the screen coordinates of all events are resolved before any of the events can cause the position of the node being injected into to change. This has certain advantages, for example, in the cases of nested scrolling or dragging an element around, it prevents the injection of events into a moving target since all events are enqueued before any of them has taken effect.

Example of performing a mouse click:

```kotlin
import androidx.compose.ui.test.click
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performMouseInput

composeTestRule.onNodeWithTag("myComponent").performMouseInput {
    // Click in the middle of the node
    click(center)
}
```

Example of scrolling the mouse wheel while the mouse button is pressed:

```kotlin
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performMouseInput

composeTestRule
    .onNodeWithTag("verticalScrollable")
    // Scroll downwards while keeping a button pressed:
    .performMouseInput {
        // Presses the primary mouse button
        press()
        // Scroll the scroll wheel by 6 units
        repeat(6) {
            advanceEventTime()
            scroll(1f)
        }
        // And release the mouse button
        advanceEventTime()
        release()
    }
```

| Parameters |
|---|---|
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A lambda with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope` as receiver that describes the gesture by sending all mouse events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope` |   |

### SemanticsNodeInteraction.performMultiModalInput

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performMultiModalInput) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun SemanticsNodeInteraction.performMultiModalInput(block: MultiModalInjectionScope.() -> Unit): SemanticsNodeInteraction
```

Executes the multi-modal gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)`. The gesture doesn't need to be complete and can be resumed in a later invocation of one of the `perform.*Input` methods. The event time is initialized to the current time of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`. If only a single modality is needed (e.g. touch, mouse, stylus, keyboard, etc), you should use the `perform.*Input` of that modality instead.

Functions for each modality can be called by invoking that modality's function, like `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope#touch(kotlin.Function1)` to inject touch events. This allows you to inject events for each modality.

Be aware that if you split a gesture over multiple invocations of `perform.*Input`, everything that happens in between will run as if the gesture is still ongoing (imagine a finger still touching the screen).

All events that are injected from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)` are batched together and sent after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)` is complete. This method blocks while the events are injected. If an error occurs during execution of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performMultiModalInput(kotlin.Function1)` or injection of the events, all (subsequent) events are dropped and the error is thrown here.

Due to the batching of events, all events in a block are sent together and no recomposition will take place in between events. Additionally all events will be generated before any of the events take effect. This means that the screen coordinates of all events are resolved before any of the events can cause the position of the node being injected into to change. This has certain advantages, for example, in the cases of nested scrolling or dragging an element around, it prevents the injection of events into a moving target since all events are enqueued before any of them has taken effect.

| Parameters |
|---|---|
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A lambda with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope` as receiver that describes the gesture by sending all multi modal events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MultiModalInjectionScope` |   |

### SemanticsNodeInteraction.performRotaryScrollInput

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performRotaryScrollInput) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
fun SemanticsNodeInteraction.performRotaryScrollInput(block: RotaryInjectionScope.() -> Unit): SemanticsNodeInteraction
```

Executes the rotary input specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performRotaryScrollInput(kotlin.Function1)`.

The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performRotaryScrollInput(kotlin.Function1)` receives a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope` which provides access to rotary input injection functions, such as `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope#rotateToScrollVertically(kotlin.Float)` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope#rotateToScrollHorizontally(kotlin.Float)`.

All events that are injected from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performRotaryScrollInput(kotlin.Function1)` are batched together and sent after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performRotaryScrollInput(kotlin.Function1)` is complete. This method blocks while the events are injected. If an error occurs during execution of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performRotaryScrollInput(kotlin.Function1)` or injection of the events, all (subsequent) events are dropped and the error is thrown here.

Example of performing a scroll with three events:

```kotlin
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performRotaryScrollInput

composeTestRule.onNodeWithTag("myComponent").performRotaryScrollInput {
    rotateToScrollVertically(3.0f)
    rotateToScrollVertically(10.0f)
    rotateToScrollVertically(2.0f)
}
```

| Parameters |
|---|---|
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A lambda with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope` as receiver that describes the gesture by sending all rotary scroll events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/RotaryInjectionScope` |   |

### SemanticsNodeInteraction.performScrollTo

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performScrollTo) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performScrollTo(): SemanticsNodeInteraction
```

Scrolls the closest enclosing scroll parent by the smallest amount such that this node is fully visible in its viewport. If this node is larger than the viewport, scrolls the scroll parent by the smallest amount such that this node fills the entire viewport. A scroll parent is a parent node that has the semantics action `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#ScrollBy()` (usually implemented by defining `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/package-summary#(androidx.compose.ui.semantics.SemanticsPropertyReceiver).scrollBy(kotlin.String,kotlin.Function2)`).

This action should be performed on the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is part of the scrollable content, not on the scrollable container.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if there is no scroll parent, or if a scroll is needed but `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock#autoAdvance()` is set to `false`. Compose scroll actions rely on clock frames to execute scroll animations, so scrolling cannot make progress when clock auto-advancement is disabled. |

### SemanticsNodeInteraction.performScrollToIndex

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performScrollToIndex) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performScrollToIndex(index: Int): SemanticsNodeInteraction
```

Scrolls a scrollable container with items to the item with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToIndex(kotlin.Int)`.

Note that not all scrollable containers have item indices. For example, a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/gestures/scrollable.modifier#(androidx.compose.ui.Modifier).scrollable(androidx.compose.foundation.gestures.ScrollableState,androidx.compose.foundation.gestures.Orientation,kotlin.Boolean,kotlin.Boolean,androidx.compose.foundation.gestures.FlingBehavior,androidx.compose.foundation.interaction.MutableInteractionSource)` doesn't have items with an index, while `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` does.

This action should be performed on a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is a scrollable container, not on a node that is part of the content of that container.

Throws an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node doesn't have `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#ScrollToIndex()` defined.

| Parameters |
|---|---|
| `index: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The index of the item to scroll to |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasScrollToIndexAction()` |   |

### SemanticsNodeInteraction.performScrollToKey

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performScrollToKey) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performScrollToKey(key: Any): SemanticsNodeInteraction
```

Scrolls a scrollable container with keyed items to the item with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToKey(kotlin.Any)`, such as `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyRow.composable#LazyRow(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`.

This action should be performed on a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is a scrollable container, not on a node that is part of the content of that container.

Throws an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the node doesn't have `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#IndexForKey()` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#ScrollToIndex()` defined.

| Parameters |
|---|---|
| `key: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html` | The key of the item to scroll to |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasScrollToKeyAction()` |   |

### SemanticsNodeInteraction.performScrollToNode

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performScrollToNode) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun SemanticsNodeInteraction.performScrollToNode(
    matcher: SemanticsMatcher
): SemanticsNodeInteraction
```

Scrolls a scrollable container to the content that matches the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToNode(androidx.compose.ui.test.SemanticsMatcher)`. If the content isn't yet visible, the scrollable container will be scrolled from the start till the end till it finds the content we're looking for. It is not defined where in the viewport the content will be on success of this function, but it will be either fully within the viewport if it is smaller than the viewport, or it will cover the whole viewport if it is larger than the viewport. If it doesn't find the content, the scrollable will be left at the end of the content and an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` is thrown.

This action should be performed on a `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is a scrollable container, not on a node that is part of the content of that container. If the container is a lazy container, it must support the semantics actions `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#ScrollToIndex()`, `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#ScrollBy()`, and either `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#HorizontalScrollAxisRange()` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsProperties#VerticalScrollAxisRange()`, for example `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyRow.composable#LazyRow(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`. If the container is not lazy, it must support the semantics action `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#ScrollBy()`, for example, `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/Row.composable#Row(androidx.compose.ui.Modifier,androidx.compose.foundation.layout.Arrangement.Horizontal,androidx.compose.ui.Alignment.Vertical,kotlin.Function1)` or `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/Column.composable#Column(androidx.compose.ui.Modifier,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,kotlin.Function1)`.

Throws an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` if the scrollable node doesn't support the necessary semantics actions.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | A matcher that identifies the content where the scrollable container needs to scroll to |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method. Note that this is *not* an interaction for the node that is identified by the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performScrollToNode(androidx.compose.ui.test.SemanticsMatcher)`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#hasScrollToNodeAction()` |   |

### SemanticsNodeInteraction.performSemanticsAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performSemanticsAction) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performSemanticsAction(
    key: SemanticsPropertyKey<AccessibilityAction<() -> Boolean>>
): SemanticsNodeInteraction
```

Provides support to call custom semantics actions on this node.

This method is for calling actions that have no parameters.

This will properly verify that the actions exists and provide clear error message in case it does not. It also handle synchronization and performing the action on the UI thread. This call is blocking until the action is performed

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsPropertyKey<https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/AccessibilityAction<() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html>>` | Key of the action to be performed. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | If the semantics action is not defined on this node. |

### SemanticsNodeInteraction.performSemanticsAction

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performSemanticsAction)

```
fun <T : () -> Boolean> SemanticsNodeInteraction.performSemanticsAction(
    key: SemanticsPropertyKey<AccessibilityAction<T>>,
    invocation: (T) -> Unit
): SemanticsNodeInteraction
```

Provides support to call custom semantics actions on this node.

This method is supposed to be used for actions with parameters.

This will properly verify that the actions exists and provide clear error message in case it does not. It also handle synchronization and performing the action on the UI thread. This call is blocking until the action is performed

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsPropertyKey<https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/AccessibilityAction<T>>` | Key of the action to be performed. |
| `invocation: (T) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Place where you call your action. In the argument is provided the underlying action from the given Semantics action. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | If the semantics action is not defined on this node. |

### SemanticsNodeInteraction.performTextClearance

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TextActions.kt+function:performTextClearance) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performTextClearance(): Unit
```

Clears the text in this node in similar way to IME.

### SemanticsNodeInteraction.performTextInput

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TextActions.kt+function:performTextInput) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performTextInput(text: String): Unit
```

Sends the given text to this node in similar way to IME.

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Text to send. |

### SemanticsNodeInteraction.performTextInputSelection

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TextActions.kt+function:performTextInputSelection) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun SemanticsNodeInteraction.performTextInputSelection(
    selection: TextRange,
    relativeToOriginalText: Boolean = true
): Unit
```

Sends the given selection to this node in similar way to IME.

| Parameters |
|---|---|
| `selection: https://developer.android.com/reference/kotlin/androidx/compose/ui/text/TextRange` | the selection to send |
| `relativeToOriginalText: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = true` | `true` if the selection is relative to the untransformed, original text. `false` if it is relative to the visual text following any transformations. |

### SemanticsNodeInteraction.performTextReplacement

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TextActions.kt+function:performTextReplacement) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.performTextReplacement(text: String): Unit
```

Replaces existing text with the given text in this node in similar way to IME.

This does not reflect text selection. All the text gets cleared out and new inserted.

| Parameters |
|---|---|
| `text: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Text to send. |

### SemanticsNodeInteraction.performTouchInput

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performTouchInput) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun SemanticsNodeInteraction.performTouchInput(block: TouchInjectionScope.() -> Unit): SemanticsNodeInteraction
```

Executes the touch gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTouchInput(kotlin.Function1)`. The gesture doesn't need to be complete and can be resumed in a later invocation of one of the `perform.*Input` methods. The event time is initialized to the current time of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`.

Be aware that if you split a gesture over multiple invocations of `perform.*Input`, everything that happens in between will run as if the gesture is still ongoing (imagine a finger still touching the screen).

All events that are injected from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTouchInput(kotlin.Function1)` are batched together and sent after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTouchInput(kotlin.Function1)` is complete. This method blocks while the events are injected. If an error occurs during execution of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTouchInput(kotlin.Function1)` or injection of the events, all (subsequent) events are dropped and the error is thrown here.

Due to the batching of events, all events in a block are sent together and no recomposition will take place in between events. Additionally, all events will be generated before any of the events take effect. This means that the screen coordinates of all events are resolved before any of the events can cause the position of the node being injected into to change. This has certain advantages, for example, in the cases of nested scrolling or dragging an element around, it prevents the injection of events into a moving target since all events are enqueued before any of them has taken effect.

Example of performing a swipe up:

```kotlin
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performTouchInput
import androidx.compose.ui.test.swipeUp

composeTestRule.onNodeWithTag("myComponent").performTouchInput { swipeUp() }
```

Example of performing an off-center click:

```kotlin
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.test.click
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performTouchInput

composeTestRule.onNodeWithTag("myComponent").performTouchInput {
    click(percentOffset(.2f, .5f))
}
```

Example of doing an assertion during a click:

```kotlin
import androidx.compose.ui.test.assertHasClickAction
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performTouchInput

composeTestRule
    .onNodeWithTag("myComponent")
    .performTouchInput { down(topLeft) }
    .assertHasClickAction()
    .performTouchInput { up() }
```

Example of performing a click-and-drag:

```kotlin
import androidx.compose.ui.test.click
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performTouchInput
import androidx.compose.ui.test.swipeUp

composeTestRule.onNodeWithTag("myComponent").performTouchInput {
    click()
    advanceEventTime(100)
    swipeUp()
}
```

| Parameters |
|---|---|
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A lambda with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope` as receiver that describes the gesture by sending all touch events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TouchInjectionScope` |   |

### SemanticsNodeInteraction.performTrackpadInput

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:performTrackpadInput) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun SemanticsNodeInteraction.performTrackpadInput(block: TrackpadInjectionScope.() -> Unit): SemanticsNodeInteraction
```

Executes the trackpad gesture specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTrackpadInput(kotlin.Function1)`. The gesture doesn't need to be complete and can be resumed in a later invocation of one of the `perform.*Input` methods. The event time is initialized to the current time of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`.

Be aware that if you split a gesture over multiple invocations of `perform.*Input`, everything that happens in between will run as if the gesture is still ongoing (imagine a trackpad button still being pressed).

All events that are injected from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTrackpadInput(kotlin.Function1)` are batched together and sent after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTrackpadInput(kotlin.Function1)` is complete. This method blocks while the events are injected. If an error occurs during execution of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).performTrackpadInput(kotlin.Function1)` or injection of the events, all (subsequent) events are dropped and the error is thrown here.

Due to the batching of events, all events in a block are sent together and no recomposition will take place in between events. Additionally all events will be generated before any of the events take effect. This means that the screen coordinates of all events are resolved before any of the events can cause the position of the node being injected into to change. This has certain advantages, for example, in the cases of nested scrolling or dragging an element around, it prevents the injection of events into a moving target since all events are enqueued before any of them has taken effect.

Example of performing a trackpad click:

```kotlin
import androidx.compose.ui.test.click
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performTrackpadInput

composeTestRule.onNodeWithTag("myComponent").performTrackpadInput {
    // Click in the middle of the node
    click(center)
}
```

| Parameters |
|---|---|
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A lambda with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope` as receiver that describes the gesture by sending all trackpad events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsNodeInteraction` that is the receiver of this method |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadInjectionScope` |   |

### GestureScope.pinch

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:pinch) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[pinch](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).pinch(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long))(
    start0: Offset,
    end0: Offset,
    start1: Offset,
    end1: Offset,
    durationMillis: Long = 400
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a pinch gesture on the associated node.

For each pair of start and end `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset`s, the motion events are linearly interpolated. The coordinates are in the node's local coordinate system where (0, 0) is the top left corner of the node. The default duration is 400 milliseconds.

| Parameters |
|---|---|
| `start0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the first gesture in the node's local coordinate system |
| `end0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the first gesture in the node's local coordinate system |
| `start1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the second gesture in the node's local coordinate system |
| `end1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the second gesture in the node's local coordinate system |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 400` | the duration of the gesture |

### IndirectPointerInjectionScope.pinch

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:pinch) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.pinch(
    start0: Offset,
    end0: Offset,
    start1: Offset,
    end1: Offset,
    durationMillis: Long = 400
): Unit
```

Performs a pinch gesture on nodes in the focus path.

For each pair of start and end `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset`s, the motion events are linearly interpolated.

The coordinates are NOT in the node's local coordinate system (see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`).

The default duration is 400 milliseconds.

| Parameters |
|---|---|
| `start0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the first pointer in the indirect pointer input device's coordinate system (`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`). |
| `end0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the first pointer in the indirect pointer input device's coordinate system (`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`). |
| `start1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the second pointer in the indirect pointer input device's coordinate system. |
| `end1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the second pointer in the indirect pointer input device's coordinate system (`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`). |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 400` | the duration of the pinch gesture |

### TouchInjectionScope.pinch

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:pinch) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun TouchInjectionScope.pinch(
    start0: Offset,
    end0: Offset,
    start1: Offset,
    end1: Offset,
    durationMillis: Long = 400
): Unit
```

Performs a pinch gesture on the associated node.

For each pair of start and end `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset`s, the motion events are linearly interpolated. The coordinates are in the node's local coordinate system where (0, 0) is the top left corner of the node. The default duration is 400 milliseconds.

| Parameters |
|---|---|
| `start0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the first gesture in the node's local coordinate system |
| `end0: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the first gesture in the node's local coordinate system |
| `start1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the second gesture in the node's local coordinate system |
| `end1: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the second gesture in the node's local coordinate system |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 400` | the duration of the gesture |

### KeyInjectionScope.pressKey

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+function:pressKey) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun KeyInjectionScope.pressKey(
    key: Key,
    pressDurationMillis: Long = DefaultKeyPressDurationMillis
): Unit
```

Holds down the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).pressKey(androidx.compose.ui.input.key.Key,kotlin.Long)` for the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).pressKey(androidx.compose.ui.input.key.Key,kotlin.Long)` by sending a key down event, advancing the event time and sending a key up event.

If the given key is already down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key` | The key to be pressed down. |
| `pressDurationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultKeyPressDurationMillis` | Duration of press in milliseconds. |

### SemanticsNodeInteraction.printToLog

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Output.kt+function:printToLog) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.printToLog(
    tag: String,
    maxDepth: Int = Int.MAX_VALUE
): Unit
```

Prints all the semantics nodes information into logs (as debug level).

By default this also prints all the sub-hierarchy. This can be changed by setting a custom max depth in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).printToLog(kotlin.String,kotlin.Int)`.

Note that this will fetch the latest snapshot of nodes it sees in the hierarchy for the IDs it collected before. So the output can change over time if the tree changes.

| Parameters |
|---|---|
| `tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The tag to be used in the log messages. |
| `maxDepth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html = Int.MAX_VALUE` | Max depth of the nodes in hierarchy to print. Zero will print just this node. Must not be negative. |

### SemanticsNodeInteractionCollection.printToLog

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Output.kt+function:printToLog) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.printToLog(
    tag: String,
    maxDepth: Int = 0
): Unit
```

Prints all the semantics nodes information into logs (as debug level).

By default this does not print nodes sub-hierarchies. This can be changed by setting a custom max depth in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).printToLog(kotlin.String,kotlin.Int)`.

Note that this will fetch the latest snapshot of nodes it sees in the hierarchy for the IDs it collected before. So the output can change over time if the tree changes.

| Parameters |
|---|---|
| `tag: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | The tag to be used in the log messages. Must not be negative. |
| `maxDepth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html = 0` | Max depth of the nodes in hierarchy to print. Zero will print nodes in this collection only. |

### SemanticsNodeInteraction.printToString

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Output.kt+function:printToString) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteraction.printToString(maxDepth: Int = Int.MAX_VALUE): String
```

Prints all the semantics nodes information it holds into string.

By default this also prints all the sub-hierarchy. This can be changed by setting a custom max depth in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteraction).printToString(kotlin.Int)`.

Note that this will fetch the latest snapshot of nodes it sees in the hierarchy for the IDs it collected before. So the output can change over time if the tree changes.

| Parameters |
|---|---|
| `maxDepth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html = Int.MAX_VALUE` | Max depth of the nodes in hierarchy to print. Zero will print just this node. Must not be negative. |

### SemanticsNodeInteractionCollection.printToString

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Output.kt+function:printToString) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun SemanticsNodeInteractionCollection.printToString(maxDepth: Int = 0): String
```

Prints all the semantics nodes information it holds into string.

By default this does not print nodes sub-hierarchies. This can be changed by setting a custom max depth in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionCollection).printToString(kotlin.Int)`.

Note that this will fetch the latest snapshot of nodes it sees in the hierarchy for the IDs it collected before. So the output can change over time if the tree changes.

| Parameters |
|---|---|
| `maxDepth: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html = 0` | Max depth of the nodes in hierarchy to print. Zero will print nodes in this collection only. Must not be negative. |

### ComposeUiTest.registerIdlingResource

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.kt+function:registerIdlingResource)

```
fun ComposeUiTest.registerIdlingResource(idlingResource: IdlingResource): Boolean
```

Attempts to register an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` in this test.

This implementation checks `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).isIdlingResourceSupported()` before attempting to register the resource.

| Parameters |
|---|---|
| `idlingResource: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` to register in the test |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the idling resource was successfully registered, or false if the implementation does not support idling resources. |

### SemanticsNodeInteraction.requestFocus

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:requestFocus) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0)

```
fun SemanticsNodeInteraction.requestFocus(): SemanticsNodeInteraction
```

Requests the focus system to give focus to this node by invoking the `https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsActions#RequestFocus()` semantics action.

### MouseInjectionScope.rightClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:rightClick) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.rightClick(position: Offset = center): Unit
```

Secondary-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. While the secondary mouse button is not necessarily the right mouse button (e.g. on left-handed mice), this method is still called `rightClick` for it's widespread use. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current mouse position. |

### TrackpadInjectionScope.rightClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:rightClick) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.rightClick(position: Offset = center): Unit
```

Secondary-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)`, or on the current cursor position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. While the secondary button is not necessarily a physical right button (e.g. a multi-finger tap), this method is still called `rightClick` for its widespread use. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).rightClick(androidx.compose.ui.geometry.Offset)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current trackpad position. |

### TrackpadInjectionScope.scale

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:scale) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.scale(
    scaleFactor: @FloatRange(from = 0.0, fromInclusive = false) Float
): Unit
```

Sends a scale event with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).scale(kotlin.Float)`. The event will be sent starting at the current event time.

The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).scale(kotlin.Float)` is a multiplicative zoom factor. A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).scale(kotlin.Float)` of 1 represents no change. A `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).scale(kotlin.Float)` less than 1 represents a "zoom out" gesture, while a factor of more than one represents a "zoom in" gesture.

```kotlin
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performTrackpadInput
import androidx.compose.ui.test.scale

composeTestRule.onNodeWithTag("transformable").performTrackpadInput {
    // Performs a scale with a factor of 0.9f, which corresponds to a "zoom out" gesture.
    scale(0.9f)
}
```

| Parameters |
|---|---|
| `scaleFactor: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The amount to scale. |

### SemanticsNodeInteractionsProvider.sendIndirectPointerInput

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:sendIndirectPointerInput)

```
fun SemanticsNodeInteractionsProvider.sendIndirectPointerInput(
    indirectPointerEventPrimaryDirectionalMotionAxis: IndirectPointerEventPrimaryDirectionalMotionAxis,
    inputDeviceSize: IntSize,
    block: IndirectPointerInjectionScope.() -> Unit
): Unit
```

Sends an indirect pointer gesture globally, targeting the currently focused Compose UI (from root to the focused node).

This API requires an active focus state meaning developers need to request focus to the component or a child of the component via SemanticsNodeInteraction.requestFocus() before calling this function. If no component is currently focused, this will throw an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html`.

If there are multiple Compose roots present, this action will target the first focused root.

Indirect pointer input events are touch events that are from an external touchpad whose coordinates are not tied to the screen coordinates.

These events are dispatched through the focused tree, and components will only receive these events if they are focused, or an ancestor of a focused item.

The gesture doesn't need to be complete and can be resumed in a later invocation of `sendIndirectPointerInput { ... }`. The event time is initialized to the current time of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MainTestClock`.

Be aware that if you split a gesture over multiple invocations of `sendIndirectPointerInput { }`, everything that happens in between will run as if the gesture is still ongoing (imagine a finger still touching the touchpad).

All events that are injected from the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).sendIndirectPointerInput(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)` are batched together and sent after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).sendIndirectPointerInput(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)` is complete. This method blocks while the events are injected. If an error occurs during execution of `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).sendIndirectPointerInput(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)` or injection of the events, all (subsequent) events are dropped and the error is thrown here.

Due to the batching of events, all events in a block are sent together and no recomposition will take place in between events. Additionally, all events will be generated before any of the events take effect.

Example of sending a swipe:

```kotlin
import androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis
import androidx.compose.ui.test.inputDeviceLeft
import androidx.compose.ui.test.inputDeviceRight
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.requestFocus
import androidx.compose.ui.test.sendIndirectPointerInput
import androidx.compose.ui.test.swipeRight
import androidx.compose.ui.unit.IntSize

// Ensure your node is within the focus path (otherwise, you won't get the event).
composeTestRule.onNodeWithTag("myComponent").requestFocus()
composeTestRule.sendIndirectPointerInput(
    indirectPointerEventPrimaryDirectionalMotionAxis =
        IndirectPointerEventPrimaryDirectionalMotionAxis.X,
    // Horizontal trackpad
    inputDeviceSize = IntSize(width = 5000, height = 1000),
) {
    swipeRight(startX = inputDeviceLeft, endX = inputDeviceRight)
}
```

Examples of click:

```kotlin
import androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis
import androidx.compose.ui.test.click
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.requestFocus
import androidx.compose.ui.test.sendIndirectPointerInput
import androidx.compose.ui.unit.IntSize

// Ensure the node is within the focus path (otherwise, you won't get the event).
composeTestRule.onNodeWithTag("myComponent").requestFocus()
composeTestRule.sendIndirectPointerInput(
    indirectPointerEventPrimaryDirectionalMotionAxis =
        IndirectPointerEventPrimaryDirectionalMotionAxis.X,
    // Horizontal trackpad
    inputDeviceSize = IntSize(width = 5000, height = 1000),
) {
    click()
}
```

```kotlin
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis
import androidx.compose.ui.test.inputDeviceCenterX
import androidx.compose.ui.test.inputDeviceCenterY
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.requestFocus
import androidx.compose.ui.test.sendIndirectPointerInput
import androidx.compose.ui.unit.IntSize

// Ensure the node is within the focus path (otherwise, you won't get the event).
composeTestRule.onNodeWithTag("myComponent").requestFocus()

composeTestRule.sendIndirectPointerInput(
    indirectPointerEventPrimaryDirectionalMotionAxis =
        IndirectPointerEventPrimaryDirectionalMotionAxis.X,
    // Horizontal trackpad
    inputDeviceSize = IntSize(width = 5000, height = 1000),
) {
    down(position = Offset(x = inputDeviceCenterX, y = inputDeviceCenterY))
}

// Assert some pressed state is visible

composeTestRule.sendIndirectPointerInput(
    indirectPointerEventPrimaryDirectionalMotionAxis =
        IndirectPointerEventPrimaryDirectionalMotionAxis.X,
    // Horizontal trackpad
    inputDeviceSize = IntSize(width = 5000, height = 1000),
) {
    up()
}
```

Example of sending a click-and-drag:

```kotlin
import androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis
import androidx.compose.ui.test.click
import androidx.compose.ui.test.inputDeviceLeft
import androidx.compose.ui.test.inputDeviceRight
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.requestFocus
import androidx.compose.ui.test.sendIndirectPointerInput
import androidx.compose.ui.test.swipeLeft
import androidx.compose.ui.unit.IntSize

// Ensure the node is within the focus path (otherwise, you won't get the event).
composeTestRule.onNodeWithTag("myComponent").requestFocus()
composeTestRule.sendIndirectPointerInput(
    indirectPointerEventPrimaryDirectionalMotionAxis =
        IndirectPointerEventPrimaryDirectionalMotionAxis.X,
    // Horizontal trackpad
    inputDeviceSize = IntSize(width = 5000, height = 1000),
) {
    click()
    advanceEventTime(durationMillis = 100)
    swipeLeft(startX = inputDeviceRight, endX = inputDeviceLeft)
}
```

| Parameters |
|---|---|
| `indirectPointerEventPrimaryDirectionalMotionAxis: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/indirect/IndirectPointerEventPrimaryDirectionalMotionAxis` | The main movement axis (horizontal or vertical) for single-directional scrolling when using the touchpad `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.SemanticsNodeInteractionsProvider).sendIndirectPointerInput(androidx.compose.ui.input.indirect.IndirectPointerEventPrimaryDirectionalMotionAxis,androidx.compose.ui.unit.IntSize,kotlin.Function1)`. For instance, if the primary axis is set to X, a display prioritizes scrolling its content (both horizontal and vertical containers) based on the device's X-axis movement. Note that this input axis may not correspond directly to the resulting scrolling axis on the display (e.g., X-axis movement causing vertical scrolling). |
| `inputDeviceSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize` | The dimensions of the external indirect pointer input device that provide the boundaries for indirect input. If you go outside these dimensions, the tests will throw an exception. Note: This is not related to the screen coordinates. |
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Block of code/events to execute in indirect scope. |

### MouseInjectionScope.smoothScroll

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:smoothScroll) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.smoothScroll(
    scrollAmount: Float,
    durationMillis: Long = DefaultMouseGestureDurationMillis,
    scrollWheel: ScrollWheel = ScrollWheel.Vertical
): Unit
```

Rotate the mouse's `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).smoothScroll(kotlin.Float,kotlin.Long,androidx.compose.ui.test.ScrollWheel)` by the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).smoothScroll(kotlin.Float,kotlin.Long,androidx.compose.ui.test.ScrollWheel)`. The total scroll delta is linearly smoothed out over a stream of scroll events between each scroll event.

Positive `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).smoothScroll(kotlin.Float,kotlin.Long,androidx.compose.ui.test.ScrollWheel)` values correspond to scrolling forward (new content appears at the bottom of a column, or at the end of a row), negative values correspond to scrolling backward (new content appears at the top of a column, or at the start of a row).

Example of a horizontal smooth scroll:

```kotlin
import androidx.compose.ui.test.ScrollWheel
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performMouseInput
import androidx.compose.ui.test.smoothScroll

composeTestRule.onNodeWithTag("horizontalScrollable").performMouseInput {
    // Scroll forwards horizontally, which is rightwards
    // unless scroll direction is reversed
    smoothScroll(100f, durationMillis = 500L, ScrollWheel.Horizontal)
    // The 100f scroll delta is equally divided into smaller scrolls,
    // such that the time in between two scroll events is more or less
    // equal to the default time between events, 16ms.
}
```

| Parameters |
|---|---|
| `scrollAmount: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The total delta to scroll the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).smoothScroll(kotlin.Float,kotlin.Long,androidx.compose.ui.test.ScrollWheel)` by |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = DefaultMouseGestureDurationMillis` | The duration of the gesture. By default 300 milliseconds. |
| `scrollWheel: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ScrollWheel = ScrollWheel.Vertical` | Which scroll wheel will be rotated. By default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ScrollWheel#Vertical()`. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseInjectionScope#scroll(kotlin.Float,androidx.compose.ui.test.ScrollWheel)` |   |

### IndirectPointerInjectionScope.swipe

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:swipe) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.swipe(
    curve: (timeMillis: Long) -> Offset,
    durationMillis: Long = 200,
    keyTimes: List<Long> = emptyList()
): Unit
```

Performs a swipe gesture on nodes in the focus path.

The swipe follows the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipe(kotlin.Function1,kotlin.Long,kotlin.collections.List)` from 0 till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipe(kotlin.Function1,kotlin.Long,kotlin.collections.List)`. Will force sampling of an event at all times defined in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipe(kotlin.Function1,kotlin.Long,kotlin.collections.List)`. The time between events is kept as close to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#eventPeriodMillis()` as possible, given the constraints.

The coordinates are NOT in the node's local coordinate system (see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`) and is usually used for focused movement (that is, a focused node would move to the next/previous focusable node in the hierarchy with a swipe).

| Parameters |
|---|---|
| `curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The function that describes the gesture. The argument passed to the function is the time in milliseconds since the start of the swipe, and the return value is the location of the pointer at that point in time. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the gesture (default duration is 200 milliseconds) |
| `keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> = emptyList()` | An optional list of timestamps in milliseconds at which a move event must be sampled |

### TouchInjectionScope.swipe

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:swipe) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun TouchInjectionScope.swipe(
    curve: (timeMillis: Long) -> Offset,
    durationMillis: Long = 200,
    keyTimes: List<Long> = emptyList()
): Unit
```

Performs a swipe gesture on the associated node.

The swipe follows the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipe(kotlin.Function1,kotlin.Long,kotlin.collections.List)` from 0 till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipe(kotlin.Function1,kotlin.Long,kotlin.collections.List)`. Will force sampling of an event at all times defined in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipe(kotlin.Function1,kotlin.Long,kotlin.collections.List)`. The time between events is kept as close to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#eventPeriodMillis()` as possible, given the constraints. The coordinates are in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default duration is 200 milliseconds.

| Parameters |
|---|---|
| `curve: (timeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The function that describes the gesture. The argument passed to the function is the time in milliseconds since the start of the swipe, and the return value is the location of the pointer at that point in time. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the gesture |
| `keyTimes: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html> = emptyList()` | An optional list of timestamps in milliseconds at which a move event must be sampled |

### GestureScope.swipe

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipe) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[swipe](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long))(start: Offset, end: Offset, durationMillis: Long = 200): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs the swipe gesture on the associated node. The motion events are linearly interpolated between `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)`. The coordinates are in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default duration is 200 milliseconds.

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the gesture, in the node's local coordinate system |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the gesture, in the node's local coordinate system |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the gesture |

### IndirectPointerInjectionScope.swipe

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:swipe) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.swipe(
    start: Offset,
    end: Offset,
    durationMillis: Long = 200
): Unit
```

Performs a swipe gesture on nodes in the focus path.

The motion events are linearly interpolated between `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)`.

The coordinates are NOT in the node's local coordinate system (see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`) and is usually used for focused movement (that is, a focused node would move to the next/previous focusable node in the hierarchy with a swipe).

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position of the pointer starting the swipe gesture, in the indirect pointer input device's coordinate system (`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`). |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position of the pointer ending the swipe gesture, in the indirect pointer input device's coordinate system (`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IndirectPointerInjectionScope#inputDeviceSize()`). |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe gesture (default duration is 200 milliseconds) |

### TouchInjectionScope.swipe

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:swipe) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun TouchInjectionScope.swipe(
    start: Offset,
    end: Offset,
    durationMillis: Long = 200
): Unit
```

Performs a swipe gesture on the associated node.

The motion events are linearly interpolated between `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipe(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Long)`. The coordinates are in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default duration is 200 milliseconds.

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the gesture, in the node's local coordinate system |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the gesture, in the node's local coordinate system |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the gesture |

### GestureScope.swipeDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeDown) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun GestureScope.[swipeDown](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a swipe down gesture along the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerX()` of the associated node. The gesture starts slightly below the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).top()` of the node and ends at the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()`.

### GestureScope.swipeDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeDown) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
@ExperimentalTestApi
fun GestureScope.[swipeDown](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long))(
    startY: Float = topFuzzed,
    endY: Float = bottom,
    durationMillis: Long = 200
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a swipe down gesture along the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerX()` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = topFuzzed` | The y-coordinate of the start of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`. By default slightly below the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).top()` of the node. |
| `endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = bottom` | The y-coordinate of the end of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()` of the node. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default 200 milliseconds. |

### IndirectPointerInjectionScope.swipeDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:swipeDown) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.swipeDown(
    startY: Float,
    endY: Float,
    durationMillis: Long = 200
): Unit
```

Performs a swipe down gesture on nodes in the focus path along `x = [IndirectPointerInjectionScope.inputDeviceCenter].x`, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The y-coordinate of the start of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`. |
| `endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The y-coordinate of the end of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default, 200 milliseconds. |

### TouchInjectionScope.swipeDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:swipeDown) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun TouchInjectionScope.swipeDown(
    startY: Float = top,
    endY: Float = bottom,
    durationMillis: Long = 200
): Unit
```

Performs a swipe down gesture along `x = [centerX]` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = top` | The y-coordinate of the start of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#top()` of the node. |
| `endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = bottom` | The y-coordinate of the end of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeDown(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#bottom()` of the node. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default 200 milliseconds. |

### GestureScope.swipeLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeLeft) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun GestureScope.[swipeLeft](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a swipe left gesture along the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerY()` of the associated node. The gesture starts slightly left of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()` side of the node and ends at the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).left()` side.

### GestureScope.swipeLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeLeft) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
@ExperimentalTestApi
fun GestureScope.[swipeLeft](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long))(
    startX: Float = rightFuzzed,
    endX: Float = left,
    durationMillis: Long = 200
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a swipe left gesture along the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerY()` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = rightFuzzed` | The x-coordinate of the start of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`. By default slightly left of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()` of the node. |
| `endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = left` | The x-coordinate of the end of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).left()` of the node. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default 200 milliseconds. |

### IndirectPointerInjectionScope.swipeLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:swipeLeft) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.swipeLeft(
    startX: Float,
    endX: Float,
    durationMillis: Long = 200
): Unit
```

Performs a swipe left gesture on nodes in the focus path along `y = [IndirectPointerInjectionScope.inputDeviceCenter].y`, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The x-coordinate of the start of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`. |
| `endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The x-coordinate of the end of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default, 200 milliseconds. |

### TouchInjectionScope.swipeLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:swipeLeft) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun TouchInjectionScope.swipeLeft(
    startX: Float = right,
    endX: Float = left,
    durationMillis: Long = 200
): Unit
```

Performs a swipe left gesture along `y = [centerY]` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = right` | The x-coordinate of the start of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#right()` of the node. |
| `endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = left` | The x-coordinate of the end of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeLeft(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#left()` of the node. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default 200 milliseconds. |

### GestureScope.swipeRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeRight) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun GestureScope.[swipeRight](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a swipe right gesture along the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerY()` of the associated node. The gesture starts slightly right of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).left()` side of the node and ends at the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()` side.

### GestureScope.swipeRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeRight) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
@ExperimentalTestApi
fun GestureScope.[swipeRight](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long))(
    startX: Float = leftFuzzed,
    endX: Float = right,
    durationMillis: Long = 200
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a swipe right gesture along the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerY()` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = leftFuzzed` | The x-coordinate of the start of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`. By default slightly right of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).left()` of the node. |
| `endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = right` | The x-coordinate of the end of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()` of the node. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default 200 milliseconds. |

### IndirectPointerInjectionScope.swipeRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:swipeRight) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.swipeRight(
    startX: Float,
    endX: Float,
    durationMillis: Long = 200
): Unit
```

Performs a swipe right gesture on nodes in the focus path along `y = [IndirectPointerInjectionScope.inputDeviceCenter].y`, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The x-coordinate of the start of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`. |
| `endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The x-coordinate of the end of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default, 200 milliseconds. |

### TouchInjectionScope.swipeRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:swipeRight) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun TouchInjectionScope.swipeRight(
    startX: Float = left,
    endX: Float = right,
    durationMillis: Long = 200
): Unit
```

Performs a swipe right gesture along `y = [centerY]` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = left` | The x-coordinate of the start of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#left()` of the node. |
| `endX: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = right` | The x-coordinate of the end of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeRight(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#right()` of the node. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default 200 milliseconds. |

### GestureScope.swipeUp

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeUp) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun GestureScope.[swipeUp](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp())(): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a swipe up gesture along the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerX()` of the associated node. The gesture starts slightly above the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()` of the node and ends at the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).top()`.

### GestureScope.swipeUp

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeUp) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
@ExperimentalTestApi
fun GestureScope.[swipeUp](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long))(
    startY: Float = bottomFuzzed,
    endY: Float = top,
    durationMillis: Long = 200
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs a swipe up gesture along the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).centerX()` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = bottomFuzzed` | The y-coordinate of the start of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`. By default slightly above the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()` of the node. |
| `endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = top` | The y-coordinate of the end of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).top()` of the node. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default 200 milliseconds. |

### IndirectPointerInjectionScope.swipeUp

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:swipeUp) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.swipeUp(
    startY: Float,
    endY: Float,
    durationMillis: Long = 200
): Unit
```

Performs a swipe up gesture on nodes in the focus path along `x = [IndirectPointerInjectionScope.inputDeviceCenter].x`, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The y-coordinate of the start of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`. |
| `endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The y-coordinate of the end of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default, 200 milliseconds. |

### TouchInjectionScope.swipeUp

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:swipeUp) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun TouchInjectionScope.swipeUp(
    startY: Float = bottom,
    endY: Float = top,
    durationMillis: Long = 200
): Unit
```

Performs a swipe up gesture along `x = [centerX]` of the associated node, from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` till `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`, taking `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)` milliseconds.

| Parameters |
|---|---|
| `startY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = bottom` | The y-coordinate of the start of the swipe. Must be greater than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#bottom()` of the node. |
| `endY: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = top` | The y-coordinate of the end of the swipe. Must be less than or equal to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeUp(kotlin.Float,kotlin.Float,kotlin.Long)`. By default the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#top()` of the node. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the swipe. By default 200 milliseconds. |

### GestureScope.swipeWithVelocity

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:swipeWithVelocity) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0) Deprecated in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun GestureScope.[swipeWithVelocity](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long))(
    start: Offset,
    end: Offset,
    endVelocity: Float,
    durationMillis: Long = 200
): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Performs the swipe gesture on the associated node, such that the velocity when the gesture is finished is roughly equal to `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`. The MotionEvents are linearly interpolated between `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`. The coordinates are in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default duration is 200 milliseconds.

Note that due to imprecisions, no guarantees can be made on the precision of the actual velocity at the end of the gesture, but generally it is within 0.1% of the desired velocity.

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the gesture, in the node's local coordinate system |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the gesture, in the node's local coordinate system |
| `endVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The velocity of the gesture at the moment it ends. Must be positive. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = 200` | The duration of the gesture in milliseconds. Must be long enough that at least 3 input events are generated, which happens with a duration of 25ms or more. |

### IndirectPointerInjectionScope.swipeWithVelocity

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+function:swipeWithVelocity) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
fun IndirectPointerInjectionScope.swipeWithVelocity(
    start: Offset,
    end: Offset,
    endVelocity: @FloatRange(from = 0.0) Float,
    durationMillis: Long = VelocityPathFinder.calculateDefaultDuration(start, end, endVelocity)
): Unit
```

Performs a swipe gesture on nodes in the focus path such that it ends with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`.

The swipe will go through `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)` at t=0 and through `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)` at t=`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`. In between, the swipe will go monotonically from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`, but not strictly. Due to imprecision, no guarantees can be made for the actual velocity at the end of the gesture, but generally it is within 0.1 of the desired velocity.

When a swipe cannot be created that results in the desired velocity (because the input is too restrictive), an exception will be thrown with suggestions to fix the input.

The coordinates are NOT in the node's local coordinate system and is usually used for focused movement (that is, a focused node would move to the next focusable node in the hierarchy with a swipe).

The default duration is calculated such that a feasible swipe can be created that ends in the given velocity.

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position of the pointer starting the swipe gesture, in the indirect pointer input device's coordinate system. |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The position of the pointer ending the swipe gesture, in the indirect pointer input device's coordinate system. |
| `endVelocity: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The velocity of the swipe gesture at the moment it ends in px/second. Must be positive. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = VelocityPathFinder.calculateDefaultDuration(start, end, endVelocity)` | The duration of the swipe gesture in milliseconds. Must be long enough that at least 3 input events are generated, which happens with a duration of 40ms or more. If omitted, a duration is calculated such that a valid swipe with velocity can be created. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | When no swipe can be generated that will result in the desired velocity. The error message will suggest changes to the input parameters such that a swipe will become feasible. |

### TouchInjectionScope.swipeWithVelocity

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TouchInjectionScope.kt+function:swipeWithVelocity) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun TouchInjectionScope.swipeWithVelocity(
    start: Offset,
    end: Offset,
    endVelocity: Float,
    durationMillis: Long = VelocityPathFinder.calculateDefaultDuration(start, end, endVelocity)
): Unit
```

Performs a swipe gesture on the associated node such that it ends with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`.

The swipe will go through `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)` at t=0 and through `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)` at t=`https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`. In between, the swipe will go monotonically from `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TouchInjectionScope).swipeWithVelocity(androidx.compose.ui.geometry.Offset,androidx.compose.ui.geometry.Offset,kotlin.Float,kotlin.Long)`, but not strictly. Due to imprecision, no guarantees can be made for the actual velocity at the end of the gesture, but generally it is within 0.1 of the desired velocity.

When a swipe cannot be created that results in the desired velocity (because the input is too restrictive), an exception will be thrown with suggestions to fix the input.

The coordinates are in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default duration is calculated such that a feasible swipe can be created that ends in the given velocity.

| Parameters |
|---|---|
| `start: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The start position of the gesture, in the node's local coordinate system |
| `end: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | The end position of the gesture, in the node's local coordinate system |
| `endVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The velocity of the gesture at the moment it ends in px/second. Must be positive. |
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = VelocityPathFinder.calculateDefaultDuration(start, end, endVelocity)` | The duration of the gesture in milliseconds. Must be long enough that at least 3 input events are generated, which happens with a duration of 40ms or more. If omitted, a duration is calculated such that a valid swipe with velocity can be created. |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | When no swipe can be generated that will result in the desired velocity. The error message will suggest changes to the input parameters such that a swipe will become feasible. |

### DeviceConfigurationOverride.then

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/DeviceConfigurationOverride.kt+function:then) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.7.0)

```
infix fun DeviceConfigurationOverride.then(other: DeviceConfigurationOverride): DeviceConfigurationOverride
```

Combines this override with the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride).then(androidx.compose.ui.test.DeviceConfigurationOverride)` override into a single override, by applying this override as the outer override first, then the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride).then(androidx.compose.ui.test.DeviceConfigurationOverride)` override as an inner override, and then the content.

```kotlin
import androidx.compose.material3.Text
import androidx.compose.ui.test.DeviceConfigurationOverride
import androidx.compose.ui.test.FontScale
import androidx.compose.ui.test.FontWeightAdjustment
import androidx.compose.ui.test.then

DeviceConfigurationOverride(
    DeviceConfigurationOverride.FontScale(1.5f) then
        DeviceConfigurationOverride.FontWeightAdjustment(200)
) {
    Text(text = "text with increased scale and weight")
}
```

| Parameters |
|---|---|
| `other: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` to apply after this one |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` | a new `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` that applies both this `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/DeviceConfigurationOverride` and then the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.DeviceConfigurationOverride).then(androidx.compose.ui.test.DeviceConfigurationOverride)`. |

### MouseInjectionScope.tripleClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/MouseInjectionScope.kt+function:tripleClick) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.10.0)

```
fun MouseInjectionScope.tripleClick(
    position: Offset = center,
    button: MouseButton = MouseButton.Primary
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` to triple-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)`, or on the current mouse position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.MouseInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.MouseButton)` is the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` button.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current mouse position. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton = MouseButton.Primary` | The button to click with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/MouseButton#Primary()` by default. |

### TrackpadInjectionScope.tripleClick

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TrackpadInjectionScope.kt+function:tripleClick) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.11.0)

```
fun TrackpadInjectionScope.tripleClick(
    position: Offset = center,
    button: TrackpadButton = TrackpadButton.Primary
): Unit
```

Use `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` to triple-click on `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)`, or on the current trackpad position if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`. The `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is in the node's local coordinate system, where (0, 0) is the top left corner of the node. The default `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.TrackpadInjectionScope).tripleClick(androidx.compose.ui.geometry.Offset,androidx.compose.ui.test.TrackpadButton)` is the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` button.

| Parameters |
|---|---|
| `position: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset = center` | The position where to click, in the node's local coordinate system. If omitted, the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/InjectionScope#center()` of the node will be used. If `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset#Unspecified()`, clicks on the current trackpad position. |
| `button: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton = TrackpadButton.Primary` | The button to click with. Uses the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TrackpadButton#Primary()` by default. |

### SemanticsNodeInteractionCollection.tryPerformAccessibilityChecks

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.kt+function:tryPerformAccessibilityChecks) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun SemanticsNodeInteractionCollection.tryPerformAccessibilityChecks(): SemanticsNodeInteractionCollection
```

Tries to perform accessibility checks on the current screen. This will only actually do something if (1) accessibility checks are enabled and (2) accessibility checks are implemented for the platform on which the test runs.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if accessibility problems are found |

### SemanticsNodeInteraction.tryPerformAccessibilityChecks

Cmn android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/Actions.+function:tryPerformAccessibilityChecks) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun SemanticsNodeInteraction.tryPerformAccessibilityChecks(): SemanticsNodeInteraction
```

Tries to perform accessibility checks on the current screen. This will only actually do something if (1) accessibility checks are enabled and (2) accessibility checks are implemented for the platform on which the test runs.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-assertion-error/index.html` | if accessibility problems are found |

### ComposeUiTest.unregisterIdlingResource

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.kt+function:unregisterIdlingResource)

```
fun ComposeUiTest.unregisterIdlingResource(idlingResource: IdlingResource): Boolean
```

Attempts to unregister an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` in this test.

This implementation checks `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).isIdlingResourceSupported()` before attempting to unregister the resource.

| Parameters |
|---|---|
| `idlingResource: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/IdlingResource` to unregister from the test |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the idling resource was successfully unregistered, or false if the implementation does not support idling resources. |

### GestureScope.up

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+function:up) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
fun GestureScope.[up](https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).up(kotlin.Int))(pointerId: Int = 0): Unit
```

> [!CAUTION]
> **This function is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Sends an up event for the pointer with the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).up(kotlin.Int)`, or the default pointer if `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).up(kotlin.Int)` is omitted, on the associated node. If any pointers have been moved with `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerTo(kotlin.Int,androidx.compose.ui.geometry.Offset)` or `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).movePointerBy(kotlin.Int,androidx.compose.ui.geometry.Offset)` and no move event has been sent yet, a move event will be sent right before the up event.

| Parameters |
|---|---|
| `pointerId: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html = 0` | The id of the pointer to lift up, as supplied in `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).down(kotlin.Int,androidx.compose.ui.geometry.Offset)` |

### ComposeUiTest.waitUntilAtLeastOneExists

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.kt+function:waitUntilAtLeastOneExists)

```
fun ComposeUiTest.waitUntilAtLeastOneExists(
    matcher: SemanticsMatcher,
    timeoutMillis: Long,
    useUnmergedTree: Boolean = false
): Unit
```

Blocks until at least one node matches the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | The matcher that will be used to filter nodes. |
| `timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The time after which this method throws an exception if no nodes match the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`. This observes wall clock time, not frame time. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeTimeoutException` | If no nodes match the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)` after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilAtLeastOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)` (in wall clock time). |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#waitUntil(kotlin.String,kotlin.Long,kotlin.Function0)` |   |

### ComposeUiTest.waitUntilDoesNotExist

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.kt+function:waitUntilDoesNotExist)

```
fun ComposeUiTest.waitUntilDoesNotExist(
    matcher: SemanticsMatcher,
    timeoutMillis: Long,
    useUnmergedTree: Boolean = false
): Unit
```

Blocks until no nodes match the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | The matcher that will be used to filter nodes. |
| `timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The time after which this method throws an exception if any nodes match the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`. This observes wall clock time, not frame time. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeTimeoutException` | If any nodes match the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)` after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilDoesNotExist(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)` (in wall clock time). |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#waitUntil(kotlin.String,kotlin.Long,kotlin.Function0)` |   |

### ComposeUiTest.waitUntilExactlyOneExists

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.kt+function:waitUntilExactlyOneExists)

```
fun ComposeUiTest.waitUntilExactlyOneExists(
    matcher: SemanticsMatcher,
    timeoutMillis: Long,
    useUnmergedTree: Boolean = false
): Unit
```

Blocks until exactly one node matches the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | The matcher that will be used to filter nodes. |
| `timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The time after which this method throws an exception if exactly one node does not match the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)`. This observes wall clock time, not frame time. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeTimeoutException` | If exactly one node does not match the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)` after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilExactlyOneExists(androidx.compose.ui.test.SemanticsMatcher,kotlin.Long,kotlin.Boolean)` (in wall clock time). |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#waitUntil(kotlin.String,kotlin.Long,kotlin.Function0)` |   |

### ComposeUiTest.waitUntilNodeCount

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/ComposeUiTest.kt+function:waitUntilNodeCount)

```
fun ComposeUiTest.waitUntilNodeCount(
    matcher: SemanticsMatcher,
    count: Int,
    timeoutMillis: Long,
    useUnmergedTree: Boolean = false
): Unit
```

Blocks until the number of nodes matching the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)` is equal to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)`.

| Parameters |
|---|---|
| `matcher: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/SemanticsMatcher` | The matcher that will be used to filter nodes. |
| `count: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The number of nodes that are expected to be matched. |
| `timeoutMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The time after which this method throws an exception if the number of nodes that match the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)` is not `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)`. This observes wall clock time, not frame time. |
| `useUnmergedTree: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | If true, searches the unmerged semantics tree instead of the merged semantics tree. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeTimeoutException` | If the number of nodes that match the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)` is not `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)` after `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.ComposeUiTest).waitUntilNodeCount(androidx.compose.ui.test.SemanticsMatcher,kotlin.Int,kotlin.Long,kotlin.Boolean)` (in wall clock time). |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/ComposeUiTest#waitUntil(kotlin.String,kotlin.Long,kotlin.Function0)` |   |

### KeyInjectionScope.withKeyDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+function:withKeyDown)

```
fun KeyInjectionScope.withKeyDown(key: Key, block: KeyInjectionScope.() -> Unit): Unit
```

Executes the keyboard sequence specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyDown(androidx.compose.ui.input.key.Key,kotlin.Function1)`, whilst holding down the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyDown(androidx.compose.ui.input.key.Key,kotlin.Function1)`. This key must not be used within the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyDown(androidx.compose.ui.input.key.Key,kotlin.Function1)`.

If the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyDown(androidx.compose.ui.input.key.Key,kotlin.Function1)` is already down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key` | The key to be held down during injection of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyDown(androidx.compose.ui.input.key.Key,kotlin.Function1)`. |
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Sequence of KeyInjectionScope methods to be injected with the given key down. |

### KeyInjectionScope.withKeyToggled

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+function:withKeyToggled)

```
fun KeyInjectionScope.withKeyToggled(key: Key, block: KeyInjectionScope.() -> Unit): Unit
```

Executes the keyboard sequence specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyToggled(androidx.compose.ui.input.key.Key,kotlin.Function1)`, in between presses to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyToggled(androidx.compose.ui.input.key.Key,kotlin.Function1)`. This key can also be used within the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyToggled(androidx.compose.ui.input.key.Key,kotlin.Function1)`, as long as it is not down at the end of the block.

If the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyToggled(androidx.compose.ui.input.key.Key,kotlin.Function1)` is already down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key` | The key to be toggled around the injection of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeyToggled(androidx.compose.ui.input.key.Key,kotlin.Function1)`. |
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Sequence of KeyInjectionScope methods to be injected with the given key down. |

### KeyInjectionScope.withKeysDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+function:withKeysDown) Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.3.0)

```
fun KeyInjectionScope.withKeysDown(keys: List<Key>, block: KeyInjectionScope.() -> Unit): Unit
```

Executes the keyboard sequence specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)`, whilst holding down the each of the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)`. Each of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)` will be pressed down and released simultaneously. These keys must not be used within the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)`.

If any of the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)` are already down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `keys: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key>` | List of keys to be held down during injection of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysDown(kotlin.collections.List,kotlin.Function1)`. |
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Sequence of KeyInjectionScope methods to be injected with the given keys down. |

### KeyInjectionScope.withKeysToggled

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+function:withKeysToggled) Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.3.0)

```
fun KeyInjectionScope.withKeysToggled(keys: List<Key>, block: KeyInjectionScope.() -> Unit): Unit
```

Executes the keyboard sequence specified in the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)`, in between presses to the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)`. Each of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)` will be toggled simultaneously.These keys can also be used within the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)`, as long as they are not down at the end of the block.

If any of the given `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)` are already down, an `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` will be thrown.

| Parameters |
|---|---|
| `keys: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/Key>` | The keys to be toggled around the injection of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.KeyInjectionScope).withKeysToggled(kotlin.collections.List,kotlin.Function1)`. |
| `block: https://developer.android.com/reference/kotlin/androidx/compose/ui/test/KeyInjectionScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Sequence of KeyInjectionScope methods to be injected with the given keys down. |

## Extension properties

### GestureScope.bottom

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:bottom) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.bottom: Float
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the y-coordinate for the bottom of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. Note that, unless `height == 0`, `bottom != height`. In particular, `bottom == height - 1f`, because pixels are 0-based. If `height == 0`, `bottom == 0` too.

### GestureScope.bottomCenter

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:bottomCenter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.bottomCenter: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the center of the bottom edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. Note that `bottomCenter.y != height`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()`.

### GestureScope.bottomLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:bottomLeft) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.bottomLeft: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the bottom left corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. Note that `bottomLeft.y != height`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()`.

### GestureScope.bottomRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:bottomRight) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.bottomRight: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the bottom right corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. Note that `bottomRight.x != width` and `bottomRight.y != height`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).bottom()`.

### GestureScope.center

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:center) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.center: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the center of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

### GestureScope.centerLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:centerLeft) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.centerLeft: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the center of the left edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

### GestureScope.centerRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:centerRight) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.centerRight: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the center of the right edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. Note that `centerRight.x != width`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()`.

### GestureScope.centerX

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:centerX) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.centerX: Float
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the x-coordinate for the center of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

### GestureScope.centerY

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:centerY) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.centerY: Float
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the y-coordinate for the center of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

### TestMonotonicFrameClock.frameDelayMillis

android Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/TestMonotonicFrameClock.jvmAndAndroid.kt+symbol:frameDelayMillis) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
@ExperimentalTestApi
val TestMonotonicFrameClock.frameDelayMillis: Long
```

The frame delay time for the `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/TestMonotonicFrameClock` in milliseconds.

### GestureScope.height

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:height) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.height: Int
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Shorthand for `size.height`

### IndirectPointerInjectionScope.inputDeviceBottom

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceBottom) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceBottom: Float
```

The y-coordinate for the bottom of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

Note that, unless `inputDeviceHeight == 0`, `inputDeviceBottom != inputDeviceHeight`. In particular, `inputDeviceBottom == inputDeviceHeight - 1f`, because pixels are 0-based. If `inputDeviceHeight == 0`, `inputDeviceBottom == 0` too.

### IndirectPointerInjectionScope.inputDeviceBottomCenter

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceBottomCenter) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceBottomCenter: Offset
```

The center of the bottom edge of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

Note that `inputDeviceBottomCenter.y != inputDeviceHeight`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceBottom()`.

### IndirectPointerInjectionScope.inputDeviceBottomLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceBottomLeft) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceBottomLeft: Offset
```

The bottom left corner of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

Note that `inputDeviceBottomLeft.y != inputDeviceHeight`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceBottom()`.

### IndirectPointerInjectionScope.inputDeviceBottomRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceBottomRight) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceBottomRight: Offset
```

The bottom right corner of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

Note that `inputDeviceBottomRight.x != inputDeviceWidth` and `inputDeviceBottomRight.y != inputDeviceHeight`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceRight()` and `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceBottom()`.

### IndirectPointerInjectionScope.inputDeviceCenter

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceCenter) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceCenter: Offset
```

The center of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceCenterLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceCenterLeft) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceCenterLeft: Offset
```

The center of the left edge of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceCenterRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceCenterRight) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceCenterRight: Offset
```

The center of the right edge of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

Note that `inputDeviceCenterRight.x != inputDeviceWidth`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceRight()`.

### IndirectPointerInjectionScope.inputDeviceCenterX

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceCenterX) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceCenterX: Float
```

The x-coordinate for the center of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceCenterY

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceCenterY) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceCenterY: Float
```

The y-coordinate for the center of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceHeight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceHeight) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceHeight: Int
```

The height of the external indirect pointer input device that provide the height boundary for indirect input. If you go outside this height, the tests will throw an exception. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceLeft) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceLeft: Float
```

The x-coordinate for the left edge of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceRight) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceRight: Float
```

The x-coordinate for the right edge of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

Note that, unless `inputDeviceWidth == 0`, `inputDeviceRight != inputDeviceWidth`. In particular, `inputDeviceRight == inputDeviceWidth - 1f`, because pixels are 0-based. If `inputDeviceWidth == 0`, `inputDeviceRight == 0` too.

### IndirectPointerInjectionScope.inputDeviceTop

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceTop) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceTop: Float
```

The y-coordinate for the top of the indirect pointer input device we're interacting with in px, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceTopCenter

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceTopCenter) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceTopCenter: Offset
```

The center of the top edge of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceTopLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceTopLeft) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceTopLeft: Offset
```

The top left corner of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

### IndirectPointerInjectionScope.inputDeviceTopRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceTopRight) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceTopRight: Offset
```

The top right corner of the indirect pointer input device we're interacting with, where (0, 0) is the top left corner of the indirect pointer input device. Note: This is not related to the screen coordinates.

Note that `inputDeviceTopRight.x != inputDeviceWidth`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.IndirectPointerInjectionScope).inputDeviceRight()`.

### IndirectPointerInjectionScope.inputDeviceWidth

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/IndirectPointerInjectionScope.kt+symbol:inputDeviceWidth) Added in [1.12.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.12.0)

```
val IndirectPointerInjectionScope.inputDeviceWidth: Int
```

The width of the external indirect pointer input device that provide the width boundary for indirect input. If you go outside this width, the tests will throw an exception. Note: This is not related to the screen coordinates.

### KeyInjectionScope.isAltDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+symbol:isAltDown) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
val KeyInjectionScope.isAltDown: Boolean
```

Verifies whether either of the alt keys are down.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if an alt key is currently down, false otherwise. |

### KeyInjectionScope.isCtrlDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+symbol:isCtrlDown) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
val KeyInjectionScope.isCtrlDown: Boolean
```

Verifies whether either of the control keys are down.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if a control key is currently down, false otherwise. |

### KeyInjectionScope.isFnDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+symbol:isFnDown) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
val KeyInjectionScope.isFnDown: Boolean
```

Verifies whether the function key is down.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if the function key is currently down, false otherwise. |

### KeyInjectionScope.isMetaDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+symbol:isMetaDown) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
val KeyInjectionScope.isMetaDown: Boolean
```

Verifies whether either of the meta keys are down.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if a meta key is currently down, false otherwise. |

### KeyInjectionScope.isShiftDown

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/KeyInjectionScope.kt+symbol:isShiftDown) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.2.0)

```
val KeyInjectionScope.isShiftDown: Boolean
```

Verifies whether either of the shift keys are down.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true if a shift key is currently down, false otherwise. |

### GestureScope.left

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:left) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.left: Float
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the x-coordinate for the left edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

### GestureScope.right

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:right) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.right: Float
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the x-coordinate for the right edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. Note that, unless `width == 0`, `right != width`. In particular, `right == width - 1f`, because pixels are 0-based. If `width == 0`, `right == 0` too.

### GestureScope.top

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:top) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.top: Float
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the y-coordinate for the bottom of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

### GestureScope.topCenter

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:topCenter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.topCenter: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the center of the top edge of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

### GestureScope.topLeft

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:topLeft) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.topLeft: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the top left corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node.

### GestureScope.topRight

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:topRight) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.topRight: Offset
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Returns the top right corner of the node we're interacting with, in the node's local coordinate system, where (0, 0) is the top left corner of the node. Note that `topRight.x != width`, see `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/package-summary#(androidx.compose.ui.test.GestureScope).right()`.

### GestureScope.width

Cmn Artifact: [androidx.compose.ui:ui-test](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/GestureScope.kt+symbol:width) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.1.0)

```
val GestureScope.width: Int
```

> [!CAUTION]
> **This property is deprecated.**   
> Replaced by TouchInjectionScope. Use \`performTouchInput\` instead of \`performGesture\`

Shorthand for `size.width`