mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
convert GradleToolWindowTest to Kotlin
GitOrigin-RevId: 2e565495930cfc72a8f8b8918b8c74b17516b3ce
This commit is contained in:
committed by
intellij-monorepo-bot
parent
fc82112c9a
commit
b1f3319f6c
@@ -6,11 +6,12 @@ import java.io.File
|
||||
class GradleToolWindowOldGroupingTest : GradleToolWindowTest() {
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
currentExternalProjectSettings.setUseQualifiedModuleNames(false)
|
||||
currentExternalProjectSettings.isUseQualifiedModuleNames = false
|
||||
}
|
||||
|
||||
override fun getPath(): String {
|
||||
val testDataPath = super.getPath()
|
||||
override val path: String
|
||||
get() {
|
||||
val testDataPath = super.path
|
||||
val testDataForOldGrouping = "$testDataPath.old"
|
||||
if (File(testDataForOldGrouping).exists()) {
|
||||
return testDataForOldGrouping
|
||||
|
||||
@@ -1,335 +0,0 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gradle.importing
|
||||
|
||||
import com.intellij.openapi.application.WriteAction
|
||||
import com.intellij.openapi.externalSystem.importing.ImportSpec
|
||||
import com.intellij.openapi.externalSystem.importing.ImportSpecBuilder
|
||||
import com.intellij.openapi.externalSystem.service.project.ProjectDataManager
|
||||
import com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManagerImpl
|
||||
import com.intellij.openapi.externalSystem.view.ExternalProjectsViewImpl
|
||||
import com.intellij.openapi.externalSystem.view.ExternalSystemNode
|
||||
import com.intellij.openapi.externalSystem.view.ProjectNode
|
||||
import com.intellij.openapi.module.JavaModuleType
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.module.ModuleManager
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.testFramework.EdtTestUtil
|
||||
import com.intellij.testFramework.PlatformTestUtil
|
||||
import com.intellij.testFramework.PsiTestUtil
|
||||
import com.intellij.toolWindow.ToolWindowHeadlessManagerImpl
|
||||
import org.junit.Test
|
||||
import org.junit.runners.Parameterized
|
||||
|
||||
class GradleToolWindowTest extends GradleImportingTestCase {
|
||||
ToolWindowHeadlessManagerImpl.MockToolWindow toolWindow
|
||||
ExternalProjectsViewImpl view
|
||||
boolean isPreview
|
||||
|
||||
@Parameterized.Parameters(name = "with Gradle-{0}")
|
||||
static Collection<Object[]> data() {
|
||||
return [["5.0"] as Object[]]
|
||||
}
|
||||
|
||||
@Override
|
||||
void setUp() throws Exception {
|
||||
super.setUp()
|
||||
isPreview = false
|
||||
toolWindow = new ToolWindowHeadlessManagerImpl.MockToolWindow(myProject)
|
||||
view = new ExternalProjectsViewImpl(myProject, toolWindow, getExternalSystemId())
|
||||
EdtTestUtil.runInEdtAndWait {
|
||||
ExternalProjectsManagerImpl.getInstance(myProject).registerView(view)
|
||||
view.initStructure()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testSimpleBuild() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
include ':child2'"""
|
||||
)
|
||||
|
||||
createProjectSubFile "build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
createProjectSubFile "../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
createProjectSubFile "../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDotInModuleName() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot.dot'
|
||||
include ':child1'
|
||||
include ':child2'
|
||||
include ':child2:dot.child'
|
||||
"""
|
||||
)
|
||||
|
||||
createProjectSubFile "build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
createProjectSubFile "../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
createProjectSubFile "../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
createProjectSubFile "../child2/dot.child/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
@Test
|
||||
void testBuildSrc() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
"""
|
||||
)
|
||||
|
||||
createProjectSubFile "build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
createProjectSubFile "../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
def foo = new testBuildSrcClassesUsages.BuildSrcClass().sayHello()
|
||||
"""
|
||||
|
||||
createProjectSubFile "buildSrc/src/main/groovy/testBuildSrcClassesUsages/BuildSrcClass.groovy", """
|
||||
package testBuildSrcClassesUsages;
|
||||
public class BuildSrcClass {
|
||||
public String sayHello() { 'Hello!' }
|
||||
}
|
||||
"""
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testSimpleBuildWithoutGrouping() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
include ':child2'"""
|
||||
)
|
||||
|
||||
createProjectSubFile "build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
createProjectSubFile "../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
createProjectSubFile "../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
view.setGroupModules(false)
|
||||
doTest()
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testWithExistedRootModule() {
|
||||
createMainModule("project")
|
||||
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
include ':child2'"""
|
||||
)
|
||||
|
||||
createProjectSubFile "build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
createProjectSubFile "../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
createProjectSubFile "../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
isPreview = true
|
||||
importProject()
|
||||
isPreview = false
|
||||
|
||||
doTest()
|
||||
assert ModuleManager.getInstance(myProject).getModules().length == 3
|
||||
}
|
||||
|
||||
@Test
|
||||
void testWithExistedRootModuleWithoutPreviewImport() {
|
||||
createMainModule("project")
|
||||
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
include ':child2'"""
|
||||
)
|
||||
|
||||
createProjectSubFile "build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
createProjectSubFile "../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
createProjectSubFile "../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
"""
|
||||
|
||||
doTest()
|
||||
assert ModuleManager.getInstance(myProject).getModules().length == 3
|
||||
}
|
||||
|
||||
Module createMainModule(String name) {
|
||||
Module module = null
|
||||
WriteAction.runAndWait {
|
||||
VirtualFile f = createProjectSubFile(name + ".iml")
|
||||
module = ModuleManager.getInstance(myProject).newModule(f.getPath(), JavaModuleType.getModuleType().getName())
|
||||
PsiTestUtil.addContentRoot(module, f.getParent())
|
||||
}
|
||||
return module
|
||||
}
|
||||
|
||||
@Test
|
||||
void testBasicCompositeBuild() throws Exception {
|
||||
createSettingsFile("""
|
||||
rootProject.name='adhoc'
|
||||
includeBuild '../my-app'
|
||||
includeBuild '../my-utils'"""
|
||||
)
|
||||
|
||||
createProjectSubFile("../my-app/settings.gradle", "rootProject.name = 'my-app'\n")
|
||||
createProjectSubFile("../my-app/build.gradle",
|
||||
"""
|
||||
apply plugin: 'java'
|
||||
group 'org.sample'
|
||||
version '1.0'
|
||||
|
||||
dependencies {
|
||||
compile 'org.sample:number-utils:1.0'
|
||||
compile 'org.sample:string-utils:1.0'
|
||||
}
|
||||
""")
|
||||
|
||||
createProjectSubFile("../my-utils/settings.gradle",
|
||||
"""
|
||||
rootProject.name = 'my-utils'
|
||||
include 'number-utils', 'string-utils' """
|
||||
)
|
||||
|
||||
createProjectSubFile("../my-utils/build.gradle",
|
||||
injectRepo(
|
||||
"""
|
||||
subprojects {
|
||||
apply plugin: 'java'
|
||||
|
||||
group 'org.sample'
|
||||
version '1.0'
|
||||
}
|
||||
|
||||
project(':string-utils') {
|
||||
dependencies {
|
||||
compile 'org.apache.commons:commons-lang3:3.4'
|
||||
}
|
||||
} """
|
||||
)
|
||||
)
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDuplicatingProjectLeafNames() {
|
||||
createSettingsFile("""
|
||||
rootProject.name = 'rootProject'
|
||||
include 'p1', 'p2', 'p1:sub:sp1', 'p2:p2sub:sub:sp2'
|
||||
include 'p1:leaf', 'p2:leaf'
|
||||
""")
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ImportSpec createImportSpec() {
|
||||
ImportSpecBuilder importSpecBuilder = new ImportSpecBuilder(super.createImportSpec())
|
||||
if (isPreview) {
|
||||
importSpecBuilder.usePreviewMode()
|
||||
}
|
||||
return importSpecBuilder.build()
|
||||
}
|
||||
|
||||
def doTest() {
|
||||
importProject()
|
||||
checkToolWindowState()
|
||||
}
|
||||
|
||||
|
||||
private void checkToolWindowState() {
|
||||
def data = ProjectDataManager.getInstance().getExternalProjectsData(myProject, getExternalSystemId()).collect {
|
||||
it.externalProjectStructure
|
||||
}
|
||||
|
||||
def rootNodes = data.collect {
|
||||
new ProjectNode(view, it)
|
||||
}
|
||||
|
||||
def tree = buildTree("View root", rootNodes, null)
|
||||
def sw = new StringWriter()
|
||||
def writer = new PrintWriter(sw)
|
||||
tree.print(writer)
|
||||
|
||||
String path = getPath()
|
||||
assert new File(path).exists(), "File $path doesn't exist"
|
||||
|
||||
assertSameLinesWithFile(path, sw.toString())
|
||||
}
|
||||
|
||||
protected String getPath() {
|
||||
def communityPath = PlatformTestUtil.getCommunityPath().replace(File.separatorChar, '/'.charAt(0))
|
||||
def testName = getTestName(true)
|
||||
testName = getTestName(testName, true)
|
||||
return "$communityPath/plugins/gradle/java/testData/toolWindow/${testName}.test"
|
||||
}
|
||||
|
||||
static Node buildTree(String name, List<ExternalSystemNode<?>> nodes, Node parent) {
|
||||
def node = new Node(parent, name)
|
||||
nodes.each {
|
||||
buildTree(it.name, it.children.toList(), node)
|
||||
}
|
||||
return node
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,335 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gradle.importing
|
||||
|
||||
import com.intellij.openapi.application.writeAction
|
||||
import com.intellij.openapi.externalSystem.importing.ImportSpec
|
||||
import com.intellij.openapi.externalSystem.importing.ImportSpecBuilder
|
||||
import com.intellij.openapi.externalSystem.service.project.ProjectDataManager
|
||||
import com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManagerImpl
|
||||
import com.intellij.openapi.externalSystem.view.ExternalProjectsViewImpl
|
||||
import com.intellij.openapi.externalSystem.view.ExternalSystemNode
|
||||
import com.intellij.openapi.externalSystem.view.ProjectNode
|
||||
import com.intellij.openapi.module.JavaModuleType
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.module.ModuleManager.Companion.getInstance
|
||||
import com.intellij.testFramework.PlatformTestUtil
|
||||
import com.intellij.testFramework.PsiTestUtil
|
||||
import com.intellij.testFramework.runInEdtAndWait
|
||||
import com.intellij.toolWindow.ToolWindowHeadlessManagerImpl
|
||||
import groovy.util.Node
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import org.junit.Test
|
||||
import org.junit.runners.Parameterized
|
||||
import java.io.File
|
||||
import java.io.PrintWriter
|
||||
import java.io.StringWriter
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
|
||||
@Suppress("SpellCheckingInspection")
|
||||
open class GradleToolWindowTest : GradleImportingTestCase() {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@Parameterized.Parameters(name = "with Gradle-{0}")
|
||||
fun data(): MutableCollection<String?> {
|
||||
val result = ArrayList<String?>()
|
||||
result.add("5.0")
|
||||
return result
|
||||
}
|
||||
|
||||
private fun buildTree(name: String?, nodes: Array<ExternalSystemNode<*>>, parent: Node?): Node {
|
||||
val node = Node(parent, name)
|
||||
for (n in nodes) {
|
||||
buildTree(n.getName(), n.getChildren(), node)
|
||||
}
|
||||
return node
|
||||
}
|
||||
}
|
||||
var toolWindow: ToolWindowHeadlessManagerImpl.MockToolWindow? = null
|
||||
lateinit var view: ExternalProjectsViewImpl
|
||||
var isPreview: Boolean = false
|
||||
|
||||
public override fun setUp() {
|
||||
super.setUp()
|
||||
isPreview = false
|
||||
toolWindow = ToolWindowHeadlessManagerImpl.MockToolWindow(myProject)
|
||||
view = ExternalProjectsViewImpl(myProject, toolWindow!!, externalSystemId)
|
||||
runInEdtAndWait {
|
||||
ExternalProjectsManagerImpl.getInstance(myProject).registerView(view)
|
||||
view.initStructure()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testSimpleBuild() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
include ':child2'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDotInModuleName() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot.dot'
|
||||
include ':child1'
|
||||
include ':child2'
|
||||
include ':child2:dot.child'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
createProjectSubFile("../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child2/dot.child/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testBuildSrc() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
def foo = new testBuildSrcClassesUsages.BuildSrcClass().sayHello()
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("buildSrc/src/main/groovy/testBuildSrcClassesUsages/BuildSrcClass.groovy", """
|
||||
package testBuildSrcClassesUsages;
|
||||
public class BuildSrcClass {
|
||||
public String sayHello() { 'Hello!' }
|
||||
}
|
||||
""".trimIndent())
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun testSimpleBuildWithoutGrouping() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
include ':child2'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
createProjectSubFile("../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
view.groupModules = false
|
||||
doTest()
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun testWithExistedRootModule() {
|
||||
createMainModule()
|
||||
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
include ':child2'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
createProjectSubFile("../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
isPreview = true
|
||||
importProject()
|
||||
isPreview = false
|
||||
|
||||
doTest()
|
||||
assert(getInstance(myProject).modules.size == 3)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testWithExistedRootModuleWithoutPreviewImport() {
|
||||
createMainModule()
|
||||
|
||||
createSettingsFile("""
|
||||
rootProject.name='rooot'
|
||||
include ':child1'
|
||||
include ':child2'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child1/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../child2/build.gradle", """
|
||||
group 'test'
|
||||
version '1.0-SNAPSHOT'
|
||||
""".trimIndent())
|
||||
|
||||
doTest()
|
||||
assert(getInstance(myProject).modules.size == 3)
|
||||
}
|
||||
|
||||
fun createMainModule() {
|
||||
val module = AtomicReference<Module?>()
|
||||
runBlocking {
|
||||
writeAction {
|
||||
val f = createProjectSubFile("project" + ".iml")
|
||||
module.set(getInstance(myProject).newModule(f.getPath(), JavaModuleType.getModuleType().getName()))
|
||||
PsiTestUtil.addContentRoot(module.get()!!, f.getParent())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testBasicCompositeBuild() {
|
||||
createSettingsFile("""
|
||||
rootProject.name='adhoc'
|
||||
includeBuild '../my-app'
|
||||
includeBuild '../my-utils'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../my-app/settings.gradle", "rootProject.name = 'my-app'\n")
|
||||
createProjectSubFile("../my-app/build.gradle", """
|
||||
apply plugin: 'java'
|
||||
group 'org.sample'
|
||||
version '1.0'
|
||||
|
||||
dependencies {
|
||||
compile 'org.sample:number-utils:1.0'
|
||||
compile 'org.sample:string-utils:1.0'
|
||||
}
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../my-utils/settings.gradle", """
|
||||
rootProject.name = 'my-utils'
|
||||
include 'number-utils', 'string-utils'
|
||||
""".trimIndent())
|
||||
|
||||
createProjectSubFile("../my-utils/build.gradle", injectRepo("""
|
||||
subprojects {
|
||||
apply plugin: 'java'
|
||||
|
||||
group 'org.sample'
|
||||
version '1.0'
|
||||
}
|
||||
|
||||
project(':string-utils') {
|
||||
dependencies {
|
||||
compile 'org.apache.commons:commons-lang3:3.4'
|
||||
}
|
||||
}
|
||||
""".trimIndent()))
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testDuplicatingProjectLeafNames() {
|
||||
createSettingsFile("""
|
||||
rootProject.name = 'rootProject'
|
||||
include 'p1', 'p2', 'p1:sub:sp1', 'p2:p2sub:sub:sp2'
|
||||
include 'p1:leaf', 'p2:leaf'
|
||||
""".trimIndent())
|
||||
|
||||
doTest()
|
||||
}
|
||||
|
||||
override fun createImportSpec(): ImportSpec? {
|
||||
val importSpecBuilder = ImportSpecBuilder(super.createImportSpec())
|
||||
if (isPreview) {
|
||||
importSpecBuilder.usePreviewMode()
|
||||
}
|
||||
return importSpecBuilder.build()
|
||||
}
|
||||
|
||||
private fun doTest() {
|
||||
importProject()
|
||||
checkToolWindowState()
|
||||
}
|
||||
|
||||
private fun checkToolWindowState() {
|
||||
val data = ProjectDataManager.getInstance().getExternalProjectsData(myProject, externalSystemId).map { it.externalProjectStructure }
|
||||
|
||||
val rootNodes = data.map { ProjectNode(view, it) }
|
||||
|
||||
val tree: Node = buildTree("View root", rootNodes.toTypedArray(), null)
|
||||
val sw = StringWriter()
|
||||
val writer = PrintWriter(sw)
|
||||
tree.print(writer)
|
||||
|
||||
val path = this.path
|
||||
assert(File(path).exists()) { "File \$path doesn't exist" }
|
||||
|
||||
assertSameLinesWithFile(path, sw.toString())
|
||||
}
|
||||
|
||||
protected open val path: String
|
||||
get() {
|
||||
val communityPath = PlatformTestUtil.getCommunityPath().replace(File.separatorChar, '/')
|
||||
var testName = getTestName(true)
|
||||
testName = getTestName(testName, true)
|
||||
return "$communityPath/plugins/gradle/java/testData/toolWindow/$testName.test"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user