diff --git a/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleUpdateConfigurationQuickFixTest.kt b/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleUpdateConfigurationQuickFixTest.kt index 33145d4e80f4..b0040bc7cb11 100644 --- a/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleUpdateConfigurationQuickFixTest.kt +++ b/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleUpdateConfigurationQuickFixTest.kt @@ -45,9 +45,51 @@ class GradleUpdateConfigurationQuickFixTest : GradleImportingTestCase() { } @Test - @TargetVersions("4.7 <=> 6.0") + @TargetVersions("7.0 <=> 9.0") + fun testUpdateExistingLanguageVersion() { + doTest("Set module language version to 1.9") + } + + @Test + @TargetVersions("7.0 <=> 9.0") + fun testUpdateExistingLanguageVersionKts() { + doTest("Set module language version to 1.9") + } + + @Test + @TargetVersions("7.0 <=> 9.0") + fun testUpdateExistingLanguageVersionKMP() { + doKMPTest("Set module language version to 1.9") + } + + @Test + @TargetVersions("7.0 <=> 9.0") + fun testUpdateExistingLanguageVersionKMPKts() { + doKMPTest("Set module language version to 1.9") + } + + @Test + @TargetVersions("7.0 <=> 9.0") fun testUpdateLanguageVersion() { - doTest("Set module language version to 1.1") + doTest("Set module language version to 1.9") + } + + @Test + @TargetVersions("7.0 <=> 9.0") + fun testUpdateLanguageVersionKts() { + doTest("Set module language version to 1.9") + } + + @Test + @TargetVersions("7.0 <=> 9.0") + fun testUpdateLanguageVersionKMP() { + doKMPTest("Set module language version to 1.9") + } + + @Test + @TargetVersions("7.0 <=> 9.0") + fun testUpdateLanguageVersionKMPKts() { + doKMPTest("Set module language version to 1.9") } @Test @@ -71,9 +113,16 @@ class GradleUpdateConfigurationQuickFixTest : GradleImportingTestCase() { doTest("Add 'kotlin-reflect.jar' to the classpath") } - private fun doTest(intentionName: String) { - val buildGradleVFile = createProjectSubFile("build.gradle", File(getTestDataDirectory(), "build.gradle").readText()) - val sourceVFile = createProjectSubFile("src/main/kotlin/src.kt", File(getTestDataDirectory(), "src.kt").readText()) + private fun doKMPTest(intentionName: String) = doTest(intentionName, "src/jvmMain/kotlin/src.kt") + + private fun doTest(intentionName: String, srcFilePath: String = "src/main/kotlin/src.kt") { + var gradleKtsFile = File(getTestDataDirectory(), "build.gradle.kts") + val buildGradleVFile = if (gradleKtsFile.exists()) { + createProjectSubFile("build.gradle.kts", gradleKtsFile.readText()) + } else { + createProjectSubFile("build.gradle", File(getTestDataDirectory(), "build.gradle").readText()) + } + val sourceVFile = createProjectSubFile(srcFilePath, File(getTestDataDirectory(), "src.kt").readText()) importProject() runInEdtAndWait { codeInsightTestFixture.configureFromExistingVirtualFile(sourceVFile) @@ -84,11 +133,11 @@ class GradleUpdateConfigurationQuickFixTest : GradleImportingTestCase() { } private fun checkResult(file: VirtualFile) { - val expectedPath = File(getTestDataDirectory(), "build.gradle.after") + val expectedPath = File(getTestDataDirectory(), file.name + ".after") val expectedContent = StringUtil.convertLineSeparators(expectedPath.readText()) val actualContent = StringUtil.convertLineSeparators(LoadTextUtil.loadText(file).toString()) if (actualContent != expectedContent) { - throw FileComparisonFailedError("build.gradle doesn't match", expectedContent, actualContent, expectedPath.path) + throw FileComparisonFailedError("${file.name} doesn't match", expectedContent, actualContent, expectedPath.path) } } } diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/build.gradle b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/build.gradle new file mode 100644 index 000000000000..1bcaf9c371c1 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.jetbrains.kotlin.jvm' version '1.8.0' +} + +group = 'org.example' +version = '1.0-SNAPSHOT' + +repositories { + mavenCentral() +} +compileKotlin { + kotlinOptions { + languageVersion = "1.8" + } +} diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/build.gradle.after b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/build.gradle.after new file mode 100644 index 000000000000..e7168ed55642 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/build.gradle.after @@ -0,0 +1,15 @@ +plugins { + id 'org.jetbrains.kotlin.jvm' version '1.8.0' +} + +group = 'org.example' +version = '1.0-SNAPSHOT' + +repositories { + mavenCentral() +} +compileKotlin { + kotlinOptions { + languageVersion = "1.9" + } +} diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/src.kt b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/src.kt new file mode 100644 index 000000000000..150e52c0882c --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersion/src.kt @@ -0,0 +1 @@ +data object Test \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/build.gradle b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/build.gradle new file mode 100644 index 000000000000..7fcd4d531535 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/build.gradle @@ -0,0 +1,23 @@ +plugins { + id 'org.jetbrains.kotlin.multiplatform' version '1.8.0' +} + +repositories { + mavenCentral() +} + +kotlin { + jvm { + withJava() + } + sourceSets { + jvmMain { + + } + all { + languageSettings { + languageVersion = "1.8" + } + } + } +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/build.gradle.after b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/build.gradle.after new file mode 100644 index 000000000000..8fe9b6309d0a --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/build.gradle.after @@ -0,0 +1,23 @@ +plugins { + id 'org.jetbrains.kotlin.multiplatform' version '1.8.0' +} + +repositories { + mavenCentral() +} + +kotlin { + jvm { + withJava() + } + sourceSets { + jvmMain { + + } + all { + languageSettings { + languageVersion = "1.9" + } + } + } +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/src.kt b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/src.kt new file mode 100644 index 000000000000..150e52c0882c --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMP/src.kt @@ -0,0 +1 @@ +data object Test \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/build.gradle.kts b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/build.gradle.kts new file mode 100644 index 000000000000..85051893fdc5 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + kotlin("multiplatform") version "1.8.0" +} + +repositories { + mavenCentral() +} + +group = "com.example" +version = "1.0-SNAPSHOT" + +kotlin { + jvm { + withJava() + } + sourceSets { + val jvmMain by getting { + } + all { + languageSettings { + languageVersion = "1.8" + } + } + } +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/build.gradle.kts.after b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/build.gradle.kts.after new file mode 100644 index 000000000000..5e4eb65f34d8 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/build.gradle.kts.after @@ -0,0 +1,25 @@ +plugins { + kotlin("multiplatform") version "1.8.0" +} + +repositories { + mavenCentral() +} + +group = "com.example" +version = "1.0-SNAPSHOT" + +kotlin { + jvm { + withJava() + } + sourceSets { + val jvmMain by getting { + } + all { + languageSettings { + languageVersion = "1.9" + } + } + } +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/src.kt b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/src.kt new file mode 100644 index 000000000000..150e52c0882c --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKMPKts/src.kt @@ -0,0 +1 @@ +data object Test \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/build.gradle.kts b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/build.gradle.kts new file mode 100644 index 000000000000..9755636e02e5 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/build.gradle.kts @@ -0,0 +1,16 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + kotlin("jvm") version "1.8.0" +} + +group = "org.example" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} +val compileKotlin: KotlinCompile by tasks +compileKotlin.kotlinOptions { + languageVersion = "1.8" +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/build.gradle.kts.after b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/build.gradle.kts.after new file mode 100644 index 000000000000..e4baa6846171 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/build.gradle.kts.after @@ -0,0 +1,16 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + kotlin("jvm") version "1.8.0" +} + +group = "org.example" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} +val compileKotlin: KotlinCompile by tasks +compileKotlin.kotlinOptions { + languageVersion = "1.9" +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/src.kt b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/src.kt new file mode 100644 index 000000000000..150e52c0882c --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateExistingLanguageVersionKts/src.kt @@ -0,0 +1 @@ +data object Test \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/build.gradle b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/build.gradle index c6d8e03080eb..9d75cd1433f2 100644 --- a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/build.gradle +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/build.gradle @@ -1,22 +1,10 @@ -group 'Again' -version '1.0-SNAPSHOT' - -buildscript { - repositories { - mavenCentral() - } - - dependencies { - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0") - } +plugins { + id 'org.jetbrains.kotlin.jvm' version '1.8.0' } -apply plugin: 'kotlin' +group = 'org.example' +version = '1.0-SNAPSHOT' -dependencies { - compile "org.jetbrains.kotlin:kotlin-stdlib:1.1.0" -} - -compileKotlin { - kotlinOptions.languageVersion = "1.0" +repositories { + mavenCentral() } diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/build.gradle.after b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/build.gradle.after index 0e739dd351b1..e7168ed55642 100644 --- a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/build.gradle.after +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/build.gradle.after @@ -1,22 +1,15 @@ -group 'Again' -version '1.0-SNAPSHOT' - -buildscript { - repositories { - mavenCentral() - } - - dependencies { - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0") - } +plugins { + id 'org.jetbrains.kotlin.jvm' version '1.8.0' } -apply plugin: 'kotlin' +group = 'org.example' +version = '1.0-SNAPSHOT' -dependencies { - compile "org.jetbrains.kotlin:kotlin-stdlib:1.1.0" +repositories { + mavenCentral() } - compileKotlin { - kotlinOptions.languageVersion = "1.1" + kotlinOptions { + languageVersion = "1.9" + } } diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/src.kt b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/src.kt index 5531476003cd..150e52c0882c 100644 --- a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/src.kt +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersion/src.kt @@ -1 +1 @@ -val x get() = 1 +data object Test \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/build.gradle b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/build.gradle new file mode 100644 index 000000000000..11749d9d9099 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/build.gradle @@ -0,0 +1,21 @@ +plugins { + id 'org.jetbrains.kotlin.multiplatform' version '1.8.0' +} + +repositories { + mavenCentral() +} + +group = 'com.example' +version = '1.0-SNAPSHOT' + +kotlin { + jvm { + withJava() + } + sourceSets { + jvmMain { + + } + } +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/build.gradle.after b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/build.gradle.after new file mode 100644 index 000000000000..8c82b277904b --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/build.gradle.after @@ -0,0 +1,26 @@ +plugins { + id 'org.jetbrains.kotlin.multiplatform' version '1.8.0' +} + +repositories { + mavenCentral() +} + +group = 'com.example' +version = '1.0-SNAPSHOT' + +kotlin { + jvm { + withJava() + } + sourceSets { + jvmMain { + + } + all { + languageSettings { + languageVersion = "1.9" + } + } + } +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/src.kt b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/src.kt new file mode 100644 index 000000000000..150e52c0882c --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMP/src.kt @@ -0,0 +1 @@ +data object Test \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/build.gradle.kts b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/build.gradle.kts new file mode 100644 index 000000000000..3cc3d87f5eb5 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/build.gradle.kts @@ -0,0 +1,20 @@ +plugins { + kotlin("multiplatform") version "1.8.0" +} + +repositories { + mavenCentral() +} + +group = "com.example" +version = "1.0-SNAPSHOT" + +kotlin { + jvm { + withJava() + } + sourceSets { + val jvmMain by getting { + } + } +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/build.gradle.kts.after b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/build.gradle.kts.after new file mode 100644 index 000000000000..5e4eb65f34d8 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/build.gradle.kts.after @@ -0,0 +1,25 @@ +plugins { + kotlin("multiplatform") version "1.8.0" +} + +repositories { + mavenCentral() +} + +group = "com.example" +version = "1.0-SNAPSHOT" + +kotlin { + jvm { + withJava() + } + sourceSets { + val jvmMain by getting { + } + all { + languageSettings { + languageVersion = "1.9" + } + } + } +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/src.kt b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/src.kt new file mode 100644 index 000000000000..150e52c0882c --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKMPKts/src.kt @@ -0,0 +1 @@ +data object Test \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/build.gradle.kts b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/build.gradle.kts new file mode 100644 index 000000000000..fc1eef39d604 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/build.gradle.kts @@ -0,0 +1,10 @@ +plugins { + kotlin("jvm") version "1.8.0" +} + +group = "org.example" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/build.gradle.kts.after b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/build.gradle.kts.after new file mode 100644 index 000000000000..e4baa6846171 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/build.gradle.kts.after @@ -0,0 +1,16 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + kotlin("jvm") version "1.8.0" +} + +group = "org.example" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} +val compileKotlin: KotlinCompile by tasks +compileKotlin.kotlinOptions { + languageVersion = "1.9" +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/src.kt b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/src.kt new file mode 100644 index 000000000000..150e52c0882c --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/gradle/languageFeature/updateLanguageVersionKts/src.kt @@ -0,0 +1 @@ +data object Test \ No newline at end of file