Skip to content

Commit fa4c6ed

Browse files
authored
Update Firebase Versions (#1313)
2 parents 3ea4433 + 270fc96 commit fa4c6ed

File tree

5 files changed

+21
-57
lines changed

5 files changed

+21
-57
lines changed

auth/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ dependencies {
5555

5656
testImplementation 'junit:junit:4.12'
5757
//noinspection GradleDynamicVersion
58-
testImplementation 'org.mockito:mockito-core:2.15.+'
58+
testImplementation 'org.mockito:mockito-core:2.18.3'
5959
testImplementation 'org.robolectric:robolectric:3.7'
6060
testImplementation 'com.facebook.android:facebook-login:4.32.0'
6161
testImplementation("com.twitter.sdk.android:twitter-core:3.1.1@aar") { transitive = true }

auth/src/main/java/com/firebase/ui/auth/AuthUI.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import android.support.annotation.RestrictTo;
2727
import android.support.annotation.StringDef;
2828
import android.support.annotation.StyleRes;
29+
import android.support.annotation.VisibleForTesting;
2930
import android.text.TextUtils;
3031
import android.util.Log;
3132

@@ -90,6 +91,9 @@
9091
*/
9192
public final class AuthUI {
9293

94+
@VisibleForTesting
95+
protected static FirebaseAuth sDefaultAuth;
96+
9397
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
9498
public static final String TAG = "AuthUI";
9599

@@ -142,7 +146,13 @@ public final class AuthUI {
142146

143147
private AuthUI(FirebaseApp app) {
144148
mApp = app;
145-
mAuth = FirebaseAuth.getInstance(mApp);
149+
150+
// TODO: This is a bad testing hack
151+
if (sDefaultAuth != null) {
152+
mAuth = sDefaultAuth;
153+
} else {
154+
mAuth = FirebaseAuth.getInstance(mApp);
155+
}
146156

147157
try {
148158
mAuth.setFirebaseUIVersion(BuildConfig.VERSION_NAME);

auth/src/test/java/com/firebase/ui/auth/AuthUITest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.firebase.ui.auth.util.ExtraConstants;
2323
import com.google.firebase.FirebaseApp;
2424
import com.google.firebase.auth.EmailAuthProvider;
25+
import com.google.firebase.auth.FirebaseAuth;
2526

2627
import org.junit.Before;
2728
import org.junit.Test;
@@ -31,12 +32,14 @@
3132
import java.util.Arrays;
3233

3334
import static junit.framework.Assert.assertEquals;
35+
import static org.mockito.Mockito.mock;
3436

3537
@RunWith(RobolectricTestRunner.class)
3638
public class AuthUITest {
3739
@Before
3840
public void setUp() {
3941
TestHelper.initialize();
42+
AuthUI.sDefaultAuth = mock(FirebaseAuth.class);
4043
}
4144

4245
@Test

auth/src/test/java/com/firebase/ui/auth/testhelpers/TestHelper.java

Lines changed: 1 addition & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,10 @@
3030
import com.firebase.ui.auth.util.ExtraConstants;
3131
import com.firebase.ui.auth.util.data.ProviderUtils;
3232
import com.google.android.gms.auth.api.credentials.Credential;
33-
import com.google.android.gms.tasks.Tasks;
3433
import com.google.firebase.FirebaseApp;
3534
import com.google.firebase.FirebaseOptions;
3635
import com.google.firebase.auth.EmailAuthProvider;
3736
import com.google.firebase.auth.FacebookAuthProvider;
38-
import com.google.firebase.auth.FirebaseAuth;
3937
import com.google.firebase.auth.FirebaseUser;
4038
import com.google.firebase.auth.GoogleAuthProvider;
4139
import com.google.firebase.auth.PhoneAuthProvider;
@@ -46,16 +44,11 @@
4644
import org.robolectric.Shadows;
4745
import org.robolectric.shadows.ShadowActivity;
4846

49-
import java.lang.reflect.Field;
50-
import java.lang.reflect.ParameterizedType;
51-
import java.lang.reflect.Type;
5247
import java.util.ArrayList;
5348
import java.util.Collection;
5449
import java.util.List;
55-
import java.util.Map;
5650

5751
import static junit.framework.Assert.assertEquals;
58-
import static org.mockito.ArgumentMatchers.anyString;
5952
import static org.mockito.Mockito.mock;
6053
import static org.mockito.Mockito.spy;
6154
import static org.mockito.Mockito.when;
@@ -67,8 +60,7 @@ public class TestHelper {
6760
public static void initialize() {
6861
spyContextAndResources();
6962
AuthUI.setApplicationContext(RuntimeEnvironment.application);
70-
FirebaseApp app = initializeApp(RuntimeEnvironment.application);
71-
injectMockFirebaseAuth(app);
63+
initializeApp(RuntimeEnvironment.application);
7264
initializeProviders();
7365
}
7466

@@ -94,47 +86,6 @@ private static FirebaseApp initializeApp(Context context) {
9486
}
9587
}
9688

97-
/**
98-
* This method finds the map of FirebaseAuth instances and injects of a mock instance associated
99-
* with the given FirebaseApp for testing purposes.
100-
*/
101-
private static void injectMockFirebaseAuth(FirebaseApp app) {
102-
for (Field field : FirebaseAuth.class.getDeclaredFields()) {
103-
field.setAccessible(true);
104-
105-
Object o;
106-
try {
107-
o = field.get(null);
108-
} catch (IllegalAccessException e) {
109-
throw new IllegalStateException(e);
110-
} catch (NullPointerException e) {
111-
continue;
112-
}
113-
114-
Type genericType = field.getGenericType();
115-
if (o instanceof Map && genericType instanceof ParameterizedType) {
116-
Type[] parameterTypes = ((ParameterizedType) genericType).getActualTypeArguments();
117-
if (parameterTypes.length != 2 || parameterTypes[0] != String.class
118-
|| parameterTypes[1] != FirebaseAuth.class) {
119-
continue;
120-
}
121-
122-
//noinspection unchecked
123-
Map<String, FirebaseAuth> instances = (Map<String, FirebaseAuth>) o;
124-
125-
FirebaseAuth.getInstance(app);
126-
for (String id : instances.keySet()) {
127-
instances.put(id, mock(FirebaseAuth.class));
128-
}
129-
130-
break;
131-
}
132-
}
133-
134-
when(FirebaseAuth.getInstance(app).setFirebaseUIVersion(anyString()))
135-
.thenReturn(Tasks.<Void>forResult(null));
136-
}
137-
13889
private static void initializeProviders() {
13990
Context context = RuntimeEnvironment.application;
14091
when(context.getString(R.string.default_web_client_id)).thenReturn("abc");

constants.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ project.ext {
88
targetSdk = 27
99
minSdk = 14
1010

11-
coreVersion = '15.0.2' // firebase-core
12-
authVersion = '15.1.0' // firebase-auth
11+
coreVersion = '16.0.0' // firebase-core
12+
authVersion = '16.0.1' // firebase-auth
1313
playAuthVersion = '15.0.1' // play-services-auth
14-
rtdbVersion = '15.0.1' // firebase-database
15-
firestoreVersion = '16.0.0' // firebase-firestore
16-
storageVersion = '15.0.2' // firebase-storage
14+
rtdbVersion = '16.0.1' // firebase-database
15+
firestoreVersion = '17.0.1' // firebase-firestore
16+
storageVersion = '16.0.1' // firebase-storage
1717

1818
supportLibraryVersion = '27.1.1'
1919
architectureVersion = '1.1.1'

0 commit comments

Comments
 (0)