[fus] IJPL-231993 Test on StatisticsJobsScheduler registered in Java IDE Customization

GitOrigin-RevId: 2b0e903532c57d9213737b8d017c6547fa92ca15
This commit is contained in:
Yuriy Artamonov
2026-01-30 21:17:59 +00:00
committed by intellij-monorepo-bot
parent 63661162cd
commit fd45c7cbbf
6 changed files with 78 additions and 1 deletions
+26 -1
View File
@@ -30,4 +30,29 @@ jvm_library(
"//notebooks/visualization",
]
)
### auto-generated section `build intellij.java.ide.customization` end
jvm_library(
name = "ide-customization_test_lib",
visibility = ["//visibility:public"],
srcs = glob(["test/**/*.kt", "test/**/*.java", "test/**/*.form"], allow_empty = True),
associates = [":ide-customization"],
deps = [
"//java/java-psi-api:psi",
"//platform/core-api:core",
"//platform/lang-api:lang",
"//platform/platform-impl:ide-impl",
"//platform/lang-core",
"//platform/testFramework",
"//platform/testFramework:testFramework_test_lib",
]
)
### auto-generated section `build intellij.java.ide.customization` end
### auto-generated section `test intellij.java.ide.customization` start
load("@community//build:tests-options.bzl", "jps_test")
jps_test(
name = "ide-customization_test",
runtime_deps = [":ide-customization_test_lib"]
)
### auto-generated section `test intellij.java.ide.customization` end
@@ -5,6 +5,7 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
@@ -20,5 +21,6 @@
<orderEntry type="module" module-name="intellij.notebooks.visualization" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.ide.impl" />
<orderEntry type="module" module-name="intellij.platform.lang.core" />
<orderEntry type="module" module-name="intellij.platform.testFramework" scope="TEST" />
</component>
</module>
@@ -0,0 +1,47 @@
// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.ide.customization.java;
import com.intellij.ide.ApplicationActivity;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.extensions.impl.ExtensionPointImpl;
import com.intellij.openapi.util.Pair;
import com.intellij.testFramework.fixtures.BasePlatformTestCase;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Map;
public class FusSchedulersRegistrationTest extends BasePlatformTestCase {
// runs with intellij.java.tests classpath
public static final String PLUGIN_ID = "com.intellij.java.ide";
private final ExtensionPointName<ApplicationActivity> APP_ACTIVITIES_EP =
new ExtensionPointName<>("com.intellij.applicationActivity");
private final ExtensionPointName<ApplicationActivity> POST_STARTUP_ACTIVITIES_EP =
new ExtensionPointName<>("com.intellij.postStartupActivity");
public void testSchedulerActivitiesAvailable() {
var applicationActivities = getExtensionClasses(APP_ACTIVITIES_EP);
assertTrue("StatisticsJobsScheduler is missing",
applicationActivities.containsKey("com.intellij.internal.statistic.updater.StatisticsJobsScheduler"));
assertTrue("StatisticsStateCollectorsScheduler is missing",
applicationActivities.containsKey("com.intellij.internal.statistic.updater.StatisticsStateCollectorsScheduler"));
assertEquals(PLUGIN_ID, applicationActivities.get("com.intellij.internal.statistic.updater.StatisticsJobsScheduler"));
assertEquals(PLUGIN_ID, applicationActivities.get("com.intellij.internal.statistic.updater.StatisticsStateCollectorsScheduler"));
var postStartup = getExtensionClasses(POST_STARTUP_ACTIVITIES_EP);
assertTrue("StatisticsStateCollectorsScheduler$MyStartupActivity is missing",
postStartup.containsKey("com.intellij.internal.statistic.updater.StatisticsStateCollectorsScheduler$MyStartupActivity"));
assertEquals(PLUGIN_ID, applicationActivities.get("com.intellij.internal.statistic.updater.StatisticsStateCollectorsScheduler"));
}
// operates with EP adapters instead of instances, because those activities are not created in unit tests mode
// they throw ExtensionNotApplicableException.create() from init
private static @NotNull Map<@NotNull String, String> getExtensionClasses(ExtensionPointName<ApplicationActivity> epName) {
return ContainerUtil.map2Map(((ExtensionPointImpl<?>)epName.getPoint()).getSortedAdapters(),
it -> new Pair<>(it.getAssignableToClassName(), it.pluginDescriptor.getPluginId().getIdString()));
}
}
+1
View File
@@ -178,6 +178,7 @@ jvm_library(
"//platform/testFramework/junit5:junit5_test_lib",
"//platform/ml-api:ml",
"//java/ide-customization",
"//java/ide-customization:ide-customization_test_lib",
"//platform/backend/workspace",
"//platform/util",
"//platform/core-api:core",
@@ -312,6 +312,7 @@ com.intellij.java.*
org.jetbrains.java.*
org.jetbrains.uast.test.java.*
com.intellij.codeInspection.tests.java.*
com.intellij.ide.customization.java.*
com.siyeh.*
-com.intellij.java.compiler.*
-com.intellij.java.propertyBased.*
+1
View File
@@ -218,6 +218,7 @@ jvm_library(
"//plugins/kotlin/kotlin.searching/base",
"//plugins/kotlin/j2k/k1.old.post-processing",
"//java/ide-customization",
"//java/ide-customization:ide-customization_test_lib",
"//plugins/kotlin/refactorings/kotlin.refactorings.common:kotlin-refactorings-common",
"//plugins/kotlin/base/test:test_test_lib",
"@lib//:hamcrest",