@@ -825,6 +825,71 @@ class MainTest extends Specification {
825
825
}
826
826
}
827
827
828
+ def ' fcm 15 and crashlytics with firebase platform BOM' () {
829
+ when :
830
+ def results = runGradleProject([
831
+ ' android.useAndroidX' : true ,
832
+ skipGradleVersion : GRADLE_OLDEST_VERSION ,
833
+ compileLines : """ \
834
+ implementation platform('com.google.firebase:firebase-bom:25.4.1')
835
+ implementation 'com.google.firebase:firebase-messaging:15.0.0'
836
+ implementation 'com.google.firebase:firebase-crashlytics'
837
+ """
838
+ ])
839
+
840
+ then :
841
+ assert results // Asserting existence and contains 1+ entries
842
+ results. each {
843
+ // 1. Ensure firebase-bom is allowed to upgrade firebase-messaging
844
+ assert it. value. contains(' com.google.firebase:firebase-messaging:15.0.0 -> 20.2.0' )
845
+ // 2. Ensure version from firebase-bom is used and we don't try to downgrade
846
+ assert it. value. contains(' com.google.firebase:firebase-crashlytics -> 17.0.1' )
847
+ }
848
+ }
849
+
850
+ def ' pre-15 firebase with firebase-bom platform 17 BOM' () {
851
+ when :
852
+ def results = runGradleProject([
853
+ ' android.useAndroidX' : true ,
854
+ skipGradleVersion : GRADLE_OLDEST_VERSION ,
855
+ compileLines : """ \
856
+ implementation platform('com.google.firebase:firebase-bom:17.0.0')
857
+ implementation 'com.google.firebase:firebase-messaging:12.0.0'
858
+ """
859
+ ])
860
+
861
+ then :
862
+ assert results // Asserting existence and contains 1+ entries
863
+ results. each {
864
+ // 1. Ensure firebase-bom is allowed to upgrade firebase-messaging
865
+ assert it. value. contains(' com.google.firebase:firebase-messaging:12.0.0 -> 17.5.0' )
866
+ // 2. Ensures this sub dependency get force downgraded to 12.0.0
867
+ assert it. value. contains(" com.google.firebase:firebase-measurement-connector:17.0.1${ NEW_LINE} " )
868
+ }
869
+ }
870
+
871
+ def ' fcm 15 and crashlytics with firebase enforcedPlatform BOM' () {
872
+ when :
873
+ def results = runGradleProject([
874
+ ' android.useAndroidX' : true ,
875
+ skipGradleVersion : GRADLE_OLDEST_VERSION ,
876
+ compileLines : """ \
877
+ implementation enforcedPlatform('com.google.firebase:firebase-bom:25.4.1')
878
+ implementation 'com.google.firebase:firebase-messaging:15.0.0'
879
+ implementation 'com.google.firebase:firebase-crashlytics'
880
+ """
881
+ ])
882
+
883
+ then :
884
+ assert results // Asserting existence and contains 1+ entries
885
+ results. each {
886
+ // 1. Ensure firebase-bom is allowed to upgrade firebase-messaging
887
+ assert it. value. contains(' com.google.firebase:firebase-messaging:15.0.0 -> 20.2.0' )
888
+ // 2. Ensure version from firebase-bom is used and we don't try to downgrade
889
+ assert it. value. contains(' com.google.firebase:firebase-crashlytics -> 17.0.1' )
890
+ }
891
+ }
892
+
828
893
def ' when firebase-core:16 and firebase-messaging:15.0.2 upgrade to firebase-messaging:17.0.0' () {
829
894
def compileLines = """ \
830
895
compile 'com.google.firebase:firebase-messaging:15.0.2'
0 commit comments