diff --git a/idea/idea-completion/testData/injava/mockLib/defaultImpls.kt b/idea/idea-completion/testData/injava/mockLib/defaultImpls/defaultImpls.kt similarity index 100% rename from idea/idea-completion/testData/injava/mockLib/defaultImpls.kt rename to idea/idea-completion/testData/injava/mockLib/defaultImpls/defaultImpls.kt diff --git a/idea/idea-completion/testData/injava/mockLib/RenamedFileFacade.kt b/idea/idea-completion/testData/injava/mockLib/facades/RenamedFileFacade.kt similarity index 100% rename from idea/idea-completion/testData/injava/mockLib/RenamedFileFacade.kt rename to idea/idea-completion/testData/injava/mockLib/facades/RenamedFileFacade.kt diff --git a/idea/idea-completion/testData/injava/mockLib/multiFileFacadePart1.kt b/idea/idea-completion/testData/injava/mockLib/facades/multiFileFacadePart1.kt similarity index 100% rename from idea/idea-completion/testData/injava/mockLib/multiFileFacadePart1.kt rename to idea/idea-completion/testData/injava/mockLib/facades/multiFileFacadePart1.kt diff --git a/idea/idea-completion/testData/injava/mockLib/multiFileFacadePart2.kt b/idea/idea-completion/testData/injava/mockLib/facades/multiFileFacadePart2.kt similarity index 100% rename from idea/idea-completion/testData/injava/mockLib/multiFileFacadePart2.kt rename to idea/idea-completion/testData/injava/mockLib/facades/multiFileFacadePart2.kt diff --git a/idea/idea-completion/testData/injava/mockLib/another.kt b/idea/idea-completion/testData/injava/mockLib/mockLib/foo/another.kt similarity index 100% rename from idea/idea-completion/testData/injava/mockLib/another.kt rename to idea/idea-completion/testData/injava/mockLib/mockLib/foo/another.kt diff --git a/idea/idea-completion/testData/injava/mockLib/main.kt b/idea/idea-completion/testData/injava/mockLib/mockLib/foo/main.kt similarity index 100% rename from idea/idea-completion/testData/injava/mockLib/main.kt rename to idea/idea-completion/testData/injava/mockLib/mockLib/foo/main.kt diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/AbstractKotlinSourceInJavaCompletionTest.kt b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/AbstractKotlinSourceInJavaCompletionTest.kt index 9f2f4eecbcd..27e62c43c88 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/AbstractKotlinSourceInJavaCompletionTest.kt +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/AbstractKotlinSourceInJavaCompletionTest.kt @@ -18,7 +18,9 @@ package org.jetbrains.kotlin.idea.completion.test import com.intellij.codeInsight.completion.CompletionType import com.intellij.openapi.util.io.FileUtil +import com.intellij.openapi.vfs.VirtualFile import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase +import org.apache.commons.io.FileUtils import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import java.io.File @@ -26,12 +28,22 @@ abstract class AbstractKotlinSourceInJavaCompletionTest : KotlinFixtureCompletio override fun getPlatform() = JvmPlatform override fun doTest(testPath: String) { - val mockLibDir = File(RELATIVE_COMPLETION_TEST_DATA_BASE_PATH + "/injava/mockLib") - val paths = mockLibDir.listFiles()!!.map { - FileUtil.toSystemIndependentName(it.path) - }.toTypedArray() + val mockPath = RELATIVE_COMPLETION_TEST_DATA_BASE_PATH + "/injava/mockLib" + val mockLibDir = File(mockPath) + fun collectPaths(dir: File): List { + return dir.listFiles()!!.flatMap { + if (it.isDirectory) { + collectPaths(it) + } else listOf(FileUtil.toSystemIndependentName(it.path)) + } + } + + val paths = collectPaths(mockLibDir).toTypedArray() + paths.forEach { path -> + val vFile = myFixture.copyFileToProject(path, path.substring(mockPath.length)) + myFixture.configureFromExistingVirtualFile(vFile) + } - myFixture.configureByFiles(*paths) LightClassComputationControl.testWithControl(project, FileUtil.loadFile(File(testPath))) { super.doTest(testPath) }