setup language levels in light tests with disposable

This commit is contained in:
Anna.Kozlova
2018-12-13 17:30:20 +01:00
parent 9fc448d6d5
commit 7604ce41f3
5 changed files with 12 additions and 17 deletions
@@ -15,7 +15,6 @@ import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.openapi.roots.ModuleRootModificationUtil;
import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
@@ -45,7 +44,7 @@ public class AdvHighlightingTest extends DaemonAnalyzerTestCase {
@Override
protected Sdk getTestProjectJdk() {
LanguageLevelProjectExtension.getInstance(myProject).setLanguageLevel(LanguageLevel.JDK_1_4);
setLanguageLevel(LanguageLevel.JDK_1_4);
return IdeaTestUtil.getMockJdk14();
}
@@ -258,7 +257,7 @@ public class AdvHighlightingTest extends DaemonAnalyzerTestCase {
}
public void testNotAKeywords() throws Exception {
LanguageLevelProjectExtension.getInstance(myProject).setLanguageLevel(LanguageLevel.JDK_1_4);
setLanguageLevel(LanguageLevel.JDK_1_4);
doTest(BASE_PATH + "/notAKeywords/Test.java", BASE_PATH + "/notAKeywords", false, false);
}
@@ -44,7 +44,7 @@ public class JavaAPIUsagesInspectionTest extends LightCodeInsightFixtureTestCase
}
public void testConstructor() {
IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_4);
IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_4, getTestRootDisposable());
myFixture.testHighlighting(getTestName(false) + ".java");
}
@@ -61,7 +61,7 @@ public class JavaAPIUsagesInspectionTest extends LightCodeInsightFixtureTestCase
}
private void doTest() {
IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_6);
IdeaTestUtil.setModuleLanguageLevel(myFixture.getModule(), LanguageLevel.JDK_1_6, getTestRootDisposable());
myFixture.testHighlighting(getTestName(false) + ".java");
}
@@ -16,7 +16,6 @@
package com.intellij.java.propertyBased
import com.intellij.lang.java.lexer.JavaLexer
import com.intellij.openapi.roots.LanguageLevelModuleExtensionImpl
import com.intellij.openapi.vfs.VfsUtil
import com.intellij.pom.java.LanguageLevel
import com.intellij.psi.JavaPsiFacade
@@ -55,13 +54,7 @@ class JavaPsiIndexConsistencyTest : LightCodeInsightFixtureTestCase() {
data.generate(Generator.booleans()),
data.generate(Generator.booleans())) })
PropertyChecker.customized().forAll(Generator.listsOf(genAction)) { actions ->
val prevLevel = LanguageLevelModuleExtensionImpl.getInstance(myFixture.module).languageLevel
try {
PsiIndexConsistencyTester.runActions(JavaModel(myFixture), *actions.toTypedArray())
}
finally {
IdeaTestUtil.setModuleLanguageLevel(myFixture.module, prevLevel)
}
PsiIndexConsistencyTester.runActions(JavaModel(myFixture), *actions.toTypedArray())
true
}
@@ -113,7 +106,7 @@ class JavaPsiIndexConsistencyTest : LightCodeInsightFixtureTestCase() {
private data class ChangeLanguageLevel(val level: LanguageLevel): Action {
override fun performAction(model: Model) {
PostponedFormatting.performAction(model)
IdeaTestUtil.setModuleLanguageLevel(model.fixture.module, level)
IdeaTestUtil.setModuleLanguageLevel(model.fixture.module, level, model.fixture.testRootDisposable)
}
}
@@ -5,6 +5,7 @@ import com.intellij.openapi.module.ModuleType;
import com.intellij.openapi.module.StdModuleTypes;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.openapi.util.Disposer;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.impl.JavaPsiFacadeEx;
import org.jetbrains.annotations.NotNull;
@@ -61,7 +62,10 @@ public abstract class LightCodeInsightTestCase extends LightPlatformCodeInsightT
}
protected void setLanguageLevel(LanguageLevel level) {
LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(level);
LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(getProject());
LanguageLevel prev = extension.getLanguageLevel();
extension.setLanguageLevel(level);
Disposer.register(getTestRootDisposable(), () -> extension.setLanguageLevel(prev));
}
@Override
@@ -2,7 +2,6 @@
package com.intellij.structuralsearch;
import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase;
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.openapi.util.io.FileUtilRt;
import com.intellij.openapi.vfs.CharsetToolkit;
import com.intellij.pom.java.LanguageLevel;
@@ -20,7 +19,7 @@ public abstract class StructuralReplaceTestCase extends LightQuickFixTestCase {
protected void setUp() throws Exception {
super.setUp();
LanguageLevelProjectExtension.getInstance(getProject()).setLanguageLevel(LanguageLevel.JDK_1_4);
setLanguageLevel(LanguageLevel.JDK_1_4);
options = new ReplaceOptions();
}