From e63b8a0fc3176bdce57744ae2068977bf8df6402 Mon Sep 17 00:00:00 2001 From: "Alexander.Danilov" Date: Thu, 21 Nov 2024 22:09:51 +0100 Subject: [PATCH] [ai-assistant][ui-tests] add method to disable notifications with exclusion pattern and use for ML tests GitOrigin-RevId: 6e79fb0953f70f8dc48bf93592d679f4626a8d29 --- .../intellij/driver/sdk/NotificationUtils.kt | 2 ++ .../utils/NotificationUtils.kt | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) 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