Skip to content

Commit c9df227

Browse files
committed
Add more tests for coroutines; use higher-level API to check that changes have been applied
1 parent 73a2c8c commit c9df227

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

idea/tests/org/jetbrains/kotlin/idea/quickfix/LanguageFeatureQuickFixTest.kt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@ import com.intellij.openapi.vfs.LocalFileSystem
2727
import com.intellij.openapi.vfs.VirtualFile
2828
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase
2929
import org.jetbrains.kotlin.config.CoroutineSupport
30+
import org.jetbrains.kotlin.config.LanguageFeature
3031
import org.jetbrains.kotlin.config.LanguageVersion
3132
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
3233
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
3334
import org.jetbrains.kotlin.idea.framework.JavaRuntimeDetectionUtil
35+
import org.jetbrains.kotlin.idea.project.getLanguageVersionSettings
3436
import org.jetbrains.kotlin.idea.project.languageVersionSettings
3537
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
3638
import org.jetbrains.kotlin.idea.test.configureKotlinFacet
@@ -44,8 +46,20 @@ class LanguageFeatureQuickFixTest : LightPlatformCodeInsightFixtureTestCase() {
4446
myFixture.configureByText("foo.kt", "suspend fun foo()")
4547

4648
assertFalse(KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesEnable)
49+
assertFalse(LanguageFeature.DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
4750
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
48-
assertTrue(KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesEnable)
51+
assertTrue(LanguageFeature.DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
52+
}
53+
54+
fun testDisableCoroutines() {
55+
configureRuntime("mockRuntime11")
56+
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
57+
myFixture.configureByText("foo.kt", "suspend fun foo()")
58+
59+
assertFalse(KotlinCommonCompilerArgumentsHolder.getInstance(project).settings.coroutinesEnable)
60+
assertFalse(LanguageFeature.ErrorOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
61+
myFixture.launchAction(myFixture.findSingleIntention("Disable coroutine support in the project"))
62+
assertTrue(LanguageFeature.ErrorOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
4963
}
5064

5165
fun testEnableCoroutinesFacet() {
@@ -59,6 +73,17 @@ class LanguageFeatureQuickFixTest : LightPlatformCodeInsightFixtureTestCase() {
5973
assertEquals(CoroutineSupport.ENABLED, facet.configuration.settings.compilerInfo.coroutineSupport)
6074
}
6175

76+
fun testEnableCoroutines_UpdateRuntime() {
77+
val runtime = configureRuntime("mockRuntime106")
78+
resetProjectSettings(LanguageVersion.KOTLIN_1_1)
79+
myFixture.configureByText("foo.kt", "suspend fun foo()")
80+
81+
assertFalse(LanguageFeature.DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
82+
myFixture.launchAction(myFixture.findSingleIntention("Enable coroutine support in the project"))
83+
assertTrue(LanguageFeature.DoNotWarnOnCoroutines in project.getLanguageVersionSettings().additionalFeatures)
84+
assertEquals(bundledRuntimeVersion(), JavaRuntimeDetectionUtil.getJavaRuntimeVersion(listOf(runtime)))
85+
}
86+
6287
fun testIncreaseLangLevel() {
6388
configureRuntime("mockRuntime11")
6489
resetProjectSettings(LanguageVersion.KOTLIN_1_0)

0 commit comments

Comments
 (0)