test to ensure that vm class names are used through run markers (IDEA-CR-17024)

This commit is contained in:
Anna.Kozlova
2016-12-28 14:20:06 +01:00
parent 88b453aad4
commit 92ba6c4cd0
2 changed files with 32 additions and 3 deletions
@@ -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 Main<caret>Test 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();
@@ -32,10 +32,10 @@ public abstract class RunLineMarkerContributor {
static final LanguageExtension<RunLineMarkerContributor> 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<PsiElement, String> tooltipProvider;
public final Function<PsiElement, String> tooltipProvider;
public Info(Icon icon, @NotNull AnAction[] actions, @Nullable Function<PsiElement, String> tooltipProvider) {
this.icon = icon;