Refactor and enable on CI tests for kotlin.base.facet.tests module

^KTIJ-29210 Fixed

GitOrigin-RevId: 2950107ffd5ab7d68d76a1987126c2c6af2ddba5
This commit is contained in:
Aleksei.Cherepanov
2024-03-25 22:43:45 +00:00
committed by intellij-monorepo-bot
parent 86b38782d5
commit b01067ea6e
6 changed files with 47 additions and 43 deletions
@@ -1,4 +1,7 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea
import com.intellij.facet.FacetManager
import com.intellij.facet.impl.ui.FacetEditorImpl
import com.intellij.facet.mock.MockFacetEditorContext
@@ -19,10 +22,16 @@ class KotlinFacetBridgeTest : KotlinFacetTestCase() {
fun testEditorTabConfigurationOnFacetCreation() {
val facet = getKotlinFacet()
val editorContext: FacetEditorContext = MockFacetEditorContext(getKotlinFacet())
FacetEditorImpl(editorContext, facet.configuration).let {
it.getComponent()
it.reset()
assertNotNull(it.component)
var facetEditorTab: FacetEditorImpl? = null
try {
facetEditorTab = FacetEditorImpl(editorContext, facet.configuration)
facetEditorTab.let {
it.getComponent()
it.reset()
assertNotNull(it.component)
}
} finally {
facetEditorTab?.disposeUIResources()
}
}
@@ -1,4 +1,7 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea
import com.intellij.facet.Facet
import com.intellij.facet.FacetManager
import com.intellij.openapi.application.appSystemDir
@@ -7,7 +10,6 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.project.doNotEnableExternalStorageByDefaultInTests
import com.intellij.openapi.project.getProjectCacheFileName
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.registry.Registry
import com.intellij.openapi.vfs.VfsUtil
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.platform.backend.workspace.WorkspaceModel
@@ -82,7 +84,6 @@ class KotlinFacetDeserializationTest {
assertEmpty(additionalVisibleModuleNames)
assertEmpty(externalProjectId)
assertEquals(KotlinModuleKind.DEFAULT, kind)
assertNotNull(compilerArguments)
}
}
}
@@ -1,4 +1,7 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea
import com.intellij.facet.Facet
import com.intellij.facet.FacetManager
import com.intellij.facet.FacetManagerListener
@@ -1,4 +1,7 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea
import com.intellij.facet.FacetManager
import com.intellij.facet.impl.FacetUtil
import com.intellij.openapi.application.EDT
@@ -42,12 +45,8 @@ class KotlinFacetSerializationTest {
@Rule
val tempDirManager = TemporaryDirectory()
lateinit var module: Module
@Before
fun verifyImlDoesntExist() {
//TODO: remove after enabling by default
Registry.get("workspace.model.kotlin.facet.bridge").setValue(true)
Assume.assumeTrue("Execute only if kotlin facet bridge enabled", KotlinFacetBridgeFactory.kotlinFacetBridgeEnabled)
TestCase.assertFalse(Files.exists(projectRule.module.moduleNioFile))
}
@@ -1,16 +1,20 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea
import com.intellij.openapi.application.ex.PathManagerEx
import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.registry.Registry
import com.intellij.testFramework.UsefulTestCase
import com.intellij.testFramework.*
import com.intellij.testFramework.fixtures.*
import org.jetbrains.kotlin.idea.workspaceModel.KotlinFacetBridgeFactory
import org.junit.Assume
import java.io.File
abstract class KotlinFacetTestCase : UsefulTestCase() {
protected lateinit var myTestFixture: JavaCodeInsightTestFixture
private lateinit var myTestFixture: JavaCodeInsightTestFixture
lateinit var myProject: Project
lateinit var myKotlinFixtureBuilder: KotlinModuleFixtureBuilder
private lateinit var myKotlinFixtureBuilder: KotlinModuleFixtureBuilder
val myModule: Module
get() = myTestFixture.module
@@ -19,41 +23,36 @@ abstract class KotlinFacetTestCase : UsefulTestCase() {
return PathManagerEx.getTestDataPath().replace(File.separatorChar, '/') /*+ getBasePath()*/
}
override fun setUp() {
super.setUp()
//TODO: remove after enabling by default
Registry.get("workspace.model.kotlin.facet.bridge").setValue(true)
val projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(
name
)
val projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(name)
val testDataPath: String = getTestDataPath()
myTestFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(projectBuilder.fixture)
myTestFixture!!.testDataPath = testDataPath
?: error("Failed to create test fixture")
myTestFixture.testDataPath = testDataPath
configureProjectBuilder(projectBuilder)
//myFixture.setUp()
myTestFixture!!.setUp()
myTestFixture.setUp()
myProject = myTestFixture.project
Assume.assumeTrue("Execute only if kotlin facet bridge enabled", KotlinFacetBridgeFactory.kotlinFacetBridgeEnabled)
}
protected open fun configureProjectBuilder(projectBuilder: TestFixtureBuilder<IdeaProjectTestFixture?>) {
val tempDirPath: String = myTestFixture.tempDirPath
IdeaTestFixtureFactory.getFixtureFactory().registerFixtureBuilder(
KotlinModuleFixtureBuilder::class.java,
"KotlinModuleFixtureBuilderImpl"
KotlinModuleFixtureBuilderImpl::class.java.name
)
myKotlinFixtureBuilder = projectBuilder.addModule(KotlinModuleFixtureBuilder::class.java)
myKotlinFixtureBuilder.addContentRoot(tempDirPath)
//configure(myKotlinFixtureBuilder)
//TODO: add root here
}
override fun tearDown() {
val fixture: JavaCodeInsightTestFixture = myTestFixture
//myTestFixture = null
try {
fixture.tearDown()
} catch (e: Throwable) {
@@ -1,4 +1,7 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.idea
import com.intellij.facet.FacetTypeRegistry
import com.intellij.facet.impl.FacetUtil
import com.intellij.openapi.module.Module
@@ -13,16 +16,9 @@ import com.intellij.testFramework.fixtures.impl.ModuleFixtureImpl
import org.jetbrains.kotlin.idea.facet.KotlinFacet
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
interface KotlinModuleFixtureBuilder : JavaModuleFixtureBuilder<KotlinModuleTestFixture> {
interface KotlinModuleFixtureBuilder : JavaModuleFixtureBuilder<KotlinModuleTestFixture>
//fun addWebRoot(rootPath: @NonNls String, relativePath: @NonNls String): com.intellij.testFramework.builders.WebModuleFixtureBuilder
//fun setWebXml(path: @NonNls String): com.intellij.testFramework.builders.WebModuleFixtureBuilder
}
class KotlinModuleFixtureBuilderImpl(val fixtureBuilder: TestFixtureBuilder<IdeaProjectTestFixture>) :
class KotlinModuleFixtureBuilderImpl(fixtureBuilder: TestFixtureBuilder<IdeaProjectTestFixture>) :
JavaModuleFixtureBuilderImpl<KotlinModuleTestFixture>(StdModuleTypes.JAVA, fixtureBuilder), KotlinModuleFixtureBuilder {
override fun instantiateFixture() = KotlinModuleTestFixtureImpl(this)
@@ -33,16 +29,13 @@ class KotlinModuleFixtureBuilderImpl(val fixtureBuilder: TestFixtureBuilder<Idea
}
}
interface KotlinModuleTestFixture : ModuleFixture {
//fun setWebXml(webXmlPath: @NonNls String?)
val kotlinFacet: KotlinFacet?
}
class KotlinModuleTestFixtureImpl(builder: ModuleFixtureBuilderImpl<*>?) : ModuleFixtureImpl(builder!!), KotlinModuleTestFixture {
override val kotlinFacet: KotlinFacet?
get() = KotlinFacet.get(module)!!
}