1414
1515package com .firebase .ui .auth .testhelpers ;
1616
17- import android .app .Activity ;
1817import android .content .Context ;
19- import android .content .Intent ;
2018import android .content .res .Resources ;
21- import android .support .annotation .NonNull ;
22- import android .support .annotation .Nullable ;
23- import android .text .TextUtils ;
2419
2520import com .firebase .ui .auth .AuthUI ;
2621import com .firebase .ui .auth .AuthUI .IdpConfig ;
2722import com .firebase .ui .auth .R ;
2823import com .firebase .ui .auth .data .model .FlowParameters ;
29- import com .firebase .ui .auth .ui .credentials .CredentialSaveActivity ;
30- import com .firebase .ui .auth .util .ExtraConstants ;
31- import com .firebase .ui .auth .util .data .ProviderUtils ;
32- import com .google .android .gms .auth .api .credentials .Credential ;
3324import com .google .firebase .FirebaseApp ;
3425import com .google .firebase .FirebaseOptions ;
3526import com .google .firebase .auth .EmailAuthProvider ;
3627import com .google .firebase .auth .FacebookAuthProvider ;
28+ import com .google .firebase .auth .FirebaseAuth ;
3729import com .google .firebase .auth .FirebaseUser ;
3830import com .google .firebase .auth .GoogleAuthProvider ;
3931import com .google .firebase .auth .PhoneAuthProvider ;
4032import com .google .firebase .auth .TwitterAuthProvider ;
4133
42- import org .junit .Assert ;
4334import org .robolectric .RuntimeEnvironment ;
44- import org .robolectric .Shadows ;
45- import org .robolectric .shadows .ShadowActivity ;
4635
4736import java .util .ArrayList ;
4837import java .util .Collection ;
4938import java .util .List ;
5039
51- import static junit . framework . Assert . assertEquals ;
40+ import static org . mockito . ArgumentMatchers . eq ;
5241import static org .mockito .Mockito .mock ;
5342import static org .mockito .Mockito .spy ;
5443import static org .mockito .Mockito .when ;
5544
56- public class TestHelper {
57- private static final String APPLICATION_ID = "testAppId" ;
58- private static final String API_KEY = "fakeKey" ;
45+ public final class TestHelper {
46+ public static final FirebaseApp MOCK_APP ;
47+
48+ static {
49+ FirebaseApp app = mock (FirebaseApp .class );
50+ when (app .get (eq (FirebaseAuth .class ))).thenReturn (mock (FirebaseAuth .class ));
51+ when (app .getApplicationContext ()).thenReturn (RuntimeEnvironment .application );
52+ when (app .getName ()).thenReturn (FirebaseApp .DEFAULT_APP_NAME );
53+ MOCK_APP = app ;
54+ }
5955
6056 public static void initialize () {
6157 spyContextAndResources ();
@@ -72,18 +68,13 @@ private static void spyContextAndResources() {
7268 when (RuntimeEnvironment .application .getResources ()).thenReturn (spiedResources );
7369 }
7470
75- private static FirebaseApp initializeApp (Context context ) {
76- try {
77- return FirebaseApp .initializeApp (
78- context ,
79- new FirebaseOptions .Builder ()
80- .setApiKey (API_KEY )
81- .setApplicationId (APPLICATION_ID )
82- .build (),
83- FirebaseApp .DEFAULT_APP_NAME );
84- } catch (IllegalStateException e ) {
85- return FirebaseApp .getInstance (FirebaseApp .DEFAULT_APP_NAME );
86- }
71+ private static void initializeApp (Context context ) {
72+ if (!FirebaseApp .getApps (context ).isEmpty ()) return ;
73+
74+ FirebaseApp .initializeApp (context , new FirebaseOptions .Builder ()
75+ .setApiKey ("fake" )
76+ .setApplicationId ("fake" )
77+ .build ());
8778 }
8879
8980 private static void initializeProviders () {
@@ -138,36 +129,4 @@ public static FlowParameters getFlowParameters(Collection<String> providerIds) {
138129 true );
139130 }
140131
141- public static void verifyCredentialSaveStarted (@ NonNull Activity activity ,
142- @ Nullable String providerId ,
143- @ Nullable String email ,
144- @ Nullable String password ,
145- @ Nullable String phoneNumber ) {
146-
147- ShadowActivity shadowActivity = Shadows .shadowOf (activity );
148- Intent startedIntent = shadowActivity .getNextStartedActivity ();
149-
150- // Verify that CredentialSaveActivity is next up
151- Assert .assertEquals (startedIntent .getComponent ().getClassName (),
152- CredentialSaveActivity .class .getName ());
153-
154- // Check the credential passed
155- Credential credential = startedIntent .getParcelableExtra (ExtraConstants .CREDENTIAL );
156-
157- // Check the password
158- assertEquals (credential .getPassword (), password );
159-
160- // Non-password credentials have a provider ID
161- if (TextUtils .isEmpty (password )) {
162- assertEquals (credential .getAccountType (),
163- ProviderUtils .providerIdToAccountType (providerId ));
164- }
165-
166- // ID can either be email or phone number
167- if (!TextUtils .isEmpty (phoneNumber )) {
168- assertEquals (credential .getId (), phoneNumber );
169- } else {
170- assertEquals (credential .getId (), email );
171- }
172- }
173132}
0 commit comments