diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/extractSetFromComparison/afterJava4.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/extractSetFromComparison/afterJava1.4.java similarity index 100% rename from java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/extractSetFromComparison/afterJava4.java rename to java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/extractSetFromComparison/afterJava1.4.java diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/extractSetFromComparison/beforeJava4.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/extractSetFromComparison/beforeJava1.4.java similarity index 100% rename from java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/extractSetFromComparison/beforeJava4.java rename to java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/extractSetFromComparison/beforeJava1.4.java diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/StreamApiMigrationInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/StreamApiMigrationInspectionTest.java index 8276d083f807..5340df7698c7 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/StreamApiMigrationInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/StreamApiMigrationInspectionTest.java @@ -33,8 +33,8 @@ public class StreamApiMigrationInspectionTest extends LightQuickFixParameterized } @Override - protected LanguageLevel getLanguageLevel() { - return getTestName(false).contains("Java9") ? LanguageLevel.JDK_1_9 : LanguageLevel.JDK_1_8; + protected LanguageLevel getDefaultLanguageLevel() { + return LanguageLevel.JDK_1_8; } public void test() throws Exception { doAllTests(); } diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/intention/ExtractSetFromComparisonChainActionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/intention/ExtractSetFromComparisonChainActionTest.java index 3f11a2d8ce23..f3b257e264b0 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/intention/ExtractSetFromComparisonChainActionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/intention/ExtractSetFromComparisonChainActionTest.java @@ -23,11 +23,8 @@ public class ExtractSetFromComparisonChainActionTest extends LightIntentionActio public void test() throws Exception { doAllTests(); } @Override - protected LanguageLevel getLanguageLevel() { - String name = getTestName(false); - return name.contains("Java9") ? LanguageLevel.JDK_1_9 : - name.contains("Java4") ? LanguageLevel.JDK_1_4 : - LanguageLevel.JDK_1_8; + protected LanguageLevel getDefaultLanguageLevel() { + return LanguageLevel.JDK_1_8; } @Override diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/SimplifyOptionalCallChainsInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/SimplifyOptionalCallChainsInspectionTest.java index 91e614dedcea..2d6a32b56bc6 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/SimplifyOptionalCallChainsInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/SimplifyOptionalCallChainsInspectionTest.java @@ -17,7 +17,6 @@ package com.intellij.codeInspection; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixParameterizedTestCase; import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.pom.java.LanguageLevel; import com.intellij.testFramework.IdeaTestUtil; import org.jetbrains.annotations.NotNull; @@ -25,14 +24,9 @@ import org.jetbrains.annotations.NotNull; * @author Tagir Valeev */ public class SimplifyOptionalCallChainsInspectionTest extends LightQuickFixParameterizedTestCase { - @Override - protected LanguageLevel getLanguageLevel() { - return getTestName(false).endsWith("Java9.java") ? LanguageLevel.JDK_1_9 : LanguageLevel.JDK_1_8; - } - @Override protected Sdk getProjectJDK() { - return getTestName(false).endsWith("Java9.java") ? IdeaTestUtil.getMockJdk9() : IdeaTestUtil.getMockJdk18(); + return IdeaTestUtil.getMockJdk9(); } @NotNull diff --git a/java/testFramework/src/com/intellij/testFramework/LightCodeInsightTestCase.java b/java/testFramework/src/com/intellij/testFramework/LightCodeInsightTestCase.java index 60bffdad0ce5..9bb017582907 100644 --- a/java/testFramework/src/com/intellij/testFramework/LightCodeInsightTestCase.java +++ b/java/testFramework/src/com/intellij/testFramework/LightCodeInsightTestCase.java @@ -23,10 +23,15 @@ import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.impl.JavaPsiFacadeEx; import org.jetbrains.annotations.NotNull; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + /** * A TestCase for single PsiFile being opened in Editor conversion. See configureXXX and checkResultXXX method docs. */ public abstract class LightCodeInsightTestCase extends LightPlatformCodeInsightTestCase { + private static final Pattern JDK_SELECT_PATTERN = Pattern.compile("Java([\\d.]+).java$"); + public static JavaPsiFacadeEx getJavaFacade() { return JavaPsiFacadeEx.getInstanceEx(ourProject); } @@ -37,7 +42,31 @@ public abstract class LightCodeInsightTestCase extends LightPlatformCodeInsightT setLanguageLevel(getLanguageLevel()); } + /** + * Returns a language level for test. Could be overridden for specific behavior. + *

+ * This implementation checks the test name. If it ends with JavaXYZ.java and + * XYZ is known Java version (e.g. Java1.4.java or Java9.java), then version XYZ is returned. + * Otherwise {@link #getDefaultLanguageLevel() default version} is returned. + * + * @return a project language level for test. + */ protected LanguageLevel getLanguageLevel() { + Matcher matcher = JDK_SELECT_PATTERN.matcher(getTestName(false)); + if(matcher.find()) { + LanguageLevel level = LanguageLevel.parse(matcher.group(1)); + if (level != null) { + return level; + } + } + + return getDefaultLanguageLevel(); + } + + /** + * @return default language level if it's not forced by test name + */ + protected LanguageLevel getDefaultLanguageLevel() { return LanguageLevel.HIGHEST; } diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/threading/WhileLoopSpinsOnFieldInspectionFixTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/threading/WhileLoopSpinsOnFieldInspectionFixTest.java index 421700e6a1c3..98818bbc270a 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/threading/WhileLoopSpinsOnFieldInspectionFixTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/threading/WhileLoopSpinsOnFieldInspectionFixTest.java @@ -37,19 +37,13 @@ public class WhileLoopSpinsOnFieldInspectionFixTest extends LightQuickFixParamet } @Override - protected LanguageLevel getLanguageLevel() { - if(getTestName(false).endsWith("Java9.java")) { - return LanguageLevel.JDK_1_9; - } + protected LanguageLevel getDefaultLanguageLevel() { return LanguageLevel.JDK_1_8; } @Override protected Sdk getProjectJDK() { - if(getTestName(false).endsWith("Java9.java")) { - return IdeaTestUtil.getMockJdk9(); - } - return IdeaTestUtil.getMockJdk18(); + return IdeaTestUtil.getMockJdk9(); } public void test() throws Exception {