[ai-assistant][ui-tests] add method to disable notifications with exclusion pattern and use for ML tests

GitOrigin-RevId: 6e79fb0953f70f8dc48bf93592d679f4626a8d29
This commit is contained in:
Alexander.Danilov
2024-11-22 10:36:02 +00:00
committed by intellij-monorepo-bot
parent b2a8e392ff
commit e63b8a0fc3
2 changed files with 16 additions and 4 deletions
@@ -8,4 +8,6 @@ interface NotificationUtils {
fun disableAllBalloonNotifications()
fun disableBalloonNotificationsByGroupIdPattern(groupIdsPattern: String)
fun disableAllBalloonNotificationsWithExcludesPattern(excludesPattern: String)
}
@@ -2,8 +2,10 @@ package com.jetbrains.performancePlugin.utils
import com.intellij.notification.NotificationDisplayType
import com.intellij.notification.NotificationsConfiguration
import com.intellij.notification.impl.NotificationSettings
import com.intellij.notification.impl.NotificationsConfigurationImpl
import com.intellij.openapi.diagnostic.Logger
import kotlin.text.toRegex
/**
* @See com.intellij.driver.sdk.NotificationUtils
@@ -16,18 +18,26 @@ object NotificationUtils {
NotificationsConfigurationImpl.getInstanceImpl().SHOW_BALLOONS = false
}
@JvmStatic
fun disableBalloonNotificationsByGroupIdPattern(groupIdsPattern: String) {
private fun disableBalloonNotifications(condition: (NotificationSettings) -> Boolean) {
val conf = NotificationsConfiguration.getNotificationsConfiguration()
val regex = groupIdsPattern.toRegex()
if (conf is NotificationsConfigurationImpl) {
val allSettings = conf.allSettings
for (setting in allSettings) {
if (setting.groupId.matches(regex)) {
if (condition(setting)) {
LOG.info("Disable notification group ${setting.groupId}")
conf.changeSettings(setting.copy(displayType = NotificationDisplayType.NONE))
}
}
}
}
@JvmStatic
fun disableBalloonNotificationsByGroupIdPattern(groupIdsPattern: String) {
disableBalloonNotifications { it.groupId.matches(groupIdsPattern.toRegex()) }
}
@JvmStatic
fun disableAllBalloonNotificationsWithExcludesPattern(excludesPattern: String) {
disableBalloonNotifications { !it.groupId.matches(excludesPattern.toRegex()) }
}
}