1
+ /*
2
+ * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
3
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
4
+ */
5
+
6
+ package org.jetbrains.kotlin.idea.scripting.gradle
7
+
8
+ import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
9
+ import com.intellij.psi.PsiFile
10
+ import org.jetbrains.kotlin.idea.script.AbstractScriptConfigurationLoadingTest
11
+ import org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager
12
+ import org.jetbrains.kotlin.idea.scripting.gradle.settings.StandaloneScriptsStorage
13
+ import org.jetbrains.kotlin.psi.KtFile
14
+ import org.jetbrains.plugins.gradle.settings.DistributionType
15
+ import org.jetbrains.plugins.gradle.settings.GradleProjectSettings
16
+ import org.jetbrains.plugins.gradle.util.GradleConstants
17
+ import java.io.File
18
+
19
+ class GradleBuildRootIndexTest : AbstractScriptConfigurationLoadingTest () {
20
+ override fun setUpTestProject () {
21
+ val rootDir = File (" idea/testData/script/definition/loading/gradle/" )
22
+
23
+ val settings: KtFile = copyFromTestdataToProject(File (rootDir, GradleConstants .KOTLIN_DSL_SETTINGS_FILE_NAME ).path)
24
+ val prop: PsiFile = copyFromTestdataToProject(File (rootDir, " gradle.properties" ).path)
25
+
26
+ val gradleCoreJar = createFileInProject(" gradle/lib/gradle-core-1.0.0.jar" )
27
+ val gradleWrapperProperties = createFileInProject(" gradle/wrapper/gradle-wrapper.properties" )
28
+
29
+ val buildGradleKts = rootDir.walkTopDown().find { it.name == GradleConstants .KOTLIN_DSL_SCRIPT_NAME }
30
+ ? : error(" Couldn't find main script" )
31
+ configureScriptFile(rootDir.path, buildGradleKts)
32
+ val build = (myFile as ? KtFile ) ? : error(" " )
33
+
34
+ val newProjectSettings = GradleProjectSettings ()
35
+ newProjectSettings.gradleHome = gradleCoreJar.parentFile.parent
36
+ newProjectSettings.distributionType = DistributionType .LOCAL
37
+ newProjectSettings.externalProjectPath = settings.virtualFile.parent.path
38
+
39
+ StandaloneScriptsStorage .getInstance(project)!! .files.add(" standalone.kts" )
40
+
41
+ ExternalSystemApiUtil .getSettings(project, GradleConstants .SYSTEM_ID ).linkProject(newProjectSettings)
42
+ }
43
+
44
+ fun `test standalone scripts on start` () {
45
+ assertNotNull(GradleBuildRootsManager .getInstance(project))
46
+ }
47
+ }
0 commit comments