Supply kotlin mock JDK to relevant test runners

Default mock JDK from IDEA 193, "wins" mock JDK from kotlin in some tests.
In script configuration test this breaks resolution of java declarations from script environment.
Overriding getTestProjectJdk replaces default test project JDK with kotlin mock JDK.
Configuration in AbstractMultiFileHighlightingTest was updated similarly to fix test failures.
This commit is contained in:
Pavel Kirpichenkov
2019-11-05 12:14:35 +03:00
parent 8c52bb4212
commit 4b405c6c0f
2 changed files with 19 additions and 10 deletions
@@ -9,6 +9,7 @@ import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.module.JavaModuleType import com.intellij.openapi.module.JavaModuleType
import com.intellij.openapi.module.Module import com.intellij.openapi.module.Module
import com.intellij.openapi.projectRoots.ProjectJdkTable import com.intellij.openapi.projectRoots.ProjectJdkTable
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.ModuleRootModificationUtil import com.intellij.openapi.roots.ModuleRootModificationUtil
import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.roots.ProjectRootManager
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
@@ -149,6 +150,10 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() {
super.tearDown() super.tearDown()
} }
override fun getTestProjectJdk(): Sdk {
return PluginTestCaseBase.mockJdk()
}
private fun createTestModuleByName(name: String): Module { private fun createTestModuleByName(name: String): Module {
val newModuleDir = runWriteAction { VfsUtil.createDirectoryIfMissing(project.baseDir, name) } val newModuleDir = runWriteAction { VfsUtil.createDirectoryIfMissing(project.baseDir, name) }
val newModule = createModuleAt(name, project, JavaModuleType.getModuleType(), newModuleDir.path) val newModule = createModuleAt(name, project, JavaModuleType.getModuleType(), newModuleDir.path)
@@ -197,16 +202,14 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() {
env["template-classes-names"] = listOf("custom.scriptDefinition.Template") env["template-classes-names"] = listOf("custom.scriptDefinition.Template")
} }
if (env["javaHome"] != null) { val jdkKind = when ((env["javaHome"] as? List<String>)?.singleOrNull()) {
val jdkKind = when ((env["javaHome"] as? List<String>)?.singleOrNull()) { "9" -> TestJdkKind.FULL_JDK_9
"9" -> TestJdkKind.FULL_JDK_9 else -> TestJdkKind.MOCK_JDK
else -> TestJdkKind.MOCK_JDK }
} runWriteAction {
runWriteAction { val jdk = PluginTestCaseBase.jdk(jdkKind)
val jdk = PluginTestCaseBase.jdk(jdkKind) ProjectJdkTable.getInstance().addJdk(jdk, testRootDisposable)
ProjectJdkTable.getInstance().addJdk(jdk, testRootDisposable) env["javaHome"] = File(jdk.homePath)
env["javaHome"] = File(jdk.homePath)
}
} }
env.putAll(defaultEnvironment) env.putAll(defaultEnvironment)
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.idea.stubs; package org.jetbrains.kotlin.idea.stubs;
import com.intellij.openapi.projectRoots.Sdk;
import kotlin.Unit; import kotlin.Unit;
import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function0;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -39,4 +40,9 @@ public abstract class AbstractMultiFileHighlightingTest extends AbstractMultiHig
protected String getTestDataPath() { protected String getTestDataPath() {
return PluginTestCaseBase.getTestDataPathBase() + "/multiFileHighlighting/"; return PluginTestCaseBase.getTestDataPathBase() + "/multiFileHighlighting/";
} }
@Override
protected Sdk getTestProjectJdk() {
return PluginTestCaseBase.mockJdk();
}
} }