[driver][ui-tests] AT-2117 Added "Main Toolbar: Check custom icons" test

GitOrigin-RevId: f21f1a1224b7a099877cc64f75ea0e769066bbcd
This commit is contained in:
Artem.Grigorash
2025-06-20 11:56:06 +00:00
committed by intellij-monorepo-bot
parent 3f96f4e941
commit 04fc41ddac
@@ -3,14 +3,19 @@ package com.intellij.driver.sdk.ui.components.common.dialogs
import com.intellij.driver.sdk.ui.Finder
import com.intellij.driver.sdk.ui.components.ComponentData
import com.intellij.driver.sdk.ui.components.elements.*
import com.intellij.driver.sdk.ui.shouldBe
import com.intellij.driver.sdk.ui.should
import com.intellij.driver.sdk.ui.xQuery
import java.awt.Point
fun Finder.customizeFloatingToolbarDialog(action: CustomizeFloatingToolbarDialog.() -> Unit) {
x(xQuery { byTitle("Customize Floating Code Toolbar") }, CustomizeFloatingToolbarDialog::class.java).action()
fun Finder.customizeFloatingToolbarDialog(action: CustomizeDialog.() -> Unit) {
x(xQuery { byTitle("Customize Floating Code Toolbar") }, CustomizeDialog::class.java).action()
}
class CustomizeFloatingToolbarDialog(data: ComponentData) : DialogUiComponent(data) {
fun Finder.customizeMainToolbarDialog(action: CustomizeDialog.() -> Unit) {
x(xQuery { byTitle("Customize Main Toolbar") }, CustomizeDialog::class.java).action()
}
class CustomizeDialog(data: ComponentData) : DialogUiComponent(data) {
val addButton = button("Add…")
fun addAction(actionName: String, customIcon: String? = null, vararg node: String) {
@@ -18,12 +23,22 @@ class CustomizeFloatingToolbarDialog(data: ComponentData) : DialogUiComponent(da
addButton.click()
dialog(xQuery { byTitle("Add Action") }) {
textField(xQuery { byAccessibleName("Message text filter") }).appendText(actionName)
shouldBe("${actionName} action is highlighted") {
tree().collectSelectedPaths().single().path.last().contains(actionName.split(" ").first())
tree().should("${actionName} action is highlighted") {
collectSelectedPaths().single().path.last().contains(actionName.split(" ").first())
}
if (customIcon != null) {
x(xQuery { byClass("BasicArrowButton") }).click()
list().clickItem(customIcon)
if (customIcon.contains("/")) {
val arrowButton = x(xQuery { byClass("BasicArrowButton") })
arrowButton.click(Point(-arrowButton.component.width / 2, arrowButton.component.height / 2))
dialog(title = "Browse Icon") {
textField().text = customIcon
okButton.click()
}
}
else {
x { byClass("BasicArrowButton") }.click()
list().clickItem(customIcon)
}
}
button("OK").click()
}