@@ -108,7 +108,7 @@ class GradleTestTemplate {
108
108
''' . stripIndent()
109
109
}
110
110
111
- static def createGradlePropertiesFile (buildSections ) {
111
+ static void createGradlePropertiesFile (buildSections ) {
112
112
def gradlePropertiesFile = testProjectDir. newFile(" gradle.properties" )
113
113
gradlePropertiesFile << """ \
114
114
android.useAndroidX=${ buildSections['android.useAndroidX'] ?: false}
@@ -119,6 +119,26 @@ class GradleTestTemplate {
119
119
""" . stripIndent()
120
120
}
121
121
122
+ // Creates a local maven repo to test local libraries; such as firebase-app-unity
123
+ static void createM2repository (String group , String module , String version ) {
124
+ final libPath = " m2repository/${ group.replace('.', '/')} /${ module} /${ version} "
125
+ testProjectDir. newFolder(libPath. split(' /' ))
126
+
127
+ final pomFile = testProjectDir. newFile(" ${ libPath} /${ module} -${ version} .pom" )
128
+ pomFile << """ \
129
+ <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
130
+ xmlns="http://maven.apache.org/POM/4.0.0"
131
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
132
+ <modelVersion>4.0.0</modelVersion>
133
+ <groupId>${ group} </groupId>
134
+ <artifactId>${ module} </artifactId>
135
+ <version>${ version} </version>
136
+ <packaging>pom</packaging>
137
+ <dependencies></dependencies>
138
+ </project>
139
+ """
140
+ }
141
+
122
142
static void createBuildFile (buildSections ) {
123
143
testProjectDir = new TemporaryFolder ()
124
144
testProjectDir. create()
@@ -151,6 +171,8 @@ class GradleTestTemplate {
151
171
allprojects {
152
172
repositories {
153
173
maven { url 'https://maven.google.com' }
174
+ // Local maven repo to test local libaries; such as firebase-app-unity
175
+ maven { url(uri('m2repository')) }
154
176
jcenter()
155
177
}
156
178
}
@@ -264,14 +286,15 @@ class GradleTestTemplate {
264
286
createSubProject(currentParams)
265
287
createProguardFile()
266
288
267
- // Test running gradle plugin last on newest version of Gradle only
268
- // if (gradleVersion.key == GRADLE_OLDEST_VERSION)
269
- // return
270
- // currentParams['onesignalPluginId'] = "id 'com.onesignal.androidsdk.onesignal-gradle-plugin' apply false"
271
- // currentParams['applyPlugins'] = "apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'"
289
+ // Uncomment to test with only the latest version of Gradle
290
+ // if (!runLatestGradleOnly(gradleVersion, currentParams))
291
+ // return
272
292
273
293
buildArguments. removeAll([null ])
274
294
295
+ if (buildParams[' preBuildClosure' ])
296
+ buildParams[' preBuildClosure' ]()
297
+
275
298
def result =
276
299
GradleRunner . create()
277
300
.withProjectDir(testProjectDir. root)
@@ -293,4 +316,12 @@ class GradleTestTemplate {
293
316
if (buildSections[' onesignalPluginId' ] == null )
294
317
buildSections[' onesignalPluginId' ] = " id 'com.onesignal.androidsdk.onesignal-gradle-plugin'"
295
318
}
319
+
320
+ static boolean runLatestGradleOnly (gradleVersion , currentParams ) {
321
+ if (gradleVersion. key == GRADLE_OLDEST_VERSION )
322
+ return false
323
+ currentParams[' onesignalPluginId' ] = " id 'com.onesignal.androidsdk.onesignal-gradle-plugin' apply false"
324
+ currentParams[' applyPlugins' ] = " apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'"
325
+ true
326
+ }
296
327
}
0 commit comments