GradleImportingTestCase: add infrastructure to use files from testData folder
This commit is contained in:
+27
@@ -32,6 +32,7 @@ import com.intellij.openapi.ui.Messages
|
|||||||
import com.intellij.openapi.ui.TestDialog
|
import com.intellij.openapi.ui.TestDialog
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.openapi.vfs.LocalFileSystem
|
import com.intellij.openapi.vfs.LocalFileSystem
|
||||||
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.testFramework.IdeaTestUtil
|
import com.intellij.testFramework.IdeaTestUtil
|
||||||
import com.intellij.util.PathUtil
|
import com.intellij.util.PathUtil
|
||||||
import com.intellij.util.containers.ContainerUtil
|
import com.intellij.util.containers.ContainerUtil
|
||||||
@@ -40,6 +41,7 @@ import org.gradle.util.GradleVersion
|
|||||||
import org.gradle.wrapper.GradleWrapperMain
|
import org.gradle.wrapper.GradleWrapperMain
|
||||||
import org.intellij.lang.annotations.Language
|
import org.intellij.lang.annotations.Language
|
||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||||
import org.jetbrains.plugins.gradle.settings.DistributionType
|
import org.jetbrains.plugins.gradle.settings.DistributionType
|
||||||
import org.jetbrains.plugins.gradle.settings.GradleProjectSettings
|
import org.jetbrains.plugins.gradle.settings.GradleProjectSettings
|
||||||
import org.jetbrains.plugins.gradle.settings.GradleSettings
|
import org.jetbrains.plugins.gradle.settings.GradleSettings
|
||||||
@@ -191,6 +193,28 @@ abstract class GradleImportingTestCase : ExternalSystemImportingTestCase() {
|
|||||||
createProjectSubFile("gradle/wrapper/gradle-wrapper.properties", writer.toString())
|
createProjectSubFile("gradle/wrapper/gradle-wrapper.properties", writer.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected open fun testDataDirName(): String = ""
|
||||||
|
|
||||||
|
protected fun testDataDirectory(): File {
|
||||||
|
val baseDir = "${PluginTestCaseBase.getTestDataPathBase()}/gradle/${testDataDirName()}/"
|
||||||
|
return File(baseDir, getTestName(true).substringBefore("_"))
|
||||||
|
}
|
||||||
|
|
||||||
|
protected fun configureByFiles(): List<VirtualFile> {
|
||||||
|
val rootDir = testDataDirectory()
|
||||||
|
assert(rootDir.exists()) { "Directory ${rootDir.path} doesn't exist" }
|
||||||
|
|
||||||
|
return rootDir.walk().mapNotNull {
|
||||||
|
when {
|
||||||
|
it.isDirectory -> null
|
||||||
|
!it.name.endsWith(SUFFIX) -> {
|
||||||
|
createProjectSubFile(it.path.substringAfter(rootDir.path + File.separator), it.readText())
|
||||||
|
}
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
}.toList()
|
||||||
|
}
|
||||||
|
|
||||||
private fun runWrite(f: () -> Unit) {
|
private fun runWrite(f: () -> Unit) {
|
||||||
object : WriteAction<Any>() {
|
object : WriteAction<Any>() {
|
||||||
override fun run(result: Result<Any>) {
|
override fun run(result: Result<Any>) {
|
||||||
@@ -203,6 +227,9 @@ abstract class GradleImportingTestCase : ExternalSystemImportingTestCase() {
|
|||||||
private const val GRADLE_JDK_NAME = "Gradle JDK"
|
private const val GRADLE_JDK_NAME = "Gradle JDK"
|
||||||
private const val GRADLE_DAEMON_TTL_MS = 10000
|
private const val GRADLE_DAEMON_TTL_MS = 10000
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
protected val SUFFIX = ".after"
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@Parameterized.Parameters(name = "{index}: with Gradle-{0}")
|
@Parameterized.Parameters(name = "{index}: with Gradle-{0}")
|
||||||
fun data(): Collection<Array<Any>> {
|
fun data(): Collection<Array<Any>> {
|
||||||
|
|||||||
Reference in New Issue
Block a user