From 92ba6c4cd0344d8d48a0523965fc901690dde2c2 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Wed, 28 Dec 2016 14:18:13 +0100 Subject: [PATCH] test to ensure that vm class names are used through run markers (IDEA-CR-17024) --- .../navigation/RunLineMarkerTest.java | 29 +++++++++++++++++++ .../lineMarker/RunLineMarkerContributor.java | 6 ++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/navigation/RunLineMarkerTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/navigation/RunLineMarkerTest.java index 0bcaf8224a93..65fb9f2e1428 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/navigation/RunLineMarkerTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/navigation/RunLineMarkerTest.java @@ -18,13 +18,20 @@ package com.intellij.codeInsight.navigation; import com.intellij.application.options.editor.GutterIconsConfigurable; import com.intellij.codeInsight.daemon.GutterIconDescriptor; import com.intellij.codeInsight.daemon.GutterMark; +import com.intellij.execution.TestStateStorage; +import com.intellij.execution.lineMarker.RunLineMarkerContributor; +import com.intellij.execution.testframework.sm.runner.states.TestStateInfo; +import com.intellij.icons.AllIcons; import com.intellij.openapi.actionSystem.ActionGroup; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.editor.markup.GutterIconRenderer; +import com.intellij.psi.PsiFile; import com.intellij.testFramework.TestActionEvent; import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; +import com.intellij.testIntegration.TestRunLineMarkerProvider; import com.intellij.util.containers.ContainerUtil; +import java.util.Date; import java.util.List; import java.util.Set; @@ -71,6 +78,28 @@ public class RunLineMarkerTest extends LightCodeInsightFixtureTestCase { assertEquals("Run 'MainTest'", event.getPresentation().getText()); } + public void testNestedTestClass() throws Exception { + TestStateStorage stateStorage = TestStateStorage.getInstance(getProject()); + String testUrl = "java:suite://Main$MainTest"; + try { + stateStorage.writeState(testUrl, new TestStateStorage.Record(TestStateInfo.Magnitude.FAILED_INDEX.getValue(), new Date(), 0)); + myFixture.addClass("package junit.framework; public class TestCase {}"); + PsiFile file = myFixture.configureByText("MainTest.java", "public class Main {\n" + + " public class MainTest extends junit.framework.TestCase {\n" + + " public void testFoo() {\n" + + " }\n" + + " }" + + "}"); + + RunLineMarkerContributor.Info info = new TestRunLineMarkerProvider().getInfo(file.findElementAt(myFixture.getCaretOffset())); + assertNotNull(info); + assertEquals(AllIcons.RunConfigurations.TestState.Red2, info.icon); + } + finally { + stateStorage.removeState(testUrl); + } + } + public void testConfigurable() throws Exception { GutterIconsConfigurable configurable = new GutterIconsConfigurable(); configurable.createComponent(); diff --git a/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerContributor.java b/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerContributor.java index 8e4ceb4af695..bcd3fa2448c6 100644 --- a/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerContributor.java +++ b/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerContributor.java @@ -32,10 +32,10 @@ public abstract class RunLineMarkerContributor { static final LanguageExtension EXTENSION = new LanguageExtension<>("com.intellij.runLineMarkerContributor"); public static class Info { - final Icon icon; - final AnAction[] actions; + public final Icon icon; + public final AnAction[] actions; - final Function tooltipProvider; + public final Function tooltipProvider; public Info(Icon icon, @NotNull AnAction[] actions, @Nullable Function tooltipProvider) { this.icon = icon;