diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt index 942fb7bda3..ac4703526c 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt @@ -10,9 +10,9 @@ import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.components.service import com.intellij.openapi.editor.colors.EditorColorsManager import com.intellij.openapi.module.Module +import com.intellij.openapi.module.ModuleUtil import com.intellij.openapi.options.ShowSettingsUtil import com.intellij.openapi.projectRoots.JavaSdkVersion -import com.intellij.openapi.roots.ContentEntry import com.intellij.openapi.roots.DependencyScope import com.intellij.openapi.roots.ExternalLibraryDescriptor import com.intellij.openapi.roots.JavaProjectModelModificationService @@ -423,12 +423,14 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m return null } + private fun VirtualFile.toRealFile():VirtualFile = if (this is FakeVirtualFile) this.parent else this + override fun doValidate(): ValidationInfo? { val testRoot = getTestRoot() ?: return ValidationInfo("Test source root is not configured", testSourceFolderField.childComponent) - if (!model.project.isBuildWithGradle && findReadOnlyContentEntry(testRoot) == null) { - return ValidationInfo("Test source root is located out of content entry", testSourceFolderField.childComponent) + if (!model.project.isBuildWithGradle && ModuleUtil.findModuleForFile(testRoot.toRealFile(), model.project) == null) { + return ValidationInfo("Test source root is located out of any module", testSourceFolderField.childComponent) } membersTable.tableHeader?.background = UIUtil.getTableBackground() @@ -606,16 +608,6 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m "Generation error" ) - private fun findReadOnlyContentEntry(testSourceRoot: VirtualFile?): ContentEntry? { - if (testSourceRoot == null) return null - if (testSourceRoot is FakeVirtualFile) { - return findReadOnlyContentEntry(testSourceRoot.parent) - } - return ModuleRootManager.getInstance(model.testModule).contentEntries - .filterNot { it.file == null } - .firstOrNull { VfsUtil.isAncestor(it.file!!, testSourceRoot, false) } - } - private fun getOrCreateTestRoot(testSourceRoot: VirtualFile): Boolean { val modifiableModel = ModuleRootManager.getInstance(model.testModule).modifiableModel try {