From 641bd1d910a11da9f9d9b35b4e7acf78649964c0 Mon Sep 17 00:00:00 2001 From: "Natalia.Ukhorskaya" Date: Tue, 3 Sep 2013 12:59:07 +0400 Subject: [PATCH] Add Gradle (simple and for android) Project Configurator --- .../jet/generators/tests/GenerateTests.java | 9 + idea/src/META-INF/gradle.xml | 4 +- .../jetbrains/jet/plugin/JetPluginUtil.java | 17 ++ ...KotlinAndroidGradleModuleConfigurator.java | 49 +++++ .../KotlinGradleModuleConfigurator.java | 61 ++++++ .../KotlinWithLibraryConfigurator.java | 3 +- .../androidStudioDefaultShapshot_after.gradle | 42 ++++ ...androidStudioDefaultShapshot_before.gradle | 29 +++ .../androidStudioDefault_after.gradle | 34 ++++ .../androidStudioDefault_before.gradle | 27 +++ .../android-gradle/buildConfigs_after.gradle | 41 ++++ .../android-gradle/buildConfigs_before.gradle | 29 +++ .../emptyDependencyList_after.gradle | 25 +++ .../emptyDependencyList_before.gradle | 18 ++ .../android-gradle/emptyFile_after.gradle | 21 ++ .../android-gradle/emptyFile_before.gradle | 0 .../gradleExample0_after.gradle | 55 ++++++ .../gradleExample0_before.gradle | 46 +++++ .../gradleExample18_after.gradle | 67 +++++++ .../gradleExample18_before.gradle | 60 ++++++ .../gradleExample22_after.gradle | 59 ++++++ .../gradleExample22_before.gradle | 47 +++++ .../gradleExample44_after.gradle | 68 +++++++ .../gradleExample44_before.gradle | 58 ++++++ .../gradleExample50_after.gradle | 32 +++ .../gradleExample50_before.gradle | 22 +++ .../gradleExample58_after.gradle | 35 ++++ .../gradleExample58_before.gradle | 26 +++ .../gradleExample5_after.gradle | 54 ++++++ .../gradleExample5_before.gradle | 42 ++++ .../gradleExample65_after.gradle | 45 +++++ .../gradleExample65_before.gradle | 38 ++++ .../gradleExample8_after.gradle | 32 +++ .../gradleExample8_before.gradle | 23 +++ .../android-gradle/helloWorld_after.gradle | 26 +++ .../android-gradle/helloWorld_before.gradle | 14 ++ .../android-gradle/libraryFile_after.gradle | 46 +++++ .../android-gradle/libraryFile_before.gradle | 36 ++++ .../missedApplyAndroidStatement_after.gradle | 33 ++++ .../missedApplyAndroidStatement_before.gradle | 26 +++ .../missedBuildscriptBlock_after.gradle | 33 ++++ .../missedBuildscriptBlock_before.gradle | 19 ++ ...epositoriesInBuildscriptBlock_after.gradle | 41 ++++ ...positoriesInBuildscriptBlock_before.gradle | 26 +++ .../android-gradle/productFlavor_after.gradle | 34 ++++ .../productFlavor_before.gradle | 22 +++ .../configuration/gradle/default_after.gradle | 26 +++ .../gradle/default_before.gradle | 12 ++ .../gradle/missedLibrary_after.gradle | 26 +++ .../gradle/missedLibrary_before.gradle | 21 ++ .../AbstractConfigureGradleProjectTest.java | 52 +++++ .../ConfigureGradleProjectTestGenerated.java | 182 ++++++++++++++++++ 52 files changed, 1891 insertions(+), 2 deletions(-) create mode 100644 idea/src/org/jetbrains/jet/plugin/configuration/KotlinAndroidGradleModuleConfigurator.java create mode 100644 idea/src/org/jetbrains/jet/plugin/configuration/KotlinGradleModuleConfigurator.java create mode 100644 idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_after.gradle create mode 100644 idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_before.gradle create mode 100644 idea/testData/configuration/android-gradle/androidStudioDefault_after.gradle create mode 100644 idea/testData/configuration/android-gradle/androidStudioDefault_before.gradle create mode 100644 idea/testData/configuration/android-gradle/buildConfigs_after.gradle create mode 100644 idea/testData/configuration/android-gradle/buildConfigs_before.gradle create mode 100644 idea/testData/configuration/android-gradle/emptyDependencyList_after.gradle create mode 100644 idea/testData/configuration/android-gradle/emptyDependencyList_before.gradle create mode 100644 idea/testData/configuration/android-gradle/emptyFile_after.gradle create mode 100644 idea/testData/configuration/android-gradle/emptyFile_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_before.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_after.gradle create mode 100644 idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_before.gradle create mode 100644 idea/testData/configuration/android-gradle/helloWorld_after.gradle create mode 100644 idea/testData/configuration/android-gradle/helloWorld_before.gradle create mode 100644 idea/testData/configuration/android-gradle/libraryFile_after.gradle create mode 100644 idea/testData/configuration/android-gradle/libraryFile_before.gradle create mode 100644 idea/testData/configuration/android-gradle/missedApplyAndroidStatement_after.gradle create mode 100644 idea/testData/configuration/android-gradle/missedApplyAndroidStatement_before.gradle create mode 100644 idea/testData/configuration/android-gradle/missedBuildscriptBlock_after.gradle create mode 100644 idea/testData/configuration/android-gradle/missedBuildscriptBlock_before.gradle create mode 100644 idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_after.gradle create mode 100644 idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_before.gradle create mode 100644 idea/testData/configuration/android-gradle/productFlavor_after.gradle create mode 100644 idea/testData/configuration/android-gradle/productFlavor_before.gradle create mode 100644 idea/testData/configuration/gradle/default_after.gradle create mode 100644 idea/testData/configuration/gradle/default_before.gradle create mode 100644 idea/testData/configuration/gradle/missedLibrary_after.gradle create mode 100644 idea/testData/configuration/gradle/missedLibrary_before.gradle create mode 100644 idea/tests/org/jetbrains/jet/plugin/configuration/AbstractConfigureGradleProjectTest.java create mode 100644 idea/tests/org/jetbrains/jet/plugin/configuration/ConfigureGradleProjectTestGenerated.java diff --git a/generators/org/jetbrains/jet/generators/tests/GenerateTests.java b/generators/org/jetbrains/jet/generators/tests/GenerateTests.java index b1d5af9db16..d12245605d4 100644 --- a/generators/org/jetbrains/jet/generators/tests/GenerateTests.java +++ b/generators/org/jetbrains/jet/generators/tests/GenerateTests.java @@ -42,6 +42,7 @@ import org.jetbrains.jet.modules.xml.AbstractModuleXmlParserTest; import org.jetbrains.jet.plugin.codeInsight.moveUpDown.AbstractCodeMoverTest; import org.jetbrains.jet.plugin.codeInsight.surroundWith.AbstractSurroundWithTest; import org.jetbrains.jet.plugin.codeInsight.unwrap.AbstractUnwrapRemoveTest; +import org.jetbrains.jet.plugin.configuration.AbstractConfigureGradleProjectTest; import org.jetbrains.jet.plugin.folding.AbstractKotlinFoldingTest; import org.jetbrains.jet.plugin.hierarchy.AbstractHierarchyTest; import org.jetbrains.jet.plugin.highlighter.AbstractDeprecatedHighlightingTest; @@ -455,6 +456,14 @@ public class GenerateTests { AbstractJetFindUsagesTest.class, testModelWithPattern("idea/testData/findUsages", "^(.+).0.kt$", "doTest") ); + + generateTest( + "idea/tests/", + "ConfigureGradleProjectTestGenerated", + AbstractConfigureGradleProjectTest.class, + new SimpleTestClassModel(new File("idea/testData/configuration/android-gradle"), true, Pattern.compile("(\\w+)_before\\.gradle$"), "doTestAndroidGradle"), + new SimpleTestClassModel(new File("idea/testData/configuration/gradle"), true, Pattern.compile("(\\w+)_before\\.gradle$"), "doTestGradle") + ); } private static SimpleTestClassModel testModel(@NotNull String rootPath) { diff --git a/idea/src/META-INF/gradle.xml b/idea/src/META-INF/gradle.xml index 8b695f0ed14..0d70c9a7061 100644 --- a/idea/src/META-INF/gradle.xml +++ b/idea/src/META-INF/gradle.xml @@ -1,4 +1,6 @@ - + + + \ No newline at end of file diff --git a/idea/src/org/jetbrains/jet/plugin/JetPluginUtil.java b/idea/src/org/jetbrains/jet/plugin/JetPluginUtil.java index b61c437fedd..5a5704dae79 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetPluginUtil.java +++ b/idea/src/org/jetbrains/jet/plugin/JetPluginUtil.java @@ -41,6 +41,7 @@ import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; +import java.io.File; import java.util.LinkedList; public class JetPluginUtil { @@ -148,4 +149,20 @@ public class JetPluginUtil { } return false; } + + public static boolean isGradleModule(@NotNull Module module) { + VirtualFile moduleFile = module.getModuleFile(); + if (moduleFile == null) return false; + + String moduleFilePath = moduleFile.getPath(); + String buildGradle = moduleFilePath.replace(moduleFile.getName(), "build.gradle"); + + return new File(buildGradle).exists(); + } + + public static boolean isMavenModule(@NotNull Module module) { + // This constant could be acquired from MavenProjectsManager, but we don't want to depend on the Maven plugin... + // See MavenProjectsManager.isMavenizedModule() + return "true".equals(module.getOptionValue("org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule")); + } } diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinAndroidGradleModuleConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinAndroidGradleModuleConfigurator.java new file mode 100644 index 00000000000..ead1070f619 --- /dev/null +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinAndroidGradleModuleConfigurator.java @@ -0,0 +1,49 @@ +package org.jetbrains.jet.plugin.configuration; + +import com.intellij.openapi.module.Module; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.plugin.JetPluginUtil; +import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock; + +public class KotlinAndroidGradleModuleConfigurator extends KotlinWithGradleConfigurator { + public static final String NAME = "android-gradle"; + + private static final String APPLY_KOTLIN_ANDROID = "apply plugin: 'kotlin-android'"; + + @NotNull + @Override + public String getName() { + return NAME; + } + + @NotNull + @Override + public String getPresentableText() { + return "As Android project with Gradle"; + } + + @Override + public boolean isApplicable(@NotNull Module module) { + return JetPluginUtil.isAndroidGradleModule(module); + } + + @Override + protected String getApplyPluginDirective() { + return APPLY_KOTLIN_ANDROID; + } + + @Override + protected void addSourceSetsBlock(@NotNull GroovyFile file) { + GrClosableBlock androidBlock = getAndroidBlock(file); + addLastExpressionInBlockIfNeeded(SOURCE_SET, getSourceSetsBlock(androidBlock)); + } + + @NotNull + private static GrClosableBlock getAndroidBlock(@NotNull GroovyFile file) { + return getBlockOrCreate(file, "android"); + } + + KotlinAndroidGradleModuleConfigurator() { + } +} diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinGradleModuleConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinGradleModuleConfigurator.java new file mode 100644 index 00000000000..5f8f6d57b72 --- /dev/null +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinGradleModuleConfigurator.java @@ -0,0 +1,61 @@ +/* + * Copyright 2010-2013 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.jet.plugin.configuration; + +import com.intellij.openapi.module.Module; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.plugin.JetPluginUtil; +import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock; + +public class KotlinGradleModuleConfigurator extends KotlinWithGradleConfigurator { + public static final String NAME = "gradle"; + + private static final String APPLY_KOTLIN = "apply plugin: 'kotlin'"; + + @NotNull + @Override + public String getName() { + return NAME; + } + + @NotNull + @Override + public String getPresentableText() { + return "As Gradle project"; + } + + @Override + public boolean isApplicable(@NotNull Module module) { + return JetPluginUtil.isGradleModule(module) && + !JetPluginUtil.isAndroidGradleModule(module); + } + + @Override + protected String getApplyPluginDirective() { + return APPLY_KOTLIN; + } + + @Override + protected void addSourceSetsBlock(@NotNull GroovyFile file) { + GrClosableBlock sourceSetBlock = getSourceSetsBlock(file); + addLastExpressionInBlockIfNeeded(SOURCE_SET, sourceSetBlock); + } + + KotlinGradleModuleConfigurator() { + } +} diff --git a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinWithLibraryConfigurator.java b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinWithLibraryConfigurator.java index 2135aa7d2d3..8e111c1444e 100644 --- a/idea/src/org/jetbrains/jet/plugin/configuration/KotlinWithLibraryConfigurator.java +++ b/idea/src/org/jetbrains/jet/plugin/configuration/KotlinWithLibraryConfigurator.java @@ -18,6 +18,7 @@ import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.util.Processor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.plugin.JetPluginUtil; import org.jetbrains.jet.plugin.framework.ui.FileUIUtils; import java.io.File; @@ -42,7 +43,7 @@ public abstract class KotlinWithLibraryConfigurator implements KotlinProjectConf @Override public boolean isApplicable(@NotNull Module module) { - return true; + return !JetPluginUtil.isAndroidGradleModule(module) && !JetPluginUtil.isMavenModule(module) && !JetPluginUtil.isGradleModule(module); } public boolean isJarPresent(@NotNull String dir) { diff --git a/idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_after.gradle b/idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_after.gradle new file mode 100644 index 00000000000..45a21422466 --- /dev/null +++ b/idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_after.gradle @@ -0,0 +1,42 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + maven { + url 'http://oss.sonatype.org/content/repositories/snapshots' + } + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +repositories { + mavenCentral() + maven { + url 'http://oss.sonatype.org/content/repositories/snapshots' + } +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} + +// VERSION: $VERSION$ diff --git a/idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_before.gradle b/idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_before.gradle new file mode 100644 index 00000000000..e98c3dfdfa8 --- /dev/null +++ b/idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_before.gradle @@ -0,0 +1,29 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' +} + +// VERSION: 0.1-SNAPSHOT diff --git a/idea/testData/configuration/android-gradle/androidStudioDefault_after.gradle b/idea/testData/configuration/android-gradle/androidStudioDefault_after.gradle new file mode 100644 index 00000000000..447cc06f3f0 --- /dev/null +++ b/idea/testData/configuration/android-gradle/androidStudioDefault_after.gradle @@ -0,0 +1,34 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} diff --git a/idea/testData/configuration/android-gradle/androidStudioDefault_before.gradle b/idea/testData/configuration/android-gradle/androidStudioDefault_before.gradle new file mode 100644 index 00000000000..c079e92a39c --- /dev/null +++ b/idea/testData/configuration/android-gradle/androidStudioDefault_before.gradle @@ -0,0 +1,27 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' +} diff --git a/idea/testData/configuration/android-gradle/buildConfigs_after.gradle b/idea/testData/configuration/android-gradle/buildConfigs_after.gradle new file mode 100644 index 00000000000..b985ae1f8f8 --- /dev/null +++ b/idea/testData/configuration/android-gradle/buildConfigs_after.gradle @@ -0,0 +1,41 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} + +apply plugin: 'android' +apply plugin: 'kotlin-android' + +android { + target = 'android-16' + defaultConfig { + packageName = 'com.example' + signingStoreLocation = 'keystore' + signingStorePassword = 'helloworld' + signingKeyAlias = 'Key' + signingKeyPassword = 'helloworld' + } + buildTypes { + release { + buildConfig "public final static boolean IS_LIVE=true;" + } + debug { + buildConfig "public final static boolean IS_LIVE=false;" + } + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/buildConfigs_before.gradle b/idea/testData/configuration/android-gradle/buildConfigs_before.gradle new file mode 100644 index 00000000000..c3dd92612a4 --- /dev/null +++ b/idea/testData/configuration/android-gradle/buildConfigs_before.gradle @@ -0,0 +1,29 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} + +apply plugin: 'android' + +android { + target = 'android-16' + defaultConfig { + packageName = 'com.example' + signingStoreLocation = 'keystore' + signingStorePassword = 'helloworld' + signingKeyAlias = 'Key' + signingKeyPassword = 'helloworld' + } + buildTypes { + release { + buildConfig "public final static boolean IS_LIVE=true;" + } + debug { + buildConfig "public final static boolean IS_LIVE=false;" + } + } +} diff --git a/idea/testData/configuration/android-gradle/emptyDependencyList_after.gradle b/idea/testData/configuration/android-gradle/emptyDependencyList_after.gradle new file mode 100644 index 00000000000..c2795943dea --- /dev/null +++ b/idea/testData/configuration/android-gradle/emptyDependencyList_after.gradle @@ -0,0 +1,25 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +repositories { + mavenCentral() +} + +android { + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} diff --git a/idea/testData/configuration/android-gradle/emptyDependencyList_before.gradle b/idea/testData/configuration/android-gradle/emptyDependencyList_before.gradle new file mode 100644 index 00000000000..f784dfd5a7f --- /dev/null +++ b/idea/testData/configuration/android-gradle/emptyDependencyList_before.gradle @@ -0,0 +1,18 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + } +} +apply plugin: 'android' + +repositories { + mavenCentral() +} + +android { +} + +dependencies { +} diff --git a/idea/testData/configuration/android-gradle/emptyFile_after.gradle b/idea/testData/configuration/android-gradle/emptyFile_after.gradle new file mode 100644 index 00000000000..0593aa0e36d --- /dev/null +++ b/idea/testData/configuration/android-gradle/emptyFile_after.gradle @@ -0,0 +1,21 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'kotlin-android' +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} +android { + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/emptyFile_before.gradle b/idea/testData/configuration/android-gradle/emptyFile_before.gradle new file mode 100644 index 00000000000..e69de29bb2d diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_after.gradle new file mode 100644 index 00000000000..74a9775e033 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_after.gradle @@ -0,0 +1,55 @@ +apply plugin: 'android' +apply plugin: 'kotlin-android' + +project.ext.fakeProvider = new com.android.tests.basic.buildscript.FakeProvider() +project.ext.fakeServer = new com.android.tests.basic.buildscript.FakeServer() + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + deviceProvider project.ext.fakeProvider + testServer project.ext.fakeServer + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +project.afterEvaluate { + configure(fakeInstrumentTest) { + doLast { + String error = project.ext.fakeProvider.isValid() + if (error != null) { + throw new GradleException("Failed DeviceProvider usage: " + error) + } + } + } + + configure(fake2Upload) { + doLast { + String error = project.ext.fakeServer.isValid() + if (error != null) { + throw new GradleException("Failed TestServer usage: " + error) + } + } + } +} + +dependencies { + compile project(':lib') + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} + +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +repositories { + mavenCentral() +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_before.gradle new file mode 100644 index 00000000000..d54c6f7e6ab --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_before.gradle @@ -0,0 +1,46 @@ +apply plugin: 'android' + +project.ext.fakeProvider = new com.android.tests.basic.buildscript.FakeProvider() +project.ext.fakeServer = new com.android.tests.basic.buildscript.FakeServer() + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + deviceProvider project.ext.fakeProvider + testServer project.ext.fakeServer +} + +project.afterEvaluate { + configure(fakeInstrumentTest) { + doLast { + String error = project.ext.fakeProvider.isValid() + if (error != null) { + throw new GradleException("Failed DeviceProvider usage: " + error) + } + } + } + + configure(fake2Upload) { + doLast { + String error = project.ext.fakeServer.isValid() + if (error != null) { + throw new GradleException("Failed TestServer usage: " + error) + } + } + } +} + +dependencies { + compile project(':lib') +} + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} + diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_after.gradle new file mode 100644 index 00000000000..2daa8c73aca --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_after.gradle @@ -0,0 +1,67 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +repositories { + mavenCentral() +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' + debugCompile 'com.android.support:support-v13:13.0.0' + + compile 'com.google.android.gms:play-services:3.1.36' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + testBuildType "debug" + + signingConfigs { + myConfig { + storeFile file("debug.keystore") + storePassword "android" + keyAlias "androiddebugkey" + keyPassword "android" + } + } + + defaultConfig { + versionCode 12 + versionName "2.0" + minSdkVersion 16 + targetSdkVersion 16 + + buildConfig "private final static boolean DEFAULT = true;", \ + "private final static String FOO = \"foo\";" + } + + buildTypes { + debug { + packageNameSuffix ".debug" + signingConfig signingConfigs.myConfig + + buildConfig "private final static boolean DEBUG2 = false;" + } + } + + aaptOptions { + noCompress 'txt' + ignoreAssetsPattern "!.svn:!.git:!.ds_store:!*.scc:.*:_*:!CVS:!thumbs.db:!picasa.ini:!*~" + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_before.gradle new file mode 100644 index 00000000000..48498be4603 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_before.gradle @@ -0,0 +1,60 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +repositories { + mavenCentral() +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' + debugCompile 'com.android.support:support-v13:13.0.0' + + compile 'com.google.android.gms:play-services:3.1.36' +} + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + testBuildType "debug" + + signingConfigs { + myConfig { + storeFile file("debug.keystore") + storePassword "android" + keyAlias "androiddebugkey" + keyPassword "android" + } + } + + defaultConfig { + versionCode 12 + versionName "2.0" + minSdkVersion 16 + targetSdkVersion 16 + + buildConfig "private final static boolean DEFAULT = true;", \ + "private final static String FOO = \"foo\";" + } + + buildTypes { + debug { + packageNameSuffix ".debug" + signingConfig signingConfigs.myConfig + + buildConfig "private final static boolean DEBUG2 = false;" + } + } + + aaptOptions { + noCompress 'txt' + ignoreAssetsPattern "!.svn:!.git:!.ds_store:!*.scc:.*:_*:!CVS:!thumbs.db:!picasa.ini:!*~" + } +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_after.gradle new file mode 100644 index 00000000000..1a397155ea8 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_after.gradle @@ -0,0 +1,59 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + testBuildType = "staging" + + defaultConfig { + buildConfig "private final static boolean DEFAULT = true;", \ + "private final static String FOO = \"foo\";" + } + + productFlavors { + f1 { + packageName = "com.android.tests.flavored.f1" + versionName = "1.0.0-f1" + buildConfig "private final static String FLAVOR = \"f1\";" + } + f2 { + packageName = "com.android.tests.flavored.f2" + versionName = "1.0.0-f2" + buildConfig "private final static String FLAVOR = \"f2\";" + } + } + + buildTypes { + debug { + packageNameSuffix = ".debug" + versionNameSuffix = ".D" + buildConfig "private final static boolean DEBUG2 = false;" + } + staging { + packageNameSuffix = ".staging" + versionNameSuffix = ".S" + signingConfig signingConfigs.debug + } + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_before.gradle new file mode 100644 index 00000000000..f3630f1a817 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_before.gradle @@ -0,0 +1,47 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + testBuildType = "staging" + + defaultConfig { + buildConfig "private final static boolean DEFAULT = true;", \ + "private final static String FOO = \"foo\";" + } + + productFlavors { + f1 { + packageName = "com.android.tests.flavored.f1" + versionName = "1.0.0-f1" + buildConfig "private final static String FLAVOR = \"f1\";" + } + f2 { + packageName = "com.android.tests.flavored.f2" + versionName = "1.0.0-f2" + buildConfig "private final static String FLAVOR = \"f2\";" + } + } + + buildTypes { + debug { + packageNameSuffix = ".debug" + versionNameSuffix = ".D" + buildConfig "private final static boolean DEBUG2 = false;" + } + staging { + packageNameSuffix = ".staging" + versionNameSuffix = ".S" + signingConfig signingConfigs.debug + } + } +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_after.gradle new file mode 100644 index 00000000000..39289886783 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_after.gradle @@ -0,0 +1,68 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + sourceSets { + main { + manifest { + // there's only ever one file so srcFile replaces it. + srcFile 'AndroidManifest.xml' + } + java { + // writing: + // srcDir 'src' + // would *add* to the default folder so we use a different syntax + srcDirs = ['src'] + exclude 'some/unwanted/package/**' + } + res { + srcDirs = ['res'] + } + assets { + srcDirs = ['assets'] + } + resources { + srcDirs = ['src'] + } + aidl { + srcDirs = ['src'] + } + renderscript { + srcDirs = ['src'] + } + } + + // this moves src/instrumentTest to tests so all folders follow: + // tests/java, tests/res, tests/assets, ... + // This is a *reset* so it replaces the default paths + instrumentTest.setRoot('tests') + main.java.srcDirs += 'src/main/kotlin' + + // Could also be done with: + //main.manifest.srcFile 'AndroidManifest.xml' + //main.java.srcDir 'src' + //main.res.srcDir 'res' + //main.assets.srcDir 'assets' + //main.resources.srcDir 'src' + //instrumentTest.java.srcDir 'tests/src' + } +} +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_before.gradle new file mode 100644 index 00000000000..62fa85435b2 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_before.gradle @@ -0,0 +1,58 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + sourceSets { + main { + manifest { + // there's only ever one file so srcFile replaces it. + srcFile 'AndroidManifest.xml' + } + java { + // writing: + // srcDir 'src' + // would *add* to the default folder so we use a different syntax + srcDirs = ['src'] + exclude 'some/unwanted/package/**' + } + res { + srcDirs = ['res'] + } + assets { + srcDirs = ['assets'] + } + resources { + srcDirs = ['src'] + } + aidl { + srcDirs = ['src'] + } + renderscript { + srcDirs = ['src'] + } + } + + // this moves src/instrumentTest to tests so all folders follow: + // tests/java, tests/res, tests/assets, ... + // This is a *reset* so it replaces the default paths + instrumentTest.setRoot('tests') + + // Could also be done with: + //main.manifest.srcFile 'AndroidManifest.xml' + //main.java.srcDir 'src' + //main.res.srcDir 'res' + //main.assets.srcDir 'assets' + //main.resources.srcDir 'src' + //instrumentTest.java.srcDir 'tests/src' + } +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_after.gradle new file mode 100644 index 00000000000..e073d6aca4e --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_after.gradle @@ -0,0 +1,32 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + sourceSets { + main { + res { + srcDirs 'src/main/res1', 'src/main/res2' + } + } + main.java.srcDirs += 'src/main/kotlin' + } +} +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_before.gradle new file mode 100644 index 00000000000..8d7b48738ac --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_before.gradle @@ -0,0 +1,22 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + sourceSets { + main { + res { + srcDirs 'src/main/res1', 'src/main/res2' + } + } + } +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_after.gradle new file mode 100644 index 00000000000..989a5893b0d --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_after.gradle @@ -0,0 +1,35 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + buildTypes.debug { + zipAlign true + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +android.applicationVariants.each { variant -> + variant.outputFile = file("$project.buildDir/${variant.name}.apk") +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_before.gradle new file mode 100644 index 00000000000..3c272fd7110 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_before.gradle @@ -0,0 +1,26 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + + buildTypes.debug { + zipAlign true + } +} + +android.applicationVariants.each { variant -> + variant.outputFile = file("$project.buildDir/${variant.name}.apk") +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_after.gradle new file mode 100644 index 00000000000..03f736a8b78 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_after.gradle @@ -0,0 +1,54 @@ +apply plugin: 'android' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +// query for all (non-test) variants and inject a new step in the builds +android.applicationVariants.each { variant -> + // create a task that "handles" the compile classes + // does some processing (or not) + // and outputs a jar + def jarTask = tasks.add(name: "jar${variant.name.capitalize()}", type: Jar) { + from variant.javaCompile.destinationDir + destinationDir file("${buildDir}/jars/${variant.dirName}") + baseName "classes" + } + + // this task depends on the compilation task + jarTask.dependsOn variant.javaCompile + + // now make the dex task depend on it and use its output + variant.dex.dependsOn jarTask + variant.dex.sourceFiles = files(jarTask.archivePath).files +} + +if (android.applicationVariants.size() != 2) { + throw new GradleException("Wrong number of app variants!") +} + +if (android.testVariants.size() != 1) { + throw new GradleException("Wrong number of test variants!") +} + +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_before.gradle new file mode 100644 index 00000000000..140dc6956c3 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_before.gradle @@ -0,0 +1,42 @@ +apply plugin: 'android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" +} + +// query for all (non-test) variants and inject a new step in the builds +android.applicationVariants.each { variant -> + // create a task that "handles" the compile classes + // does some processing (or not) + // and outputs a jar + def jarTask = tasks.add(name: "jar${variant.name.capitalize()}", type: Jar) { + from variant.javaCompile.destinationDir + destinationDir file("${buildDir}/jars/${variant.dirName}") + baseName "classes" + } + + // this task depends on the compilation task + jarTask.dependsOn variant.javaCompile + + // now make the dex task depend on it and use its output + variant.dex.dependsOn jarTask + variant.dex.sourceFiles = files(jarTask.archivePath).files +} + +if (android.applicationVariants.size() != 2) { + throw new GradleException("Wrong number of app variants!") +} + +if (android.testVariants.size() != 1) { + throw new GradleException("Wrong number of test variants!") +} + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_after.gradle new file mode 100644 index 00000000000..d65e95e4679 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_after.gradle @@ -0,0 +1,45 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} + +apply plugin: 'android-library' +apply plugin: 'kotlin-android' +apply plugin: 'maven' + +repositories { + maven { url '../testrepo' } + mavenCentral() +} + +dependencies { + compile 'com.example.android.multiproject:util:1.0' + releaseCompile 'com.google.guava:guava:11.0.2' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +group = 'com.example.android.multiproject' +archivesBaseName = 'baseLib' +version = '1.0' + +uploadArchives { + repositories { + mavenDeployer { + repository(url: uri("../testrepo")) + } + } +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_before.gradle new file mode 100644 index 00000000000..9d991e7340e --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_before.gradle @@ -0,0 +1,38 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} + +apply plugin: 'android-library' +apply plugin: 'maven' + +repositories { + maven { url '../testrepo' } + mavenCentral() +} + +dependencies { + compile 'com.example.android.multiproject:util:1.0' + releaseCompile 'com.google.guava:guava:11.0.2' +} + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" +} + +group = 'com.example.android.multiproject' +archivesBaseName = 'baseLib' +version = '1.0' + +uploadArchives { + repositories { + mavenDeployer { + repository(url: uri("../testrepo")) + } + } +} diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_after.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_after.gradle new file mode 100644 index 00000000000..a8acb01bad1 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_after.gradle @@ -0,0 +1,32 @@ +apply plugin: 'android' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +// +// A basic Android application split over a library and a main project. +// +dependencies { + compile project(':lib') + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} + +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +repositories { + mavenCentral() +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_before.gradle b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_before.gradle new file mode 100644 index 00000000000..81e7f3dd3a1 --- /dev/null +++ b/idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_before.gradle @@ -0,0 +1,23 @@ +apply plugin: 'android' + +android { + compileSdkVersion 15 + buildToolsVersion "17.0" +} + +// +// A basic Android application split over a library and a main project. +// +dependencies { + compile project(':lib') +} + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} + diff --git a/idea/testData/configuration/android-gradle/helloWorld_after.gradle b/idea/testData/configuration/android-gradle/helloWorld_after.gradle new file mode 100644 index 00000000000..1a8f01e1656 --- /dev/null +++ b/idea/testData/configuration/android-gradle/helloWorld_after.gradle @@ -0,0 +1,26 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} + +apply plugin: 'android' +apply plugin: 'kotlin-android' + +android { + target = 'android-16' + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/helloWorld_before.gradle b/idea/testData/configuration/android-gradle/helloWorld_before.gradle new file mode 100644 index 00000000000..2eb4172df89 --- /dev/null +++ b/idea/testData/configuration/android-gradle/helloWorld_before.gradle @@ -0,0 +1,14 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} + +apply plugin: 'android' + +android { + target = 'android-16' +} diff --git a/idea/testData/configuration/android-gradle/libraryFile_after.gradle b/idea/testData/configuration/android-gradle/libraryFile_after.gradle new file mode 100644 index 00000000000..76824147262 --- /dev/null +++ b/idea/testData/configuration/android-gradle/libraryFile_after.gradle @@ -0,0 +1,46 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} + +apply plugin: 'android-library' +apply plugin: 'kotlin-android' + +android { + target = 'android-16' + sourceSets { + main { + manifest { + srcFile 'AndroidManifest.xml' + } + java { + srcDir 'src' + } + res { + srcDir 'res' + } + assets { + srcDir 'assets' + } + resources { + srcDir 'src' + } + aidl { + srcDir 'src' + } + } + main.java.srcDirs += 'src/main/kotlin' + } +} +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/libraryFile_before.gradle b/idea/testData/configuration/android-gradle/libraryFile_before.gradle new file mode 100644 index 00000000000..fe075f790de --- /dev/null +++ b/idea/testData/configuration/android-gradle/libraryFile_before.gradle @@ -0,0 +1,36 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.2' + } +} + +apply plugin: 'android-library' + +android { + target = 'android-16' + sourceSets { + main { + manifest { + srcFile 'AndroidManifest.xml' + } + java { + srcDir 'src' + } + res { + srcDir 'res' + } + assets { + srcDir 'assets' + } + resources { + srcDir 'src' + } + aidl { + srcDir 'src' + } + } + } +} diff --git a/idea/testData/configuration/android-gradle/missedApplyAndroidStatement_after.gradle b/idea/testData/configuration/android-gradle/missedApplyAndroidStatement_after.gradle new file mode 100644 index 00000000000..064d152a131 --- /dev/null +++ b/idea/testData/configuration/android-gradle/missedApplyAndroidStatement_after.gradle @@ -0,0 +1,33 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +apply plugin: 'kotlin-android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} diff --git a/idea/testData/configuration/android-gradle/missedApplyAndroidStatement_before.gradle b/idea/testData/configuration/android-gradle/missedApplyAndroidStatement_before.gradle new file mode 100644 index 00000000000..ceca813e77f --- /dev/null +++ b/idea/testData/configuration/android-gradle/missedApplyAndroidStatement_before.gradle @@ -0,0 +1,26 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' +} diff --git a/idea/testData/configuration/android-gradle/missedBuildscriptBlock_after.gradle b/idea/testData/configuration/android-gradle/missedBuildscriptBlock_after.gradle new file mode 100644 index 00000000000..e181ac8552d --- /dev/null +++ b/idea/testData/configuration/android-gradle/missedBuildscriptBlock_after.gradle @@ -0,0 +1,33 @@ +apply plugin: 'android' +apply plugin: 'kotlin-android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/missedBuildscriptBlock_before.gradle b/idea/testData/configuration/android-gradle/missedBuildscriptBlock_before.gradle new file mode 100644 index 00000000000..620f419d7bb --- /dev/null +++ b/idea/testData/configuration/android-gradle/missedBuildscriptBlock_before.gradle @@ -0,0 +1,19 @@ +apply plugin: 'android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' +} diff --git a/idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_after.gradle b/idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_after.gradle new file mode 100644 index 00000000000..c8f38accf81 --- /dev/null +++ b/idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_after.gradle @@ -0,0 +1,41 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } + repositories { + maven { + url 'http://oss.sonatype.org/content/repositories/snapshots' + } + } +} +apply plugin: 'android' +apply plugin: 'kotlin-android' + +repositories { + mavenCentral() + maven { + url 'http://oss.sonatype.org/content/repositories/snapshots' + } +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} + +// VERSION: $VERSION$ \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_before.gradle b/idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_before.gradle new file mode 100644 index 00000000000..35362029500 --- /dev/null +++ b/idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_before.gradle @@ -0,0 +1,26 @@ +buildscript { + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + + defaultConfig { + minSdkVersion 7 + targetSdkVersion 16 + } +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' +} + +// VERSION: 0.1-SNAPSHOT diff --git a/idea/testData/configuration/android-gradle/productFlavor_after.gradle b/idea/testData/configuration/android-gradle/productFlavor_after.gradle new file mode 100644 index 00000000000..132ff56c844 --- /dev/null +++ b/idea/testData/configuration/android-gradle/productFlavor_after.gradle @@ -0,0 +1,34 @@ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} + +apply plugin: 'android' +apply plugin: 'kotlin-android' + +android { + target = 'android-16' + productFlavors { + playstore { + packageName = 'com.example.android.gradle.productflavors.playstore' + } + amazonappstore { + packageName = 'com.example.android.gradle.productflavors.amazonappstore' + } + } + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } +} +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} \ No newline at end of file diff --git a/idea/testData/configuration/android-gradle/productFlavor_before.gradle b/idea/testData/configuration/android-gradle/productFlavor_before.gradle new file mode 100644 index 00000000000..be0124e182e --- /dev/null +++ b/idea/testData/configuration/android-gradle/productFlavor_before.gradle @@ -0,0 +1,22 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} + +apply plugin: 'android' + +android { + target = 'android-16' + productFlavors { + playstore { + packageName = 'com.example.android.gradle.productflavors.playstore' + } + amazonappstore { + packageName = 'com.example.android.gradle.productflavors.amazonappstore' + } + } +} diff --git a/idea/testData/configuration/gradle/default_after.gradle b/idea/testData/configuration/gradle/default_after.gradle new file mode 100644 index 00000000000..34d2a55a6af --- /dev/null +++ b/idea/testData/configuration/gradle/default_after.gradle @@ -0,0 +1,26 @@ +apply plugin: 'java' +apply plugin: 'kotlin' + +sourceCompatibility = 1.5 +version = '1.0' + +repositories { + mavenCentral() +} + +dependencies { + testCompile group: 'junit', name: 'junit', version: '4.11' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +sourceSets { + main.java.srcDirs += 'src/main/kotlin' +} \ No newline at end of file diff --git a/idea/testData/configuration/gradle/default_before.gradle b/idea/testData/configuration/gradle/default_before.gradle new file mode 100644 index 00000000000..072e5e57717 --- /dev/null +++ b/idea/testData/configuration/gradle/default_before.gradle @@ -0,0 +1,12 @@ +apply plugin: 'java' + +sourceCompatibility = 1.5 +version = '1.0' + +repositories { + mavenCentral() +} + +dependencies { + testCompile group: 'junit', name: 'junit', version: '4.11' +} \ No newline at end of file diff --git a/idea/testData/configuration/gradle/missedLibrary_after.gradle b/idea/testData/configuration/gradle/missedLibrary_after.gradle new file mode 100644 index 00000000000..0f860a376df --- /dev/null +++ b/idea/testData/configuration/gradle/missedLibrary_after.gradle @@ -0,0 +1,26 @@ +apply plugin: 'java' +apply plugin: 'kotlin' + +sourceCompatibility = 1.5 +version = '1.0' + +dependencies { + testCompile group: 'junit', name: 'junit', version: '4.11' + compile "org.jetbrains.kotlin:kotlin-stdlib:$ext.kotlin_version" +} + +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +sourceSets { + main.java.srcDirs += 'src/main/kotlin' +} +repositories { + mavenCentral() +} \ No newline at end of file diff --git a/idea/testData/configuration/gradle/missedLibrary_before.gradle b/idea/testData/configuration/gradle/missedLibrary_before.gradle new file mode 100644 index 00000000000..280d3ff79be --- /dev/null +++ b/idea/testData/configuration/gradle/missedLibrary_before.gradle @@ -0,0 +1,21 @@ +apply plugin: 'java' +apply plugin: 'kotlin' + +sourceCompatibility = 1.5 +version = '1.0' + +dependencies { + testCompile group: 'junit', name: 'junit', version: '4.11' +} + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$ext.kotlin_version" + } +} +sourceSets { + main.java.srcDirs += 'src/main/kotlin' +} diff --git a/idea/tests/org/jetbrains/jet/plugin/configuration/AbstractConfigureGradleProjectTest.java b/idea/tests/org/jetbrains/jet/plugin/configuration/AbstractConfigureGradleProjectTest.java new file mode 100644 index 00000000000..a411ba7ba6f --- /dev/null +++ b/idea/tests/org/jetbrains/jet/plugin/configuration/AbstractConfigureGradleProjectTest.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010-2013 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.jet.plugin.configuration; + +import com.intellij.testFramework.LightCodeInsightTestCase; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.InTextDirectivesUtils; +import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; + +public abstract class AbstractConfigureGradleProjectTest extends LightCodeInsightTestCase { + private static final String DEFAULT_VERSION = "default_version"; + + public void doTestAndroidGradle(@NotNull String path) throws Exception { + doTest(path, new KotlinAndroidGradleModuleConfigurator()); + } + + public void doTestGradle(@NotNull String path) throws Exception { + doTest(path, new KotlinGradleModuleConfigurator()); + } + + private void doTest(@NotNull String path, @NotNull KotlinWithGradleConfigurator configurator) throws Exception { + configureByFile(path); + GroovyFile groovyFile = (GroovyFile) getFile(); + + String versionFromFile = InTextDirectivesUtils.findStringWithPrefixes(groovyFile.getText(), "// VERSION:"); + String version = versionFromFile != null ? versionFromFile : DEFAULT_VERSION; + + configurator.changeGradleFile(groovyFile, version); + + assertSameLinesWithFile(path.replace("before", "after"), groovyFile.getText().replace(version, "$VERSION$")); + } + + @NotNull + @Override + protected String getTestDataPath() { + return ""; + } +} diff --git a/idea/tests/org/jetbrains/jet/plugin/configuration/ConfigureGradleProjectTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/configuration/ConfigureGradleProjectTestGenerated.java new file mode 100644 index 00000000000..eea657b5a94 --- /dev/null +++ b/idea/tests/org/jetbrains/jet/plugin/configuration/ConfigureGradleProjectTestGenerated.java @@ -0,0 +1,182 @@ +/* + * Copyright 2010-2013 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.jet.plugin.configuration; + +import junit.framework.Assert; +import junit.framework.Test; +import junit.framework.TestSuite; + +import java.io.File; +import java.util.regex.Pattern; +import org.jetbrains.jet.JetTestUtils; +import org.jetbrains.jet.test.InnerTestClasses; +import org.jetbrains.jet.test.TestMetadata; + +import org.jetbrains.jet.plugin.configuration.AbstractConfigureGradleProjectTest; + +/** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@InnerTestClasses({ConfigureGradleProjectTestGenerated.Android_gradle.class, ConfigureGradleProjectTestGenerated.Gradle.class}) +public class ConfigureGradleProjectTestGenerated extends AbstractConfigureGradleProjectTest { + @TestMetadata("idea/testData/configuration/android-gradle") + @InnerTestClasses({Android_gradle.GradleExamples.class}) + public static class Android_gradle extends AbstractConfigureGradleProjectTest { + public void testAllFilesPresentInAndroid_gradle() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/configuration/android-gradle"), Pattern.compile("(\\w+)_before\\.gradle$"), true); + } + + @TestMetadata("androidStudioDefault_before.gradle") + public void testAndroidStudioDefault() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/androidStudioDefault_before.gradle"); + } + + @TestMetadata("androidStudioDefaultShapshot_before.gradle") + public void testAndroidStudioDefaultShapshot() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/androidStudioDefaultShapshot_before.gradle"); + } + + @TestMetadata("buildConfigs_before.gradle") + public void testBuildConfigs() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/buildConfigs_before.gradle"); + } + + @TestMetadata("emptyDependencyList_before.gradle") + public void testEmptyDependencyList() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/emptyDependencyList_before.gradle"); + } + + @TestMetadata("emptyFile_before.gradle") + public void testEmptyFile() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/emptyFile_before.gradle"); + } + + @TestMetadata("helloWorld_before.gradle") + public void testHelloWorld() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/helloWorld_before.gradle"); + } + + @TestMetadata("libraryFile_before.gradle") + public void testLibraryFile() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/libraryFile_before.gradle"); + } + + @TestMetadata("missedApplyAndroidStatement_before.gradle") + public void testMissedApplyAndroidStatement() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/missedApplyAndroidStatement_before.gradle"); + } + + @TestMetadata("missedBuildscriptBlock_before.gradle") + public void testMissedBuildscriptBlock() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/missedBuildscriptBlock_before.gradle"); + } + + @TestMetadata("missedRepositoriesInBuildscriptBlock_before.gradle") + public void testMissedRepositoriesInBuildscriptBlock() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/missedRepositoriesInBuildscriptBlock_before.gradle"); + } + + @TestMetadata("productFlavor_before.gradle") + public void testProductFlavor() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/productFlavor_before.gradle"); + } + + @TestMetadata("idea/testData/configuration/android-gradle/gradleExamples") + public static class GradleExamples extends AbstractConfigureGradleProjectTest { + public void testAllFilesPresentInGradleExamples() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/configuration/android-gradle/gradleExamples"), Pattern.compile("(\\w+)_before\\.gradle$"), true); + } + + @TestMetadata("gradleExample0_before.gradle") + public void testGradleExample0() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample0_before.gradle"); + } + + @TestMetadata("gradleExample18_before.gradle") + public void testGradleExample18() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample18_before.gradle"); + } + + @TestMetadata("gradleExample22_before.gradle") + public void testGradleExample22() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample22_before.gradle"); + } + + @TestMetadata("gradleExample44_before.gradle") + public void testGradleExample44() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample44_before.gradle"); + } + + @TestMetadata("gradleExample5_before.gradle") + public void testGradleExample5() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample5_before.gradle"); + } + + @TestMetadata("gradleExample50_before.gradle") + public void testGradleExample50() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample50_before.gradle"); + } + + @TestMetadata("gradleExample58_before.gradle") + public void testGradleExample58() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample58_before.gradle"); + } + + @TestMetadata("gradleExample65_before.gradle") + public void testGradleExample65() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample65_before.gradle"); + } + + @TestMetadata("gradleExample8_before.gradle") + public void testGradleExample8() throws Exception { + doTestAndroidGradle("idea/testData/configuration/android-gradle/gradleExamples/gradleExample8_before.gradle"); + } + + } + + public static Test innerSuite() { + TestSuite suite = new TestSuite("Android_gradle"); + suite.addTestSuite(Android_gradle.class); + suite.addTestSuite(GradleExamples.class); + return suite; + } + } + + @TestMetadata("idea/testData/configuration/gradle") + public static class Gradle extends AbstractConfigureGradleProjectTest { + public void testAllFilesPresentInGradle() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/configuration/gradle"), Pattern.compile("(\\w+)_before\\.gradle$"), true); + } + + @TestMetadata("default_before.gradle") + public void testDefault() throws Exception { + doTestGradle("idea/testData/configuration/gradle/default_before.gradle"); + } + + @TestMetadata("missedLibrary_before.gradle") + public void testMissedLibrary() throws Exception { + doTestGradle("idea/testData/configuration/gradle/missedLibrary_before.gradle"); + } + + } + + public static Test suite() { + TestSuite suite = new TestSuite("ConfigureGradleProjectTestGenerated"); + suite.addTest(Android_gradle.innerSuite()); + suite.addTestSuite(Gradle.class); + return suite; + } +}