From b4ce130c26a05d3292a0f9148932cdb4c060d27c Mon Sep 17 00:00:00 2001 From: Nikita Skvortsov Date: Tue, 23 Jul 2019 16:27:13 +0300 Subject: [PATCH] [gradle] fix project leak in test GitOrigin-RevId: 765601b314a727f1f721998b21287d35ec812153 --- .../testSources/importing/GradleCreateProjectTestCase.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/gradle/java/testSources/importing/GradleCreateProjectTestCase.kt b/plugins/gradle/java/testSources/importing/GradleCreateProjectTestCase.kt index 213d31545fa7..b1857e9417e9 100644 --- a/plugins/gradle/java/testSources/importing/GradleCreateProjectTestCase.kt +++ b/plugins/gradle/java/testSources/importing/GradleCreateProjectTestCase.kt @@ -7,6 +7,7 @@ import com.intellij.ide.projectWizard.ProjectSettingsStep import com.intellij.ide.projectWizard.ProjectTypeStep import com.intellij.ide.util.newProjectWizard.AbstractProjectWizard import com.intellij.ide.util.projectWizard.ModuleWizardStep +import com.intellij.openapi.Disposable import com.intellij.openapi.application.invokeAndWaitIfNeeded import com.intellij.openapi.application.runWriteAction import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil @@ -14,6 +15,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ui.configuration.DefaultModulesProvider import com.intellij.openapi.roots.ui.configuration.ModulesProvider import com.intellij.openapi.roots.ui.configuration.actions.NewModuleAction +import com.intellij.openapi.util.Disposer import com.intellij.openapi.vfs.VirtualFile import com.intellij.testFramework.PlatformTestUtil import org.jetbrains.plugins.gradle.service.project.wizard.GradleModuleWizardStep @@ -111,9 +113,11 @@ abstract class GradleCreateProjectTestCase : GradleImportingTestCase() { private fun createWizard(project: Project?, directory: String): AbstractProjectWizard { val modulesProvider = project?.let { DefaultModulesProvider(it) } ?: ModulesProvider.EMPTY_MODULES_PROVIDER - return NewProjectWizard(project, modulesProvider, directory).also { + val projectWizard = NewProjectWizard(project, modulesProvider, directory).also { PlatformTestUtil.dispatchAllInvocationEventsInIdeEventQueue() } + Disposer.register(testRootDisposable, Disposable { invokeAndWaitIfNeeded { Disposer.dispose(projectWizard.disposable) } }) + return projectWizard } private fun AbstractProjectWizard.runWizard(configure: ModuleWizardStep.() -> Unit) {