mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJQA-113 tests: uninstallation fixes
Merge-request: IJ-MR-191149 Merged-by: Alesia Matuzok <alesia.matuzok@jetbrains.com> GitOrigin-RevId: e21c18d6944f6a4037fc8d652c27c52d21e6dc89
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a7461e16d1
commit
669031ac10
+49
-2
@@ -16,12 +16,17 @@ import com.intellij.driver.sdk.ui.components.common.IdeaFrameUI
|
||||
import com.intellij.driver.sdk.ui.components.common.WelcomeScreenUI
|
||||
import com.intellij.driver.sdk.ui.components.common.tabbedPane
|
||||
import com.intellij.driver.sdk.ui.components.elements.DialogUiComponent
|
||||
import com.intellij.driver.sdk.ui.components.elements.accessibleList
|
||||
import com.intellij.driver.sdk.ui.components.elements.checkBox
|
||||
import com.intellij.driver.sdk.ui.components.elements.popup
|
||||
import com.intellij.driver.sdk.ui.components.elements.textField
|
||||
import com.intellij.driver.sdk.ui.components.elements.waitSelected
|
||||
import com.intellij.driver.sdk.ui.ui
|
||||
import com.intellij.driver.sdk.ui.xQuery
|
||||
import com.intellij.openapi.util.SystemInfo
|
||||
import com.intellij.driver.sdk.waitFor
|
||||
import java.awt.Point
|
||||
import java.awt.event.KeyEvent
|
||||
import javax.swing.JButton
|
||||
import javax.swing.JCheckBox
|
||||
import javax.swing.JDialog
|
||||
@@ -75,7 +80,7 @@ class PluginsSettingsPageUiComponent(data: ComponentData) : UiComponent(data) {
|
||||
}
|
||||
|
||||
fun installedTabWorkaroundApply() {
|
||||
// workaround for bug https://youtrack.jetbrains.com/issue/IJPL-228318 - switch between tabs to refresh UI state
|
||||
// TODO workaround for bug https://youtrack.jetbrains.com/issue/IJPL-228318 - switch between tabs to refresh UI state
|
||||
openInstalledTab()
|
||||
openMarketplaceTab()
|
||||
}
|
||||
@@ -125,10 +130,15 @@ class PluginsSettingsPageUiComponent(data: ComponentData) : UiComponent(data) {
|
||||
and(byType("com.intellij.ide.plugins.newui.ListPluginComponent"), byAccessibleName(pluginName))
|
||||
}.apply(action)
|
||||
|
||||
fun isPluginPresentInList(pluginName: String): Boolean =
|
||||
xx(ListPluginComponent::class.java) {
|
||||
and(byType("com.intellij.ide.plugins.newui.ListPluginComponent"), byAccessibleName(pluginName))
|
||||
}.list().isNotEmpty()
|
||||
|
||||
fun pluginDetailsPage(action: PluginDetailsPage.() -> Unit = {}): PluginDetailsPage =
|
||||
x(PluginDetailsPage::class.java) { byType("com.intellij.ide.plugins.newui.PluginDetailsPageComponent") }.apply(action)
|
||||
|
||||
//Dirty kostyl because our plugin manager can show this btn in one of these places or in both
|
||||
//TODO Dirty kostyl because our plugin manager can show this btn in one of these places or in both
|
||||
// and we cant predict it until full refactoring
|
||||
fun checkAnyRestartBtnForPlugin(pluginName: String) {
|
||||
step("Wait for restart button to appear either in list or in details") {
|
||||
@@ -145,6 +155,7 @@ class PluginsSettingsPageUiComponent(data: ComponentData) : UiComponent(data) {
|
||||
val name get() = accessibleName
|
||||
val installButton = x { and(byType(JButton::class.java), byAccessibleName("Install")) }
|
||||
val installedButton = x { and(byType(JButton::class.java), byAccessibleName("Installed")) }
|
||||
val uninstalledButton = x { and(byType(JButton::class.java), byAccessibleName("Uninstalled")) }
|
||||
val enabledCheckBox = checkBox { and(byType(JCheckBox::class.java), byAccessibleName("Enabled")) }
|
||||
val ultimateTagLabel = x { and(byType("com.intellij.ide.plugins.newui.TagComponent"), byAccessibleName("Ultimate")) }
|
||||
val proTagLabel = x { and(byType("com.intellij.ide.plugins.newui.TagComponent"), byAccessibleName("Pro")) }
|
||||
@@ -177,6 +188,14 @@ class PluginsSettingsPageUiComponent(data: ComponentData) : UiComponent(data) {
|
||||
return this
|
||||
}
|
||||
|
||||
fun checkUninstalledBtn(): ListPluginComponent {
|
||||
step("Wait for the Uninstalled btn appearance") {
|
||||
uninstalledButton.waitFound(2.minutes)
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
fun checkRestartBtnInPluginsList(): ListPluginComponent {
|
||||
step("Wait for the Restart IDE btn appearance in the plugins list") {
|
||||
restartIdeButton.waitFound(2.minutes)
|
||||
@@ -192,6 +211,26 @@ class PluginsSettingsPageUiComponent(data: ComponentData) : UiComponent(data) {
|
||||
return this
|
||||
}
|
||||
|
||||
fun checkErrorContainsText(errorText: String): ListPluginComponent {
|
||||
step("[Check] The error notice in the Plugins list contains text '$errorText'") {
|
||||
errorComponent.waitContainsText(errorText)
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
fun uninstallPluginByHotkey(): ListPluginComponent {
|
||||
step("Click on plugin and press hotkey") {
|
||||
click()
|
||||
keyboard { key(if (SystemInfo.isMac) KeyEvent.VK_BACK_SPACE else KeyEvent.VK_DELETE) }
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
fun pluginDescription(): PluginDetailsPage {
|
||||
this.click()
|
||||
return driver.ui.x(PluginDetailsPage::class.java) { byType("com.intellij.ide.plugins.newui.PluginDetailsPageComponent") }
|
||||
}
|
||||
|
||||
@Remote("com.intellij.ide.plugins.newui.ListPluginComponent")
|
||||
interface ListPluginComponentRef {
|
||||
fun getPluginModel(): PluginUiModel
|
||||
@@ -230,6 +269,14 @@ class PluginsSettingsPageUiComponent(data: ComponentData) : UiComponent(data) {
|
||||
return this
|
||||
}
|
||||
|
||||
fun uninstallPlugin(): PluginDetailsPage {
|
||||
step("Click on dropdown and uninstall plugin") {
|
||||
arrowButton.click()
|
||||
driver.ui.popup().waitFound(15.seconds).accessibleList().clickItem("Uninstall")
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
class OptionButtonUiComponent(data: ComponentData) : UiComponent(data) {
|
||||
val disableButton = x { and(byType(JButton::class.java), byAccessibleName("Disable")) }
|
||||
val enableButton = x { and(byType(JButton::class.java), byAccessibleName("Enable")) }
|
||||
|
||||
Reference in New Issue
Block a user