@@ -56,11 +56,24 @@ public class AndroidResolverIntegrationTests {
56
56
private const string GRADLE_TEMPLATE_LIBRARY_DISABLED =
57
57
"Assets/Plugins/Android/mainTemplateLibraryDISABLED.gradle" ;
58
58
59
+ /// <summary>
60
+ /// Disabled Gradle properties template file.
61
+ /// </summary>
62
+ private const string GRADLE_TEMPLATE_PROPERTIES_DISABLED =
63
+ "Assets/Plugins/Android/gradleTemplateDISABLED.properties" ;
64
+
65
+ /// <summary>
59
66
/// <summary>
60
67
/// Enabled Gradle template file.
61
68
/// </summary>
62
69
private const string GRADLE_TEMPLATE_ENABLED = "Assets/Plugins/Android/mainTemplate.gradle" ;
63
70
71
+ /// <summary>
72
+ /// <summary>
73
+ /// Enabled Gradle template properties file.
74
+ /// </summary>
75
+ private const string GRADLE_TEMPLATE_PROPERTIES_ENABLED = "Assets/Plugins/Android/gradleTemplate.properties" ;
76
+
64
77
/// <summary>
65
78
/// Configure tests to run.
66
79
/// </summary>
@@ -75,7 +88,8 @@ public static void ConfigureTestCases() {
75
88
// that do not use the Gradle template.
76
89
var nonGradleTemplateFilesToIgnore = new HashSet < string > ( ) {
77
90
Path . GetFileName ( GRADLE_TEMPLATE_DISABLED ) ,
78
- Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED )
91
+ Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED ) ,
92
+ Path . GetFileName ( GRADLE_TEMPLATE_PROPERTIES_DISABLED )
79
93
} ;
80
94
81
95
UnityEngine . Debug . Log ( "Setting up test cases for execution." ) ;
@@ -110,7 +124,8 @@ public static void ConfigureTestCases() {
110
124
"Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/" +
111
125
"firebase/firebase-app-unity/5.1.1/firebase-app-unity-5.1.1.aar" } ,
112
126
filesToIgnore : new HashSet < string > {
113
- Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED )
127
+ Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED ) ,
128
+ Path . GetFileName ( GRADLE_TEMPLATE_PROPERTIES_DISABLED )
114
129
} ) ;
115
130
}
116
131
} ,
@@ -120,17 +135,28 @@ public static void ConfigureTestCases() {
120
135
ClearAllDependencies ( ) ;
121
136
SetupDependencies ( ) ;
122
137
GooglePlayServices . SettingsDialog . UseJetifier = true ;
138
+ var expectedAssetsDir = "ExpectedArtifacts/NoExport/GradleTemplateJetifier" ;
139
+ string gradleTemplateProperties = null ;
140
+ // For Unity >= 2019.3f, Jetifier is enabled for the build
141
+ // via gradle properties.
142
+ if ( GradleTemplatePropertiesSupported ) {
143
+ expectedAssetsDir = "ExpectedArtifacts/NoExport/GradleTemplatePropertiesJetifier" ;
144
+ gradleTemplateProperties = GRADLE_TEMPLATE_PROPERTIES_DISABLED ;
145
+ }
123
146
124
147
ResolveWithGradleTemplate (
125
148
GRADLE_TEMPLATE_DISABLED ,
126
- "ExpectedArtifacts/NoExport/GradleTemplateJetifier" ,
149
+ expectedAssetsDir ,
127
150
testCase , testCaseComplete ,
128
151
otherExpectedFiles : new [ ] {
129
152
"Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/" +
130
153
"firebase/firebase-app-unity/5.1.1/firebase-app-unity-5.1.1.aar" } ,
131
154
filesToIgnore : new HashSet < string > {
132
- Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED )
133
- } ) ;
155
+ Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED ) ,
156
+ Path . GetFileName ( GRADLE_TEMPLATE_PROPERTIES_DISABLED ) } ,
157
+ deleteGradleTemplateProperties : true ,
158
+ gradleTemplateProperties : gradleTemplateProperties
159
+ ) ;
134
160
}
135
161
} ,
136
162
new IntegrationTester . TestCase {
@@ -147,7 +173,8 @@ public static void ConfigureTestCases() {
147
173
"Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/" +
148
174
"firebase/firebase-app-unity/5.1.1/firebase-app-unity-5.1.1.aar" } ,
149
175
filesToIgnore : new HashSet < string > {
150
- Path . GetFileName ( GRADLE_TEMPLATE_DISABLED )
176
+ Path . GetFileName ( GRADLE_TEMPLATE_DISABLED ) ,
177
+ Path . GetFileName ( GRADLE_TEMPLATE_PROPERTIES_DISABLED )
151
178
} ) ;
152
179
}
153
180
} ,
@@ -180,7 +207,8 @@ public static void ConfigureTestCases() {
180
207
testCaseComplete ( testCaseResult ) ;
181
208
} ,
182
209
filesToIgnore : new HashSet < string > {
183
- Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED )
210
+ Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED ) ,
211
+ Path . GetFileName ( GRADLE_TEMPLATE_PROPERTIES_DISABLED ) ,
184
212
} ) ;
185
213
} finally {
186
214
enableDependencies ( ) ;
@@ -267,7 +295,8 @@ public static void ConfigureTestCases() {
267
295
ClearAllDependencies ( ) ;
268
296
SetupDependencies ( ) ;
269
297
var filesToIgnore = new HashSet < string > {
270
- Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED )
298
+ Path . GetFileName ( GRADLE_TEMPLATE_LIBRARY_DISABLED ) ,
299
+ Path . GetFileName ( GRADLE_TEMPLATE_PROPERTIES_DISABLED )
271
300
} ;
272
301
273
302
ResolveWithGradleTemplate (
@@ -349,6 +378,13 @@ public static void ConfigureTestCases() {
349
378
}
350
379
}
351
380
381
+ /// <summary>
382
+ /// Whether Gradle Template properties are supported by the current version of Unity.
383
+ /// </summary>
384
+ private static bool GradleTemplatePropertiesSupported {
385
+ get { return IntegrationTester . Runner . UnityVersion >= 2019.3f ; }
386
+ }
387
+
352
388
/// <summary>
353
389
/// Whether the Gradle builds are supported by the current version of Unity.
354
390
/// </summary>
@@ -435,6 +471,7 @@ private static void ValidateAndroidTargetSelected(
435
471
private static void ClearAllDependencies ( ) {
436
472
UnityEngine . Debug . Log ( "Clear all loaded dependencies" ) ;
437
473
GooglePlayServices . SettingsDialog . UseJetifier = false ;
474
+ GooglePlayServices . SettingsDialog . PatchPropertiesTemplateGradle = false ;
438
475
439
476
PlayServicesSupport . ResetDependencies ( ) ;
440
477
UpdateAdditionalDependenciesFile ( false ) ;
@@ -641,26 +678,37 @@ private static void Resolve(string androidBuildSystem, bool exportProject,
641
678
/// <param name="deleteGradleTemplate">Whether to delete the gradle template before
642
679
/// testCaseComplete is called.</param>
643
680
/// <param name="filesToIgnore">Set of files to relative to the generatedAssetsDir.</param>
681
+ /// <param name="gradleTemplateProperties">Gradle template properties to use.</param>
682
+ /// <param name="deleteGradleTemplateProperties">Whether to delete the gradle template
683
+ /// properties before testCaseComplete is called.</param>
644
684
private static void ResolveWithGradleTemplate (
645
685
string gradleTemplate ,
646
686
string expectedAssetsDir ,
647
687
IntegrationTester . TestCase testCase ,
648
688
Action < IntegrationTester . TestCaseResult > testCaseComplete ,
649
689
IEnumerable < string > otherExpectedFiles = null ,
690
+ bool deleteGradleTemplateProperties = false ,
691
+ ICollection < string > filesToIgnore = null ,
650
692
bool deleteGradleTemplate = true ,
651
- ICollection < string > filesToIgnore = null ) {
693
+ string gradleTemplateProperties = null ) {
652
694
var cleanUpFiles = new List < string > ( ) ;
653
695
if ( deleteGradleTemplate ) cleanUpFiles . Add ( GRADLE_TEMPLATE_ENABLED ) ;
696
+ if ( deleteGradleTemplateProperties ) cleanUpFiles . Add ( GRADLE_TEMPLATE_PROPERTIES_ENABLED ) ;
654
697
if ( otherExpectedFiles != null ) cleanUpFiles . AddRange ( otherExpectedFiles ) ;
655
698
Action cleanUpTestCase = ( ) => {
656
699
GooglePlayServices . SettingsDialog . PatchMainTemplateGradle = false ;
700
+ GooglePlayServices . SettingsDialog . PatchPropertiesTemplateGradle = false ;
657
701
foreach ( var filename in cleanUpFiles ) {
658
702
if ( File . Exists ( filename ) ) File . Delete ( filename ) ;
659
703
}
660
704
} ;
661
705
try {
662
706
GooglePlayServices . SettingsDialog . PatchMainTemplateGradle = true ;
663
707
File . Copy ( gradleTemplate , GRADLE_TEMPLATE_ENABLED ) ;
708
+ if ( gradleTemplateProperties != null ) {
709
+ GooglePlayServices . SettingsDialog . PatchPropertiesTemplateGradle = true ;
710
+ File . Copy ( gradleTemplateProperties , GRADLE_TEMPLATE_PROPERTIES_ENABLED ) ;
711
+ }
664
712
Resolve ( "Gradle" , false , expectedAssetsDir , null , filesToIgnore , testCase ,
665
713
( IntegrationTester . TestCaseResult testCaseResult ) => {
666
714
if ( otherExpectedFiles != null ) {
@@ -818,7 +866,7 @@ private static List<string> CompareDirectoryContents(string expectedAssetsDir,
818
866
string expectedContentsAsString = "(binary)" ;
819
867
string resolvedContentsAsString = expectedContentsAsString ;
820
868
string resolvedExtension = Path . GetExtension ( resolvedFile ) . ToLower ( ) ;
821
- foreach ( var extension in new [ ] { ".xml" , ".txt" , ".gradle" } ) {
869
+ foreach ( var extension in new [ ] { ".xml" , ".txt" , ".gradle" , ".properties" } ) {
822
870
if ( resolvedExtension == extension ) {
823
871
displayContents = true ;
824
872
break ;
0 commit comments