diff --git a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/NotificationUtils.kt b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/NotificationUtils.kt index bc64f8d31fe4..1a953ab352fc 100644 --- a/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/NotificationUtils.kt +++ b/platform/remote-driver/test-sdk/src/com/intellij/driver/sdk/NotificationUtils.kt @@ -8,4 +8,6 @@ interface NotificationUtils { fun disableAllBalloonNotifications() fun disableBalloonNotificationsByGroupIdPattern(groupIdsPattern: String) + + fun disableAllBalloonNotificationsWithExcludesPattern(excludesPattern: String) } \ No newline at end of file diff --git a/plugins/performanceTesting/core/src/com/jetbrains/performancePlugin/utils/NotificationUtils.kt b/plugins/performanceTesting/core/src/com/jetbrains/performancePlugin/utils/NotificationUtils.kt index 1c71555511ca..160ceb02403a 100644 --- a/plugins/performanceTesting/core/src/com/jetbrains/performancePlugin/utils/NotificationUtils.kt +++ b/plugins/performanceTesting/core/src/com/jetbrains/performancePlugin/utils/NotificationUtils.kt @@ -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()) } + } } \ No newline at end of file