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.Module
import com.intellij.openapi.projectRoots.ProjectJdkTable
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.ModuleRootModificationUtil
import com.intellij.openapi.roots.ProjectRootManager
import com.intellij.openapi.util.io.FileUtil
@@ -149,6 +150,10 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() {
super.tearDown()
}
override fun getTestProjectJdk(): Sdk {
return PluginTestCaseBase.mockJdk()
}
private fun createTestModuleByName(name: String): Module {
val newModuleDir = runWriteAction { VfsUtil.createDirectoryIfMissing(project.baseDir, name) }
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")
}
if (env["javaHome"] != null) {
val jdkKind = when ((env["javaHome"] as? List<String>)?.singleOrNull()) {
"9" -> TestJdkKind.FULL_JDK_9
else -> TestJdkKind.MOCK_JDK
}
runWriteAction {
val jdk = PluginTestCaseBase.jdk(jdkKind)
ProjectJdkTable.getInstance().addJdk(jdk, testRootDisposable)
env["javaHome"] = File(jdk.homePath)
}
val jdkKind = when ((env["javaHome"] as? List<String>)?.singleOrNull()) {
"9" -> TestJdkKind.FULL_JDK_9
else -> TestJdkKind.MOCK_JDK
}
runWriteAction {
val jdk = PluginTestCaseBase.jdk(jdkKind)
ProjectJdkTable.getInstance().addJdk(jdk, testRootDisposable)
env["javaHome"] = File(jdk.homePath)
}
env.putAll(defaultEnvironment)
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.idea.stubs;
import com.intellij.openapi.projectRoots.Sdk;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import org.jetbrains.annotations.NotNull;
@@ -39,4 +40,9 @@ public abstract class AbstractMultiFileHighlightingTest extends AbstractMultiHig
protected String getTestDataPath() {
return PluginTestCaseBase.getTestDataPathBase() + "/multiFileHighlighting/";
}
@Override
protected Sdk getTestProjectJdk() {
return PluginTestCaseBase.mockJdk();
}
}