mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-18 16:17:00 +07:00
104 lines
3.5 KiB
Java
104 lines
3.5 KiB
Java
package com.intellij.codeInsight.daemon.quickFix;
|
|
|
|
import com.intellij.codeInsight.intention.EmptyIntentionAction;
|
|
import com.intellij.codeInsight.intention.IntentionAction;
|
|
import com.intellij.codeInsight.intention.IntentionActionDelegate;
|
|
import com.intellij.codeInspection.LocalInspectionTool;
|
|
import com.intellij.codeInspection.ProblemsHolder;
|
|
import com.intellij.codeInspection.defUse.DefUseInspection;
|
|
import com.intellij.codeInspection.ex.EditInspectionToolsSettingsAction;
|
|
import com.intellij.psi.JavaElementVisitor;
|
|
import com.intellij.psi.PsiElementVisitor;
|
|
import com.intellij.psi.PsiLiteralExpression;
|
|
import org.jetbrains.annotations.Nls;
|
|
import org.jetbrains.annotations.NonNls;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @author cdr
|
|
*/
|
|
public class EmptyIntentionInspectionQuickFixTest extends LightQuickFixTestCase {
|
|
@Override
|
|
@NonNls
|
|
protected String getBasePath() {
|
|
return "/codeInsight/daemonCodeAnalyzer/quickFix/emptyIntention";
|
|
}
|
|
|
|
@NotNull
|
|
@Override
|
|
protected LocalInspectionTool[] configureLocalInspectionTools() {
|
|
return new LocalInspectionTool[]{new DefUseInspection(), new LocalInspectionTool() {
|
|
@Override
|
|
@Nls
|
|
@NotNull
|
|
public String getGroupDisplayName() {
|
|
return "MyGroup";
|
|
}
|
|
|
|
@Override
|
|
@Nls
|
|
@NotNull
|
|
public String getDisplayName() {
|
|
return "My";
|
|
}
|
|
|
|
@Override
|
|
@NonNls
|
|
@NotNull
|
|
public String getShortName() {
|
|
return getDisplayName();
|
|
}
|
|
|
|
@Override
|
|
@NotNull
|
|
public PsiElementVisitor buildVisitor(@NotNull final ProblemsHolder holder, boolean isOnTheFly) {
|
|
return new JavaElementVisitor() {
|
|
@Override public void visitLiteralExpression(PsiLiteralExpression expression) {
|
|
final String s = (String)expression.getValue();
|
|
if (s.contains("a")) holder.registerProblem(expression, "Look ma! This String contains 'a'");
|
|
if (s.contains("b")) holder.registerProblem(expression, "Look ma! This String contains 'b'");
|
|
}
|
|
};
|
|
}
|
|
}};
|
|
}
|
|
|
|
public void testX() throws Exception {
|
|
configureByFile(getBasePath()+"/X.java");
|
|
List<IntentionAction> emptyActions = getAvailableActions();
|
|
for (int i = emptyActions.size()-1; i>=0; i--) {
|
|
IntentionAction action = emptyActions.get(i);
|
|
if (action instanceof IntentionActionDelegate) action = ((IntentionActionDelegate)action).getDelegate();
|
|
if (!(action instanceof EmptyIntentionAction)) emptyActions.remove(i);
|
|
}
|
|
assertEquals(emptyActions.toString(), 1, emptyActions.size());
|
|
}
|
|
|
|
public void testLowPriority() throws Exception {
|
|
configureByFile(getBasePath() + "/LowPriority.java");
|
|
List<IntentionAction> emptyActions = getAvailableActions();
|
|
int i = 0;
|
|
for(;i < emptyActions.size(); i++) {
|
|
IntentionAction action = emptyActions.get(i);
|
|
if (action instanceof IntentionActionDelegate) action = ((IntentionActionDelegate)action).getDelegate();
|
|
if ("Make 'i' not final".equals(action.getText())) {
|
|
break;
|
|
}
|
|
if (action instanceof EmptyIntentionAction) {
|
|
fail("Low priority action prior to quick fix");
|
|
}
|
|
}
|
|
assertTrue(i < emptyActions.size());
|
|
for (; i < emptyActions.size(); i++) {
|
|
IntentionAction action = emptyActions.get(i);
|
|
if (action instanceof IntentionActionDelegate) action = ((IntentionActionDelegate)action).getDelegate();
|
|
if (action instanceof EditInspectionToolsSettingsAction) {
|
|
return;
|
|
}
|
|
}
|
|
fail("Missed inspection setting action");
|
|
}
|
|
}
|