diff --git a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PackageRepositoriesSettingsUi.kt b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PackageRepositoriesSettingsUi.kt new file mode 100644 index 000000000000..b9bcc25945d2 --- /dev/null +++ b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PackageRepositoriesSettingsUi.kt @@ -0,0 +1,21 @@ +package com.intellij.driver.sdk.ui.components.python + +import com.intellij.driver.sdk.ui.components.ComponentData +import com.intellij.driver.sdk.ui.components.UiComponent +import com.intellij.driver.sdk.ui.components.settings.SettingsDialogUiComponent + +fun SettingsDialogUiComponent.packageRepositoriesSettingsPage(action: PackageRepositoriesSettingsPageUi.() -> Unit = {}): PackageRepositoriesSettingsPageUi { + openTreeSettingsSection("Python", "Package Repositories", fullMatch = false) + return x(PackageRepositoriesSettingsPageUi::class.java) { + byType("com.intellij.openapi.options.ex.ConfigurableCardPanel") + }.apply(action) +} + +class PackageRepositoriesSettingsPageUi(data: ComponentData) : UiComponent(data) { + val addButton = x { and(byClass("ActionButton"), byAccessibleName("Add")) } + val removeButton = x { and(byClass("ActionButton"), byAccessibleName("Delete")) } + val enableRepositoryCheckBox = x { byAccessibleName("Enable repository") } + + val nameField = x("//div[@accessiblename='Name:' and @class='JBTextField']") + val urlField = x("//div[@accessiblename='Repository URL:' and @class='JBTextField']") +} diff --git a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PythonPackageRepositoriesDialogUi.kt b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PythonPackageRepositoriesDialogUi.kt deleted file mode 100644 index 78798a7943f4..000000000000 --- a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PythonPackageRepositoriesDialogUi.kt +++ /dev/null @@ -1,28 +0,0 @@ -package com.intellij.driver.sdk.ui.components.python - -import com.intellij.driver.sdk.ui.components.ComponentData -import com.intellij.driver.sdk.ui.components.UiComponent -import com.intellij.driver.sdk.ui.components.common.IdeaFrameUI -import javax.swing.JDialog -import javax.swing.JFrame - -/** - * Package repository management moved from the standalone "Python Package Repositories" dialog into - * the Settings dialog "Python | Package Repositories" page (PY-89838). This component targets that - * Settings page; open it via the Python Packages tool window Options menu -> "Repositories...". - */ -fun IdeaFrameUI.pythonPackageRepositoriesDialog(func: PythonPackageRepositoriesDialogUi.() -> Unit = {}) = - x(PythonPackageRepositoriesDialogUi::class.java) { - and(or(byType(JDialog::class.java), byType(JFrame::class.java)), byAccessibleName("Settings")) - }.apply(func) - -class PythonPackageRepositoriesDialogUi(data: ComponentData) : UiComponent(data) { - val addButton = x { and(byClass("ActionButton"), byAccessibleName("Add")) } - val removeButton = x { and(byClass("ActionButton"), byAccessibleName("Delete")) } - val okButton = x { byAccessibleName("OK") } - val applyButton = x { byAccessibleName("Apply") } - val cancelButton = x { byAccessibleName("Cancel") } - - val nameField = x("//div[@accessiblename='Name:' and @class='JBTextField']") - val urlField = x("//div[@accessiblename='Repository URL:' and @class='JBTextField']") -} diff --git a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PythonPackagesUI.kt b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PythonPackagesUI.kt index aaa720c367d6..ba64a102a8b3 100644 --- a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PythonPackagesUI.kt +++ b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/ui/components/python/PythonPackagesUI.kt @@ -11,14 +11,14 @@ fun Finder.pythonPackagesToolWindow(@Language("xpath") xpath: String? = null) = class PythonPackagesToolWindowUiComponent(data: ComponentData) : UiComponent(data) { val packagesTable - get() = x("//div[@class='PyPackagesTree']", UiComponent::class.java) + get() = x("//div[@class='JBScrollPane'][.//div[@class='PyPackagesTree']]", UiComponent::class.java) val searchField get() = x("//div[@class='PyPackageSearchTextField']", UiComponent::class.java) - // Gear button in the Python Packages tool window toolbar - val settingsButton - get() = x("//div[@myicon='settings.svg']", UiComponent::class.java) + // "Options" button in the Python Packages tool window toolbar (AllIcons.Actions.More since PY-89838) + val optionsButton + get() = x { and(byClass("ActionButton"), byAccessibleName("Options")) } val installButton = x { and((byClass("JBOptionButton")), (byAccessibleName("Install"))) }