diff --git a/.idea/artifacts/KotlinPlugin.xml b/.idea/artifacts/KotlinPlugin.xml index 8c817a1fa8f..e62ffdca21b 100644 --- a/.idea/artifacts/KotlinPlugin.xml +++ b/.idea/artifacts/KotlinPlugin.xml @@ -49,6 +49,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index e3c3a015954..9bd910a6723 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -49,7 +49,7 @@ http://www.w3.org/1999/xhtml - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 57d4f630197..930f3191a64 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -45,6 +45,7 @@ + diff --git a/generators/generators.iml b/generators/generators.iml index c1adce0e190..99d62ae94da 100644 --- a/generators/generators.iml +++ b/generators/generators.iml @@ -37,6 +37,7 @@ + \ No newline at end of file diff --git a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index 391584a8812..e788d90f21e 100644 --- a/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -57,7 +57,7 @@ import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractKeywordComplet import org.jetbrains.kotlin.idea.completion.test.handlers.AbstractSmartCompletionHandlerTest import org.jetbrains.kotlin.idea.completion.test.weighers.AbstractBasicCompletionWeigherTest import org.jetbrains.kotlin.idea.completion.test.weighers.AbstractSmartCompletionWeigherTest -import org.jetbrains.kotlin.idea.configuration.AbstractConfigureProjectByChangingFileTest +import org.jetbrains.kotlin.idea.configuration.AbstractMavenConfigureProjectByChangingFileTest import org.jetbrains.kotlin.idea.conversion.copy.AbstractJavaToKotlinCopyPasteConversionTest import org.jetbrains.kotlin.idea.coverage.AbstractKotlinCoverageOutputFilesTest import org.jetbrains.kotlin.idea.debugger.AbstractBeforeExtractFunctionInsertionTest @@ -491,10 +491,6 @@ fun main(args: Array) { model("inspections", pattern = "^(inspections\\.test)$", singleClass = true) } - testClass { - model("maven-inspections", pattern = "^([\\w\\-]+).xml$", singleClass = true) - } - testClass() { model("hierarchy/class/type", extension = null, recursive = false, testMethod = "doTypeClassHierarchyTest") model("hierarchy/class/super", extension = null, recursive = false, testMethod = "doSuperClassHierarchyTest") @@ -600,10 +596,8 @@ fun main(args: Array) { model("multiFileInspections", extension = "test", singleClass = true) } - testClass() { + testClass() { model("configuration/gradle", pattern = """(\w+)_before\.gradle$""", testMethod = "doTestGradle") - model("configuration/maven", extension = null, recursive = false, testMethod = "doTestWithMaven") - model("configuration/js-maven", extension = null, recursive = false, testMethod = "doTestWithJSMaven") } testClass() { @@ -800,6 +794,17 @@ fun main(args: Array) { } } + testGroup("idea/idea-maven/test", "idea/idea-maven/testData") { + testClass() { + model("configurator/jvm", extension = null, recursive = false, testMethod = "doTestWithMaven") + model("configurator/js", extension = null, recursive = false, testMethod = "doTestWithJSMaven") + } + + testClass { + model("maven-inspections", pattern = "^([\\w\\-]+).xml$", singleClass = true) + } + } + testGroup("idea/tests", "compiler/testData") { testClass() { model("loadJava/compiledKotlin") diff --git a/idea/idea-android/tests/org/jetbrains/kotlin/android/configure/AbstractConfigureProjectTest.java b/idea/idea-android/tests/org/jetbrains/kotlin/android/configure/AbstractConfigureProjectTest.java index 2b157c36a1e..cc47792b96b 100644 --- a/idea/idea-android/tests/org/jetbrains/kotlin/android/configure/AbstractConfigureProjectTest.java +++ b/idea/idea-android/tests/org/jetbrains/kotlin/android/configure/AbstractConfigureProjectTest.java @@ -18,8 +18,9 @@ package org.jetbrains.kotlin.android.configure; import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.idea.configuration.AbstractConfigureProjectByChangingFileTest; +import org.jetbrains.kotlin.idea.configuration.AbstractGradleConfigureProjectByChangingFileTest; -public abstract class AbstractConfigureProjectTest extends AbstractConfigureProjectByChangingFileTest { +public abstract class AbstractConfigureProjectTest extends AbstractGradleConfigureProjectByChangingFileTest { public void doTestAndroidGradle(@NotNull String path) throws Exception { doTest(path, path.replace("before", "after"), new KotlinAndroidGradleModuleConfigurator()); } diff --git a/idea/idea-maven/idea-maven.iml b/idea/idea-maven/idea-maven.iml new file mode 100644 index 00000000000..6ed9a20c3ad --- /dev/null +++ b/idea/idea-maven/idea-maven.iml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToBuild/description.html b/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToBuild/description.html new file mode 100644 index 00000000000..a0d58e87d94 --- /dev/null +++ b/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToBuild/description.html @@ -0,0 +1,5 @@ + + +This intention moves source directory from execution's configuration to build the corresponding source directory tag + + \ No newline at end of file diff --git a/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToExecutionIntention/description.html b/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToExecutionIntention/description.html new file mode 100644 index 00000000000..2d7bf675eb1 --- /dev/null +++ b/idea/idea-maven/resources/intentionDescriptions/MavenPluginSourcesMoveToExecutionIntention/description.html @@ -0,0 +1,6 @@ + + +This intention moves source directory from build source directory tag +to the corresponding kotlin-maven-plugin execution's configuration + + \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaMavenConfigurator.java b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaMavenConfigurator.java similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaMavenConfigurator.java rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinJavaMavenConfigurator.java diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavascriptMavenConfigurator.java b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinJavascriptMavenConfigurator.java similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJavascriptMavenConfigurator.java rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinJavascriptMavenConfigurator.java diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProvider.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java similarity index 99% rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java index 44c554c633b..faa7b5ecd6d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenConfigurator.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,7 +42,6 @@ import org.jetbrains.idea.maven.model.MavenPlugin; import org.jetbrains.idea.maven.project.MavenProject; import org.jetbrains.idea.maven.project.MavenProjectsManager; import org.jetbrains.idea.maven.utils.MavenArtifactScope; -import org.jetbrains.idea.maven.utils.MavenUtil; import org.jetbrains.kotlin.idea.KotlinPluginUtil; import org.jetbrains.kotlin.idea.framework.ui.ConfigureDialogWithModulesAndVersion; diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt similarity index 96% rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt index 67f957eaca6..64ac29e0656 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenImporter.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,10 @@ package org.jetbrains.kotlin.idea.configuration -import com.intellij.openapi.components.* +import com.intellij.openapi.components.PersistentStateComponent +import com.intellij.openapi.components.State +import com.intellij.openapi.components.Storage +import com.intellij.openapi.components.StoragePathMacros import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider import com.intellij.openapi.module.Module import org.jdom.Element diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenPluginPhaseInspection.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenPluginPhaseInspection.kt similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenPluginPhaseInspection.kt rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenPluginPhaseInspection.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenUnresolvedReferenceQuickFixProvider.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenUnresolvedReferenceQuickFixProvider.kt similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenUnresolvedReferenceQuickFixProvider.kt rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/KotlinMavenUnresolvedReferenceQuickFixProvider.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/MavenActionsGroup.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenActionsGroup.kt similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/MavenActionsGroup.kt rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenActionsGroup.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/MavenModulesRelationship.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenModulesRelationship.kt similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/MavenModulesRelationship.kt rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenModulesRelationship.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/MavenPluginSourcesSwap.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenPluginSourcesSwap.kt similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/MavenPluginSourcesSwap.kt rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/MavenPluginSourcesSwap.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/PomFile.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/PomFile.kt similarity index 100% rename from idea/src/org/jetbrains/kotlin/idea/configuration/PomFile.kt rename to idea/idea-maven/src/org/jetbrains/kotlin/idea/configuration/PomFile.kt diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/AbstractMavenConfigureProjectByChangingFileTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/AbstractMavenConfigureProjectByChangingFileTest.kt new file mode 100644 index 00000000000..b2d9d44239e --- /dev/null +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/AbstractMavenConfigureProjectByChangingFileTest.kt @@ -0,0 +1,37 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.idea.configuration + +import com.intellij.openapi.module.Module +import com.intellij.psi.PsiFile +import org.jetbrains.idea.maven.model.MavenConstants + +abstract class AbstractMavenConfigureProjectByChangingFileTest : AbstractConfigureProjectByChangingFileTest() { + fun doTestWithMaven(path: String) { + val pathWithFile = path + "/" + MavenConstants.POM_XML + doTest(pathWithFile, pathWithFile.replace("pom", "pom_after"), KotlinJavaMavenConfigurator()) + } + + fun doTestWithJSMaven(path: String) { + val pathWithFile = path + "/" + MavenConstants.POM_XML + doTest(pathWithFile, pathWithFile.replace("pom", "pom_after"), KotlinJavascriptMavenConfigurator()) + } + + override fun runConfigurator(module: Module, file: PsiFile, configurator: KotlinMavenConfigurator, version: String, collector: NotificationMessageCollector) { + configurator.changePomFile(module, file, version, collector) + } +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt similarity index 100% rename from idea/tests/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/KotlinMavenArchetypesProviderTest.kt diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureProjectByChangingFileTestGenerated.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/MavenConfigureProjectByChangingFileTestGenerated.java similarity index 100% rename from idea/tests/org/jetbrains/kotlin/idea/configuration/ConfigureProjectByChangingFileTestGenerated.java rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/configuration/MavenConfigureProjectByChangingFileTestGenerated.java diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt similarity index 94% rename from idea/tests/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt index b0833cc240c..0db08d8b0f0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/AbstractKotlinMavenInspectionTest.kt @@ -62,9 +62,12 @@ abstract class AbstractKotlinMavenInspectionTest : MavenImportingTestCase() { mkJavaFile() } + val inspectionClassName = "".toRegex().find(pomText)?.groups?.get(1)?.value ?: KotlinMavenPluginPhaseInspection::class.qualifiedName !! + val inspectionClass = Class.forName(inspectionClassName) + val matcher = "".toRegex() val expected = pomText.lines().mapNotNull { matcher.find(it) }.map { SimplifiedProblemDescription(it.groups[2]!!.value.trim(), it.groups[1]!!.value.trim()) } - val actual = runInspection().sortedBy { it.first.text } + val actual = runInspection(inspectionClass).sortedBy { it.first.text } assertEquals(expected.sortedBy { it.text }, actual.map { it.first }) @@ -147,9 +150,7 @@ abstract class AbstractKotlinMavenInspectionTest : MavenImportingTestCase() { assertTrue(FileTypeIndex.containsFileOfType(JavaFileType.INSTANCE, myProject.allModules().single().moduleScope)) } - private inline fun runInspection(): List> { - val inspectionClass = T::class.java - + private fun runInspection(inspectionClass: Class<*>): List> { val toolWrapper = LocalInspectionToolWrapper(inspectionClass.newInstance() as LocalInspectionTool) val scope = AnalysisScope(myProject) diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt similarity index 99% rename from idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt index 751268755cf..2a56de407a8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java similarity index 81% rename from idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java index f99db69a8a6..aeac29d7f01 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java @@ -27,47 +27,47 @@ import java.util.regex.Pattern; /** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("idea/testData/maven-inspections") +@TestMetadata("idea/idea-maven/testData/maven-inspections") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) public class KotlinMavenInspectionTestGenerated extends AbstractKotlinMavenInspectionTest { public void testAllFilesPresentInMaven_inspections() throws Exception { - KotlinTestUtils.assertAllTestsPresentInSingleGeneratedClass(this.getClass(), new File("idea/testData/maven-inspections"), Pattern.compile("^([\\w\\-]+).xml$")); + KotlinTestUtils.assertAllTestsPresentInSingleGeneratedClass(this.getClass(), new File("idea/idea-maven/testData/maven-inspections"), Pattern.compile("^([\\w\\-]+).xml$")); } @TestMetadata("bothCompileAndTestCompileInTheSameExecution.xml") public void testBothCompileAndTestCompileInTheSameExecution() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml"); + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml"); doTest(fileName); } @TestMetadata("dependencyWithNoExecution.xml") public void testDependencyWithNoExecution() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/dependencyWithNoExecution.xml"); + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.xml"); doTest(fileName); } @TestMetadata("missingDependencies.xml") public void testMissingDependencies() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/missingDependencies.xml"); + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/missingDependencies.xml"); doTest(fileName); } @TestMetadata("noExecutions.xml") public void testNoExecutions() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/noExecutions.xml"); + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/noExecutions.xml"); doTest(fileName); } @TestMetadata("wrongJsExecution.xml") public void testWrongJsExecution() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/wrongJsExecution.xml"); + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/wrongJsExecution.xml"); doTest(fileName); } @TestMetadata("wrongPhaseExecution.xml") public void testWrongPhaseExecution() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/maven-inspections/wrongPhaseExecution.xml"); + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.xml"); doTest(fileName); } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/MavenImportingTestCase.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenImportingTestCase.java similarity index 100% rename from idea/tests/org/jetbrains/kotlin/idea/maven/MavenImportingTestCase.java rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenImportingTestCase.java diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/MavenTestCase.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java similarity index 99% rename from idea/tests/org/jetbrains/kotlin/idea/maven/MavenTestCase.java rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java index 95552945f7a..470160e8741 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/maven/MavenTestCase.java +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/MavenTestCase.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/idea/tests/org/jetbrains/kotlin/idea/maven/NullMavenConsole.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/NullMavenConsole.java similarity index 100% rename from idea/tests/org/jetbrains/kotlin/idea/maven/NullMavenConsole.java rename to idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/NullMavenConsole.java diff --git a/idea/testData/configuration/js-maven/libraryMissed/pom.xml b/idea/idea-maven/testData/configurator/js/libraryMissed/pom.xml similarity index 100% rename from idea/testData/configuration/js-maven/libraryMissed/pom.xml rename to idea/idea-maven/testData/configurator/js/libraryMissed/pom.xml diff --git a/idea/testData/configuration/js-maven/libraryMissed/pom_after.xml b/idea/idea-maven/testData/configurator/js/libraryMissed/pom_after.xml similarity index 100% rename from idea/testData/configuration/js-maven/libraryMissed/pom_after.xml rename to idea/idea-maven/testData/configurator/js/libraryMissed/pom_after.xml diff --git a/idea/testData/configuration/js-maven/pluginMissed/pom.xml b/idea/idea-maven/testData/configurator/js/pluginMissed/pom.xml similarity index 100% rename from idea/testData/configuration/js-maven/pluginMissed/pom.xml rename to idea/idea-maven/testData/configurator/js/pluginMissed/pom.xml diff --git a/idea/testData/configuration/js-maven/pluginMissed/pom_after.xml b/idea/idea-maven/testData/configurator/js/pluginMissed/pom_after.xml similarity index 100% rename from idea/testData/configuration/js-maven/pluginMissed/pom_after.xml rename to idea/idea-maven/testData/configurator/js/pluginMissed/pom_after.xml diff --git a/idea/testData/configuration/js-maven/simpleProject/pom.xml b/idea/idea-maven/testData/configurator/js/simpleProject/pom.xml similarity index 100% rename from idea/testData/configuration/js-maven/simpleProject/pom.xml rename to idea/idea-maven/testData/configurator/js/simpleProject/pom.xml diff --git a/idea/testData/configuration/js-maven/simpleProject/pom_after.xml b/idea/idea-maven/testData/configurator/js/simpleProject/pom_after.xml similarity index 100% rename from idea/testData/configuration/js-maven/simpleProject/pom_after.xml rename to idea/idea-maven/testData/configurator/js/simpleProject/pom_after.xml diff --git a/idea/testData/configuration/js-maven/simpleProjectSnapshot/pom.xml b/idea/idea-maven/testData/configurator/js/simpleProjectSnapshot/pom.xml similarity index 100% rename from idea/testData/configuration/js-maven/simpleProjectSnapshot/pom.xml rename to idea/idea-maven/testData/configurator/js/simpleProjectSnapshot/pom.xml diff --git a/idea/testData/configuration/js-maven/simpleProjectSnapshot/pom_after.xml b/idea/idea-maven/testData/configurator/js/simpleProjectSnapshot/pom_after.xml similarity index 100% rename from idea/testData/configuration/js-maven/simpleProjectSnapshot/pom_after.xml rename to idea/idea-maven/testData/configurator/js/simpleProjectSnapshot/pom_after.xml diff --git a/idea/testData/configuration/maven/fixExisting/pom.xml b/idea/idea-maven/testData/configurator/jvm/fixExisting/pom.xml similarity index 100% rename from idea/testData/configuration/maven/fixExisting/pom.xml rename to idea/idea-maven/testData/configurator/jvm/fixExisting/pom.xml diff --git a/idea/testData/configuration/maven/fixExisting/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/fixExisting/pom_after.xml similarity index 100% rename from idea/testData/configuration/maven/fixExisting/pom_after.xml rename to idea/idea-maven/testData/configurator/jvm/fixExisting/pom_after.xml diff --git a/idea/testData/configuration/maven/libraryMissed/pom.xml b/idea/idea-maven/testData/configurator/jvm/libraryMissed/pom.xml similarity index 100% rename from idea/testData/configuration/maven/libraryMissed/pom.xml rename to idea/idea-maven/testData/configurator/jvm/libraryMissed/pom.xml diff --git a/idea/testData/configuration/maven/libraryMissed/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/libraryMissed/pom_after.xml similarity index 100% rename from idea/testData/configuration/maven/libraryMissed/pom_after.xml rename to idea/idea-maven/testData/configurator/jvm/libraryMissed/pom_after.xml diff --git a/idea/testData/configuration/maven/pluginMissed/pom.xml b/idea/idea-maven/testData/configurator/jvm/pluginMissed/pom.xml similarity index 100% rename from idea/testData/configuration/maven/pluginMissed/pom.xml rename to idea/idea-maven/testData/configurator/jvm/pluginMissed/pom.xml diff --git a/idea/testData/configuration/maven/pluginMissed/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/pluginMissed/pom_after.xml similarity index 100% rename from idea/testData/configuration/maven/pluginMissed/pom_after.xml rename to idea/idea-maven/testData/configurator/jvm/pluginMissed/pom_after.xml diff --git a/idea/testData/configuration/maven/simpleProject/pom.xml b/idea/idea-maven/testData/configurator/jvm/simpleProject/pom.xml similarity index 100% rename from idea/testData/configuration/maven/simpleProject/pom.xml rename to idea/idea-maven/testData/configurator/jvm/simpleProject/pom.xml diff --git a/idea/testData/configuration/maven/simpleProject/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/simpleProject/pom_after.xml similarity index 100% rename from idea/testData/configuration/maven/simpleProject/pom_after.xml rename to idea/idea-maven/testData/configurator/jvm/simpleProject/pom_after.xml diff --git a/idea/testData/configuration/maven/simpleProjectSnapshot/pom.xml b/idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom.xml similarity index 100% rename from idea/testData/configuration/maven/simpleProjectSnapshot/pom.xml rename to idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom.xml diff --git a/idea/testData/configuration/maven/simpleProjectSnapshot/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom_after.xml similarity index 100% rename from idea/testData/configuration/maven/simpleProjectSnapshot/pom_after.xml rename to idea/idea-maven/testData/configurator/jvm/simpleProjectSnapshot/pom_after.xml diff --git a/idea/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml b/idea/idea-maven/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml similarity index 100% rename from idea/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml rename to idea/idea-maven/testData/maven-inspections/bothCompileAndTestCompileInTheSameExecution.xml diff --git a/idea/testData/maven-inspections/dependencyWithNoExecution.fixed.1.xml b/idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.fixed.1.xml similarity index 100% rename from idea/testData/maven-inspections/dependencyWithNoExecution.fixed.1.xml rename to idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.fixed.1.xml diff --git a/idea/testData/maven-inspections/dependencyWithNoExecution.fixed.2.xml b/idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.fixed.2.xml similarity index 100% rename from idea/testData/maven-inspections/dependencyWithNoExecution.fixed.2.xml rename to idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.fixed.2.xml diff --git a/idea/testData/maven-inspections/dependencyWithNoExecution.xml b/idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.xml similarity index 100% rename from idea/testData/maven-inspections/dependencyWithNoExecution.xml rename to idea/idea-maven/testData/maven-inspections/dependencyWithNoExecution.xml diff --git a/idea/testData/maven-inspections/missingDependencies.fixed.1.xml b/idea/idea-maven/testData/maven-inspections/missingDependencies.fixed.1.xml similarity index 100% rename from idea/testData/maven-inspections/missingDependencies.fixed.1.xml rename to idea/idea-maven/testData/maven-inspections/missingDependencies.fixed.1.xml diff --git a/idea/testData/maven-inspections/missingDependencies.fixed.2.xml b/idea/idea-maven/testData/maven-inspections/missingDependencies.fixed.2.xml similarity index 100% rename from idea/testData/maven-inspections/missingDependencies.fixed.2.xml rename to idea/idea-maven/testData/maven-inspections/missingDependencies.fixed.2.xml diff --git a/idea/testData/maven-inspections/missingDependencies.xml b/idea/idea-maven/testData/maven-inspections/missingDependencies.xml similarity index 100% rename from idea/testData/maven-inspections/missingDependencies.xml rename to idea/idea-maven/testData/maven-inspections/missingDependencies.xml diff --git a/idea/testData/maven-inspections/noExecutions.fixed.1.xml b/idea/idea-maven/testData/maven-inspections/noExecutions.fixed.1.xml similarity index 100% rename from idea/testData/maven-inspections/noExecutions.fixed.1.xml rename to idea/idea-maven/testData/maven-inspections/noExecutions.fixed.1.xml diff --git a/idea/testData/maven-inspections/noExecutions.fixed.2.xml b/idea/idea-maven/testData/maven-inspections/noExecutions.fixed.2.xml similarity index 100% rename from idea/testData/maven-inspections/noExecutions.fixed.2.xml rename to idea/idea-maven/testData/maven-inspections/noExecutions.fixed.2.xml diff --git a/idea/testData/maven-inspections/noExecutions.xml b/idea/idea-maven/testData/maven-inspections/noExecutions.xml similarity index 100% rename from idea/testData/maven-inspections/noExecutions.xml rename to idea/idea-maven/testData/maven-inspections/noExecutions.xml diff --git a/idea/testData/maven-inspections/wrongJsExecution.xml b/idea/idea-maven/testData/maven-inspections/wrongJsExecution.xml similarity index 100% rename from idea/testData/maven-inspections/wrongJsExecution.xml rename to idea/idea-maven/testData/maven-inspections/wrongJsExecution.xml diff --git a/idea/testData/maven-inspections/wrongPhaseExecution.fixed.1.xml b/idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.fixed.1.xml similarity index 100% rename from idea/testData/maven-inspections/wrongPhaseExecution.fixed.1.xml rename to idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.fixed.1.xml diff --git a/idea/testData/maven-inspections/wrongPhaseExecution.xml b/idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.xml similarity index 100% rename from idea/testData/maven-inspections/wrongPhaseExecution.xml rename to idea/idea-maven/testData/maven-inspections/wrongPhaseExecution.xml diff --git a/idea/idea.iml b/idea/idea.iml index c812377c270..80f037f3c40 100644 --- a/idea/idea.iml +++ b/idea/idea.iml @@ -33,7 +33,6 @@ - @@ -53,5 +52,6 @@ + \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureProjectByChangingFileTest.java b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureProjectByChangingFileTest.java index b864e1107de..f4cbf738cf7 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureProjectByChangingFileTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureProjectByChangingFileTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,51 +16,40 @@ package org.jetbrains.kotlin.idea.configuration; +import com.intellij.openapi.module.Module; +import com.intellij.psi.PsiFile; import com.intellij.testFramework.LightCodeInsightTestCase; import org.jetbrains.annotations.NotNull; -import org.jetbrains.idea.maven.model.MavenConstants; import org.jetbrains.kotlin.test.InTextDirectivesUtils; import org.jetbrains.kotlin.test.KotlinTestUtils; -import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; import java.io.File; -public abstract class AbstractConfigureProjectByChangingFileTest extends LightCodeInsightTestCase { +public abstract class AbstractConfigureProjectByChangingFileTest extends LightCodeInsightTestCase { private static final String DEFAULT_VERSION = "default_version"; - public void doTestWithMaven(@NotNull String path) throws Exception { - String pathWithFile = path + "/" + MavenConstants.POM_XML; - doTest(pathWithFile, pathWithFile.replace("pom", "pom_after"), new KotlinJavaMavenConfigurator()); - } - - public void doTestWithJSMaven(@NotNull String path) throws Exception { - String pathWithFile = path + "/" + MavenConstants.POM_XML; - doTest(pathWithFile, pathWithFile.replace("pom", "pom_after"), new KotlinJavascriptMavenConfigurator()); - } - - public void doTestGradle(@NotNull String path) throws Exception { - doTest(path, path.replace("before", "after"), new KotlinGradleModuleConfigurator()); - } - - protected void doTest(@NotNull String beforeFile, @NotNull String afterFile, @NotNull KotlinProjectConfigurator configurator) throws Exception { + protected void doTest(@NotNull String beforeFile, @NotNull String afterFile, @NotNull C configurator) throws Exception { configureByFile(beforeFile); String versionFromFile = InTextDirectivesUtils.findStringWithPrefixes(getFile().getText(), "// VERSION:"); String version = versionFromFile != null ? versionFromFile : DEFAULT_VERSION; NotificationMessageCollector collector = NotificationMessageCollectorKt.createConfigureKotlinNotificationCollector(getProject()); - if (configurator instanceof KotlinWithGradleConfigurator) { - ((KotlinWithGradleConfigurator) configurator).changeGradleFile((GroovyFile) getFile(), true, version, collector); - ((KotlinWithGradleConfigurator) configurator).changeGradleFile((GroovyFile) getFile(), false, version, collector); - } - else if (configurator instanceof KotlinMavenConfigurator) { - ((KotlinMavenConfigurator) configurator).changePomFile(getModule(), getFile(), version, collector); - } + + runConfigurator(getModule(), getFile(), configurator, version, collector); + collector.showNotification(); KotlinTestUtils.assertEqualsToFile(new File(afterFile), getFile().getText().replace(version, "$VERSION$")); } + protected abstract void runConfigurator( + Module module, @NotNull PsiFile file, + @NotNull C configurator, + @NotNull String version, + @NotNull NotificationMessageCollector collector + ); + @NotNull @Override protected String getTestDataPath() { diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractGradleConfigureProjectByChangingFileTest.kt b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractGradleConfigureProjectByChangingFileTest.kt new file mode 100644 index 00000000000..1ae9014c996 --- /dev/null +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractGradleConfigureProjectByChangingFileTest.kt @@ -0,0 +1,38 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.idea.configuration + +import com.intellij.openapi.module.Module +import com.intellij.psi.PsiFile +import org.jetbrains.plugins.groovy.lang.psi.GroovyFile + +abstract class AbstractGradleConfigureProjectByChangingFileTest : AbstractConfigureProjectByChangingFileTest() { + + fun doTestGradle(path: String) { + doTest(path, path.replace("before", "after"), KotlinGradleModuleConfigurator()) + } + + override fun runConfigurator(module: Module, file: PsiFile, configurator: KotlinWithGradleConfigurator, version: String, collector: NotificationMessageCollector) { + if (file !is GroovyFile) { + fail("file $file is not a GroovyFile") + return + } + + configurator.changeGradleFile(file, true, version, collector) + configurator.changeGradleFile(file, false, version, collector) + } +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java new file mode 100644 index 00000000000..7fe12c8f061 --- /dev/null +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java @@ -0,0 +1,55 @@ +/* + * Copyright 2010-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.idea.configuration; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("idea/testData/configuration/gradle") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class GradleConfigureProjectByChangingFileTestGenerated extends AbstractGradleConfigureProjectByChangingFileTest { + public void testAllFilesPresentInGradle() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/configuration/gradle"), Pattern.compile("(\\w+)_before\\.gradle$"), true); + } + + @TestMetadata("default_before.gradle") + public void testDefault() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/default_before.gradle"); + doTestGradle(fileName); + } + + @TestMetadata("missedLibrary_before.gradle") + public void testMissedLibrary() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/missedLibrary_before.gradle"); + doTestGradle(fileName); + } + + @TestMetadata("plugin_present_before.gradle") + public void testPlugin_present() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/plugin_present_before.gradle"); + doTestGradle(fileName); + } +}