UpdateConfigurationQuickFixTest: update tests
This commit is contained in:
@@ -14,11 +14,14 @@ import com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEdito
|
|||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.openapi.vfs.JarFileSystem
|
import com.intellij.openapi.vfs.JarFileSystem
|
||||||
import com.intellij.openapi.vfs.LocalFileSystem
|
import com.intellij.openapi.vfs.LocalFileSystem
|
||||||
|
import com.intellij.testFramework.exceptionCases.AbstractExceptionCase
|
||||||
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase
|
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments.Companion.DEFAULT
|
||||||
|
import org.jetbrains.kotlin.config.CompilerSettings.Companion.DEFAULT_ADDITIONAL_ARGUMENTS
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.config.LanguageVersion
|
import org.jetbrains.kotlin.config.LanguageVersion
|
||||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
||||||
|
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
|
||||||
import org.jetbrains.kotlin.idea.configuration.KotlinJavaModuleConfigurator
|
import org.jetbrains.kotlin.idea.configuration.KotlinJavaModuleConfigurator
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
|
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
|
||||||
import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion
|
import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion
|
||||||
@@ -42,8 +45,23 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
myFixture.configureByText("foo.kt", "inline class My(val n: Int)")
|
myFixture.configureByText("foo.kt", "inline class My(val n: Int)")
|
||||||
|
|
||||||
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, inlineClassesSupport)
|
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, inlineClassesSupport)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Disable inline classes support in the project"))
|
assertException(object : AbstractExceptionCase<AssertionError>() {
|
||||||
assertEquals(LanguageFeature.State.DISABLED, inlineClassesSupport)
|
override fun getExpectedExceptionClass(): Class<AssertionError> = AssertionError::class.java
|
||||||
|
|
||||||
|
override fun tryClosure() {
|
||||||
|
myFixture.findSingleIntention("Disable inline classes support in the project")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testEnableInlineClasses() {
|
||||||
|
configureRuntime("mockRuntime11")
|
||||||
|
resetProjectSettings(LanguageVersion.KOTLIN_1_3)
|
||||||
|
myFixture.configureByText("foo.kt", "inline class My(val n: Int)")
|
||||||
|
|
||||||
|
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, inlineClassesSupport)
|
||||||
|
myFixture.launchAction(myFixture.findSingleIntention("Enable inline classes support in the project"))
|
||||||
|
assertEquals(LanguageFeature.State.ENABLED, inlineClassesSupport)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun testEnableCoroutines() {
|
fun testEnableCoroutines() {
|
||||||
@@ -51,7 +69,7 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
||||||
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
||||||
|
|
||||||
assertEquals(CommonCompilerArguments.WARN, KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesState)
|
assertEquals(DEFAULT, KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesState)
|
||||||
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
|
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
|
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
|
||||||
assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
|
assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
|
||||||
@@ -62,7 +80,7 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
||||||
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
||||||
|
|
||||||
assertEquals(CommonCompilerArguments.WARN, KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesState)
|
assertEquals(DEFAULT, KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesState)
|
||||||
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
|
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Disable coroutine support in the project"))
|
myFixture.launchAction(myFixture.findSingleIntention("Disable coroutine support in the project"))
|
||||||
assertEquals(LanguageFeature.State.ENABLED_WITH_ERROR, coroutineSupport)
|
assertEquals(LanguageFeature.State.ENABLED_WITH_ERROR, coroutineSupport)
|
||||||
@@ -159,12 +177,14 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
|
|
||||||
fun testAddKotlinReflect() {
|
fun testAddKotlinReflect() {
|
||||||
configureRuntime("mockRuntime11")
|
configureRuntime("mockRuntime11")
|
||||||
myFixture.configureByText("foo.kt", """class Foo(val prop: Any) {
|
myFixture.configureByText(
|
||||||
|
"foo.kt", """class Foo(val prop: Any) {
|
||||||
fun func() {}
|
fun func() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun y01() = Foo::prop.gett<caret>er
|
fun y01() = Foo::prop.gett<caret>er
|
||||||
""")
|
"""
|
||||||
|
)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Add kotlin-reflect.jar to the classpath"))
|
myFixture.launchAction(myFixture.findSingleIntention("Add kotlin-reflect.jar to the classpath"))
|
||||||
val kotlinRuntime = KotlinJavaModuleConfigurator.instance.getKotlinLibrary(module)!!
|
val kotlinRuntime = KotlinJavaModuleConfigurator.instance.getKotlinLibrary(module)!!
|
||||||
val classes = kotlinRuntime.getFiles(OrderRootType.CLASSES).map { it.name }
|
val classes = kotlinRuntime.getFiles(OrderRootType.CLASSES).map { it.name }
|
||||||
@@ -190,10 +210,13 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun resetProjectSettings(version: LanguageVersion) {
|
private fun resetProjectSettings(version: LanguageVersion) {
|
||||||
|
KotlinCompilerSettings.getInstance(project).update {
|
||||||
|
additionalArguments = DEFAULT_ADDITIONAL_ARGUMENTS
|
||||||
|
}
|
||||||
KotlinCommonCompilerArgumentsHolder.getInstance(project).update {
|
KotlinCommonCompilerArgumentsHolder.getInstance(project).update {
|
||||||
languageVersion = version.versionString
|
languageVersion = version.versionString
|
||||||
apiVersion = version.versionString
|
apiVersion = version.versionString
|
||||||
coroutinesState = CommonCompilerArguments.WARN
|
coroutinesState = DEFAULT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,6 +227,7 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
get() = project.getLanguageVersionSettings().getFeatureSupport(LanguageFeature.InlineClasses)
|
get() = project.getLanguageVersionSettings().getFeatureSupport(LanguageFeature.InlineClasses)
|
||||||
|
|
||||||
override fun tearDown() {
|
override fun tearDown() {
|
||||||
|
resetProjectSettings(LanguageVersion.KOTLIN_1_3)
|
||||||
FacetManager.getInstance(module).getFacetByType(KotlinFacetType.TYPE_ID)?.let {
|
FacetManager.getInstance(module).getFacetByType(KotlinFacetType.TYPE_ID)?.let {
|
||||||
FacetUtil.deleteFacet(it)
|
FacetUtil.deleteFacet(it)
|
||||||
}
|
}
|
||||||
|
|||||||
+33
-8
@@ -7,17 +7,21 @@ package org.jetbrains.kotlin.idea.quickfix
|
|||||||
|
|
||||||
import com.intellij.facet.FacetManager
|
import com.intellij.facet.FacetManager
|
||||||
import com.intellij.facet.impl.FacetUtil
|
import com.intellij.facet.impl.FacetUtil
|
||||||
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.roots.ModuleRootModificationUtil.updateModel
|
import com.intellij.openapi.roots.ModuleRootModificationUtil.updateModel
|
||||||
import com.intellij.openapi.roots.OrderRootType
|
import com.intellij.openapi.roots.OrderRootType
|
||||||
import com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor
|
import com.intellij.openapi.roots.ui.configuration.libraryEditor.NewLibraryEditor
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.openapi.vfs.JarFileSystem
|
import com.intellij.openapi.vfs.JarFileSystem
|
||||||
import com.intellij.openapi.vfs.LocalFileSystem
|
import com.intellij.openapi.vfs.LocalFileSystem
|
||||||
|
import com.intellij.testFramework.exceptionCases.AbstractExceptionCase
|
||||||
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase
|
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments.Companion.DEFAULT
|
||||||
|
import org.jetbrains.kotlin.config.CompilerSettings.Companion.DEFAULT_ADDITIONAL_ARGUMENTS
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.config.LanguageVersion
|
import org.jetbrains.kotlin.config.LanguageVersion
|
||||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
|
||||||
|
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
|
||||||
import org.jetbrains.kotlin.idea.configuration.KotlinJavaModuleConfigurator
|
import org.jetbrains.kotlin.idea.configuration.KotlinJavaModuleConfigurator
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
|
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
|
||||||
import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion
|
import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion
|
||||||
@@ -38,8 +42,23 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
myFixture.configureByText("foo.kt", "inline class My(val n: Int)")
|
myFixture.configureByText("foo.kt", "inline class My(val n: Int)")
|
||||||
|
|
||||||
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, inlineClassesSupport)
|
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, inlineClassesSupport)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Disable inline classes support in the project"))
|
assertException(object : AbstractExceptionCase<AssertionError>() {
|
||||||
assertEquals(LanguageFeature.State.DISABLED, inlineClassesSupport)
|
override fun getExpectedExceptionClass(): Class<AssertionError> = AssertionError::class.java
|
||||||
|
|
||||||
|
override fun tryClosure() {
|
||||||
|
myFixture.findSingleIntention("Disable inline classes support in the project")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testEnableInlineClasses() {
|
||||||
|
configureRuntime("mockRuntime11")
|
||||||
|
resetProjectSettings(LanguageVersion.KOTLIN_1_3)
|
||||||
|
myFixture.configureByText("foo.kt", "inline class My(val n: Int)")
|
||||||
|
|
||||||
|
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, inlineClassesSupport)
|
||||||
|
myFixture.launchAction(myFixture.findSingleIntention("Enable inline classes support in the project"))
|
||||||
|
assertEquals(LanguageFeature.State.ENABLED, inlineClassesSupport)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun testEnableCoroutines() {
|
fun testEnableCoroutines() {
|
||||||
@@ -47,7 +66,7 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
||||||
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
||||||
|
|
||||||
assertEquals(CommonCompilerArguments.WARN, KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesState)
|
assertEquals(DEFAULT, KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesState)
|
||||||
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
|
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
|
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
|
||||||
assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
|
assertEquals(LanguageFeature.State.ENABLED, coroutineSupport)
|
||||||
@@ -58,7 +77,7 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
||||||
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
||||||
|
|
||||||
assertEquals(CommonCompilerArguments.WARN, KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesState)
|
assertEquals(DEFAULT, KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesState)
|
||||||
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
|
assertEquals(LanguageFeature.State.ENABLED_WITH_WARNING, coroutineSupport)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Disable coroutine support in the project"))
|
myFixture.launchAction(myFixture.findSingleIntention("Disable coroutine support in the project"))
|
||||||
assertEquals(LanguageFeature.State.ENABLED_WITH_ERROR, coroutineSupport)
|
assertEquals(LanguageFeature.State.ENABLED_WITH_ERROR, coroutineSupport)
|
||||||
@@ -155,12 +174,14 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
|
|
||||||
fun testAddKotlinReflect() {
|
fun testAddKotlinReflect() {
|
||||||
configureRuntime("mockRuntime11")
|
configureRuntime("mockRuntime11")
|
||||||
myFixture.configureByText("foo.kt", """class Foo(val prop: Any) {
|
myFixture.configureByText(
|
||||||
|
"foo.kt", """class Foo(val prop: Any) {
|
||||||
fun func() {}
|
fun func() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun y01() = Foo::prop.gett<caret>er
|
fun y01() = Foo::prop.gett<caret>er
|
||||||
""")
|
"""
|
||||||
|
)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Add kotlin-reflect.jar to the classpath"))
|
myFixture.launchAction(myFixture.findSingleIntention("Add kotlin-reflect.jar to the classpath"))
|
||||||
val kotlinRuntime = KotlinJavaModuleConfigurator.instance.getKotlinLibrary(module)!!
|
val kotlinRuntime = KotlinJavaModuleConfigurator.instance.getKotlinLibrary(module)!!
|
||||||
val classes = kotlinRuntime.getFiles(OrderRootType.CLASSES).map { it.name }
|
val classes = kotlinRuntime.getFiles(OrderRootType.CLASSES).map { it.name }
|
||||||
@@ -186,10 +207,13 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun resetProjectSettings(version: LanguageVersion) {
|
private fun resetProjectSettings(version: LanguageVersion) {
|
||||||
|
KotlinCompilerSettings.getInstance(project).update {
|
||||||
|
additionalArguments = DEFAULT_ADDITIONAL_ARGUMENTS
|
||||||
|
}
|
||||||
KotlinCommonCompilerArgumentsHolder.getInstance(project).update {
|
KotlinCommonCompilerArgumentsHolder.getInstance(project).update {
|
||||||
languageVersion = version.versionString
|
languageVersion = version.versionString
|
||||||
apiVersion = version.versionString
|
apiVersion = version.versionString
|
||||||
coroutinesState = CommonCompilerArguments.WARN
|
coroutinesState = DEFAULT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,6 +224,7 @@ class UpdateConfigurationQuickFixTest : LightPlatformCodeInsightFixtureTestCase(
|
|||||||
get() = project.getLanguageVersionSettings().getFeatureSupport(LanguageFeature.InlineClasses)
|
get() = project.getLanguageVersionSettings().getFeatureSupport(LanguageFeature.InlineClasses)
|
||||||
|
|
||||||
override fun tearDown() {
|
override fun tearDown() {
|
||||||
|
resetProjectSettings(LanguageVersion.KOTLIN_1_3)
|
||||||
FacetManager.getInstance(module).getFacetByType(KotlinFacetType.TYPE_ID)?.let {
|
FacetManager.getInstance(module).getFacetByType(KotlinFacetType.TYPE_ID)?.let {
|
||||||
FacetUtil.deleteFacet(it)
|
FacetUtil.deleteFacet(it)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user