Add more tests for coroutines; use higher-level API to check that changes have been applied
This commit is contained in:
@@ -27,10 +27,12 @@ import com.intellij.openapi.vfs.LocalFileSystem
|
|||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase
|
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.config.CoroutineSupport
|
import org.jetbrains.kotlin.config.CoroutineSupport
|
||||||
|
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.facet.KotlinFacetType
|
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
|
||||||
import org.jetbrains.kotlin.idea.framework.JavaRuntimeDetectionUtil
|
import org.jetbrains.kotlin.idea.framework.JavaRuntimeDetectionUtil
|
||||||
|
import org.jetbrains.kotlin.idea.project.getLanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
||||||
import org.jetbrains.kotlin.idea.test.configureKotlinFacet
|
import org.jetbrains.kotlin.idea.test.configureKotlinFacet
|
||||||
@@ -44,8 +46,20 @@ class LanguageFeatureQuickFixTest : LightPlatformCodeInsightFixtureTestCase() {
|
|||||||
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
||||||
|
|
||||||
assertFalse(KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesEnable)
|
assertFalse(KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesEnable)
|
||||||
|
assertFalse(LanguageFeature.DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
|
||||||
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
|
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
|
||||||
assertTrue(KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesEnable)
|
assertTrue(LanguageFeature.DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testDisableCoroutines() {
|
||||||
|
configureRuntime("mockRuntime11")
|
||||||
|
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
||||||
|
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
||||||
|
|
||||||
|
assertFalse(KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesEnable)
|
||||||
|
assertFalse(LanguageFeature.ErrorOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
|
||||||
|
myFixture.launchAction(myFixture.findSingleIntention("Disable coroutine support in the project"))
|
||||||
|
assertTrue(LanguageFeature.ErrorOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun testEnableCoroutinesFacet() {
|
fun testEnableCoroutinesFacet() {
|
||||||
@@ -59,6 +73,17 @@ class LanguageFeatureQuickFixTest : LightPlatformCodeInsightFixtureTestCase() {
|
|||||||
assertEquals(CoroutineSupport.ENABLED, facet.configuration.settings.compilerInfo.coroutineSupport)
|
assertEquals(CoroutineSupport.ENABLED, facet.configuration.settings.compilerInfo.coroutineSupport)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun testEnableCoroutines_UpdateRuntime() {
|
||||||
|
val runtime = configureRuntime("mockRuntime106")
|
||||||
|
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
|
||||||
|
myFixture.configureByText("foo.kt", "suspend fun foo()")
|
||||||
|
|
||||||
|
assertFalse(LanguageFeature.DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
|
||||||
|
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
|
||||||
|
assertTrue(LanguageFeature.DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
|
||||||
|
assertEquals(bundledRuntimeVersion(), JavaRuntimeDetectionUtil.getJavaRuntimeVersion(listOf(runtime)))
|
||||||
|
}
|
||||||
|
|
||||||
fun testIncreaseLangLevel() {
|
fun testIncreaseLangLevel() {
|
||||||
configureRuntime("mockRuntime11")
|
configureRuntime("mockRuntime11")
|
||||||
resetProjectSettings(LanguageVersion.KOTLIN_1_0)
|
resetProjectSettings(LanguageVersion.KOTLIN_1_0)
|
||||||
|
|||||||
Reference in New Issue
Block a user