diff --git a/compiler/tests-common/org/jetbrains/kotlin/test/KotlinTestWithEnvironment.java b/compiler/tests-common/org/jetbrains/kotlin/test/KotlinTestWithEnvironment.java index 1d7f53c0f2d..bb7bc83e6e3 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/test/KotlinTestWithEnvironment.java +++ b/compiler/tests-common/org/jetbrains/kotlin/test/KotlinTestWithEnvironment.java @@ -16,23 +16,15 @@ package org.jetbrains.kotlin.test; -import com.intellij.openapi.application.Application; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; -import org.jetbrains.kotlin.utils.ExceptionUtilsKt; - -import java.lang.reflect.Field; public abstract class KotlinTestWithEnvironment extends KotlinTestWithEnvironmentManagement { private KotlinCoreEnvironment environment; - private Application application; @Override protected void setUp() throws Exception { - application = ApplicationManager.getApplication(); - super.setUp(); environment = createEnvironment(); } @@ -42,23 +34,6 @@ public abstract class KotlinTestWithEnvironment extends KotlinTestWithEnvironmen removeEnvironment(); environment = null; super.tearDown(); - - if (application == null) { - resetApplicationToNull(); - } - - application = null; - } - - protected void resetApplicationToNull() { - try { - Field ourApplicationField = ApplicationManager.class.getDeclaredField("ourApplication"); - ourApplicationField.setAccessible(true); - ourApplicationField.set(null, null); - } - catch (Exception e) { - throw ExceptionUtilsKt.rethrow(e); - } } protected abstract KotlinCoreEnvironment createEnvironment() throws Exception; diff --git a/compiler/tests-common/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java b/compiler/tests-common/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java index 64f1dcf30ca..7ae4be7a88e 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java +++ b/compiler/tests-common/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java @@ -17,6 +17,8 @@ package org.jetbrains.kotlin.test.testFramework; import com.intellij.openapi.Disposable; +import com.intellij.openapi.application.Application; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.impl.ApplicationInfoImpl; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Disposer; @@ -36,6 +38,7 @@ import junit.framework.TestCase; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.utils.ExceptionUtilsKt; import org.junit.Assert; import java.io.File; @@ -55,6 +58,8 @@ public abstract class KtUsefulTestCase extends TestCase { private static final Map TOTAL_SETUP_COST_MILLIS = new HashMap(); private static final Map TOTAL_TEARDOWN_COST_MILLIS = new HashMap(); + private Application application; + @NotNull protected final Disposable myTestRootDisposable = new Disposable() { @Override @@ -81,6 +86,8 @@ public abstract class KtUsefulTestCase extends TestCase { @Override protected void setUp() throws Exception { + application = ApplicationManager.getApplication(); + super.setUp(); String testName = FileUtil.sanitizeFileName(getTestName(true)); @@ -121,6 +128,23 @@ public abstract class KtUsefulTestCase extends TestCase { UIUtil.removeLeakingAppleListeners(); super.tearDown(); + + if (application == null) { + resetApplicationToNull(); + } + + application = null; + } + + protected void resetApplicationToNull() { + try { + Field ourApplicationField = ApplicationManager.class.getDeclaredField("ourApplication"); + ourApplicationField.setAccessible(true); + ourApplicationField.set(null, null); + } + catch (Exception e) { + throw ExceptionUtilsKt.rethrow(e); + } } private boolean hasTmpFilesToKeep() {