diff --git a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/common/toolwindows/StructureToolWindowUi.kt b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/common/toolwindows/StructureToolWindowUi.kt index 5e625dd9472c..e79cc9fdb0c5 100644 --- a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/common/toolwindows/StructureToolWindowUi.kt +++ b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/common/toolwindows/StructureToolWindowUi.kt @@ -9,6 +9,7 @@ import com.intellij.driver.sdk.ui.components.elements.ActionButtonUi import com.intellij.driver.sdk.ui.components.elements.JTreeUiComponent import com.intellij.driver.sdk.ui.components.elements.tree import com.intellij.driver.sdk.ui.rdTarget +import com.intellij.driver.sdk.wait import org.intellij.lang.annotations.Language import java.awt.Point import kotlin.time.Duration.Companion.seconds @@ -32,6 +33,14 @@ class StructureToolWindowUi(data: ComponentData) : UiComponent(data) { waitForText?.let { structureTree.waitAnyTexts(message = message, timeout = 10.seconds, predicate = it) } return structureTree } + fun waitExpandedAndGetStructureTree(message: String? = null, expandPath: List? = null, waitForText: ((UiText) -> Boolean)? = null): JTreeUiComponent { + val structureTree = structureTree.waitFound(10.seconds) + expandPath?.toTypedArray()?.let { + structureTree.expandPath(*it) + } + waitForText?.let { structureTree.waitAnyTexts(message = message, timeout = 10.seconds, predicate = it) } + return structureTree + } private val structureTree get() = tree().apply { replaceCellRendererReader(driver.new(AccessibleNameCellRendererReader::class, rdTarget = component.rdTarget)) }