Skip to content

Commit

Permalink
remove Theme
Browse files Browse the repository at this point in the history
  • Loading branch information
Lyokone committed Feb 27, 2025
1 parent 5f81dc0 commit e07bb4c
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 53 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.Shadows;
import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowActivity;
Expand Down Expand Up @@ -77,7 +78,8 @@ public void testOnCreate_emailLinkNormalFlow_expectCheckEmailFlowStarted() {
public void testOnCreate_emailLinkLinkingFlow_expectSendEmailLinkFlowStarted() {
// This is normally done by EmailLinkSendEmailHandler, saving the IdpResponse is done
// in EmailActivity but it will not be saved if we haven't previously set the email
EmailLinkPersistenceManager.getInstance().saveEmail(ApplicationProvider.getApplicationContext(),
EmailLinkPersistenceManager.getInstance().saveEmail(
ApplicationProvider.getApplicationContext(),
EMAIL, TestConstants.SESSION_ID, TestConstants.UID);

EmailActivity emailActivity = createActivity(AuthUI.EMAIL_LINK_PROVIDER, true, false);
Expand All @@ -99,9 +101,7 @@ public void testOnCreate_emailLinkLinkingFlow_expectSendEmailLinkFlowStarted() {
// @Test TODO(lsirac): uncomment after figuring out why this no longer works
public void testOnTroubleSigningIn_expectTroubleSigningInFragment() {
EmailActivity emailActivity = createActivity(AuthUI.EMAIL_LINK_PROVIDER);

emailActivity.onTroubleSigningIn(EMAIL);

TroubleSigningInFragment fragment = (TroubleSigningInFragment) emailActivity
.getSupportFragmentManager().findFragmentByTag(TroubleSigningInFragment.TAG);
assertThat(fragment).isNotNull();
Expand All @@ -110,32 +110,24 @@ public void testOnTroubleSigningIn_expectTroubleSigningInFragment() {
@Test
public void testOnClickResendEmail_expectSendEmailLinkFlowStarted() {
EmailActivity emailActivity = createActivity(AuthUI.EMAIL_LINK_PROVIDER);

emailActivity.onClickResendEmail(EMAIL);

shadowOf(Looper.getMainLooper()).idle();

EmailLinkFragment fragment = (EmailLinkFragment) emailActivity
.getSupportFragmentManager().findFragmentByTag(EmailLinkFragment.TAG);
assertThat(fragment).isNotNull();
}


@Test
public void testSignUpButton_validatesFields() {
EmailActivity emailActivity = createActivity(EmailAuthProvider.PROVIDER_ID);

// Trigger RegisterEmailFragment (bypass check email)
emailActivity.onNewUser(
new User.Builder(EmailAuthProvider.PROVIDER_ID, TestConstants.EMAIL).build());

shadowOf(Looper.getMainLooper()).idle();
Button button = emailActivity.findViewById(R.id.button_create);
button.performClick();

TextInputLayout nameLayout = emailActivity.findViewById(R.id.name_layout);
TextInputLayout passwordLayout = emailActivity.findViewById(R.id.password_layout);

assertEquals(
emailActivity.getString(R.string.fui_missing_first_and_last_name),
nameLayout.getError().toString());
Expand All @@ -153,42 +145,33 @@ public void testSignUpButton_validatesFields() {
@Test
public void testSetDefaultEmail_validField() {
EmailActivity emailActivity = createActivity(EmailAuthProvider.PROVIDER_ID, false, true);

CheckEmailFragment fragment = (CheckEmailFragment) emailActivity
.getSupportFragmentManager().findFragmentByTag(CheckEmailFragment.TAG);
assertThat(fragment).isNotNull();

TextInputEditText email = emailActivity.findViewById(R.id.email);
assertEquals(TestConstants.EMAIL, email.getText().toString());

TextInputEditText email = emailActivity.findViewById(R.id.email);
assertEquals(TestConstants.EMAIL, email.getText().toString());
}

@Test
public void testSetDefaultEmail_expectWelcomeBackPasswordPrompt() {
EmailActivity emailActivity = createActivity(EmailAuthProvider.PROVIDER_ID, false, true);

emailActivity.onExistingEmailUser(new User.Builder(EmailAuthProvider.PROVIDER_ID, TestConstants.EMAIL).build());

ShadowActivity.IntentForResult nextIntent =
shadowOf(emailActivity).getNextStartedActivityForResult();
Shadows.shadowOf(emailActivity).getNextStartedActivityForResult();
assertEquals(WelcomeBackPasswordPrompt.class.getName(),
nextIntent.intent.getComponent().getClassName());

}

@Test
public void testSetDefaultEmail_expectRegisterEmailFragment() {
EmailActivity emailActivity = createActivity(EmailAuthProvider.PROVIDER_ID, false, true);

emailActivity.onNewUser(new User.Builder(EmailAuthProvider.PROVIDER_ID, TestConstants.EMAIL).build());

shadowOf(Looper.getMainLooper()).idle();
RegisterEmailFragment registerEmailFragment = (RegisterEmailFragment) emailActivity
.getSupportFragmentManager().findFragmentByTag(RegisterEmailFragment.TAG);
assertThat(registerEmailFragment).isNotNull();
}


private EmailActivity createActivity(String providerId) {
return createActivity(providerId, false, false);
}
Expand All @@ -199,7 +182,7 @@ private EmailActivity createActivity(String providerId, boolean emailLinkLinking
TestHelper.getFlowParameters(Collections.singletonList(providerId)));

if (hasDefaultEmail) {
startIntent = EmailActivity.createIntent(
startIntent = EmailActivity.createIntent(
ApplicationProvider.getApplicationContext(),
TestHelper.getFlowParameters(Collections.singletonList(providerId), false, null, true));
}
Expand All @@ -209,11 +192,11 @@ private EmailActivity createActivity(String providerId, boolean emailLinkLinking
startIntent.putExtra(ExtraConstants.IDP_RESPONSE, buildGoogleIdpResponse());
}

return Robolectric.buildActivity(EmailActivity.class, startIntent)
.create()
.start()
.visible()
.get();
ActivityController<EmailActivity> controller =
Robolectric.buildActivity(EmailActivity.class, startIntent);
EmailActivity activity = controller.get();
activity.setTheme(R.style.Theme_AppCompat);
return controller.create().start().visible().get();
}

private IdpResponse buildGoogleIdpResponse() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
package com.firebase.ui.auth.ui.email;

import android.content.Intent;
import android.content.res.Resources;
import android.widget.Button;

import com.firebase.ui.auth.IdpResponse;
Expand All @@ -28,6 +29,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.Shadows;
Expand All @@ -42,6 +44,7 @@

@RunWith(RobolectricTestRunner.class)
public class WelcomeBackPasswordPromptTest {

@Before
public void setUp() {
TestHelper.initialize();
Expand All @@ -54,21 +57,21 @@ private WelcomeBackPasswordPrompt createActivity() {
new IdpResponse.Builder(new User.Builder(
EmailAuthProvider.PROVIDER_ID, TestConstants.EMAIL
).build()).build());
return Robolectric
.buildActivity(WelcomeBackPasswordPrompt.class, startIntent)
.create()
.visible()
.get();

ActivityController<WelcomeBackPasswordPrompt> controller =
Robolectric.buildActivity(WelcomeBackPasswordPrompt.class, startIntent);
WelcomeBackPasswordPrompt activity = controller.get();
activity.setTheme(R.style.Theme_AppCompat);
return controller.create().visible().get();
}

@Test
public void testSignInButton_validatesFields() {
WelcomeBackPasswordPrompt welcomeBack = createActivity();
Button signIn = welcomeBack.findViewById(R.id.button_done);
signIn.performClick();
TextInputLayout passwordLayout =
welcomeBack.findViewById(R.id.password_layout);

TextInputLayout passwordLayout = welcomeBack.findViewById(R.id.password_layout);
assertEquals(
welcomeBack.getString(R.string.fui_error_invalid_password),
passwordLayout.getError().toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import com.firebase.ui.auth.ui.email.EmailActivity;
import com.firebase.ui.auth.ui.phone.PhoneActivity;
import com.google.firebase.auth.EmailAuthProvider;
import com.google.firebase.auth.GoogleAuthProvider;
import com.google.firebase.auth.PhoneAuthProvider;
import com.google.firebase.auth.TwitterAuthProvider;

Expand All @@ -34,6 +33,7 @@
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.Shadows;
import org.robolectric.shadows.ShadowActivity;

Expand All @@ -43,7 +43,6 @@
import androidx.test.core.app.ApplicationProvider;

import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;

@RunWith(RobolectricTestRunner.class)
public class AuthMethodPickerActivityTest {
Expand All @@ -57,8 +56,8 @@ public void testAllProvidersArePopulated() {
// Exclude Facebook until the `NoClassDefFoundError: com/facebook/common/R$style` exception
// is fixed.
List<String> providers = Arrays.asList(
// GoogleAuthProvider.PROVIDER_ID, we remove GoogleAuthProvider otherwise
// CredentialManager will be initialized and it will throw an exception
// GoogleAuthProvider.PROVIDER_ID is removed to avoid initializing CredentialManager,
// which can throw an exception.
TwitterAuthProvider.PROVIDER_ID,
EmailAuthProvider.PROVIDER_ID,
PhoneAuthProvider.PROVIDER_ID,
Expand Down Expand Up @@ -117,7 +116,7 @@ public void testCustomAuthMethodPickerLayout() {
Button emailButton = authMethodPickerActivity.findViewById(R.id.email_button);
emailButton.performClick();

//Expected result -> Directing users to EmailActivity
// Expected result: Directing users to EmailActivity
ShadowActivity.IntentForResult nextIntent =
Shadows.shadowOf(authMethodPickerActivity).getNextStartedActivityForResult();
assertEquals(
Expand All @@ -139,7 +138,7 @@ public void testCustomAuthMethodPickerLayoutWithEmailLink() {
Button emailButton = authMethodPickerActivity.findViewById(R.id.email_button);
emailButton.performClick();

//Expected result -> Directing users to EmailActivity
// Expected result: Directing users to EmailActivity
ShadowActivity.IntentForResult nextIntent =
Shadows.shadowOf(authMethodPickerActivity).getNextStartedActivityForResult();
assertEquals(
Expand All @@ -160,7 +159,7 @@ public void testCustomAuthMethodPickerLayoutWithDefaultEmail() {
Button emailButton = authMethodPickerActivity.findViewById(R.id.email_button);
emailButton.performClick();

//Expected result -> Directing users to EmailActivity
// Expected result: Directing users to EmailActivity
ShadowActivity.IntentForResult nextIntent =
Shadows.shadowOf(authMethodPickerActivity).getNextStartedActivityForResult();
assertEquals(
Expand All @@ -175,22 +174,22 @@ private AuthMethodPickerActivity createActivityWithCustomLayout(List<String> pro
ApplicationProvider.getApplicationContext(),
TestHelper.getFlowParameters(providers, false, layout, hasDefaultEmail));

return Robolectric
.buildActivity(AuthMethodPickerActivity.class, startIntent)
.create()
.visible()
.get();
ActivityController<AuthMethodPickerActivity> controller =
Robolectric.buildActivity(AuthMethodPickerActivity.class, startIntent);
AuthMethodPickerActivity activity = controller.get();
activity.setTheme(R.style.Theme_AppCompat);
return controller.create().visible().get();
}

private AuthMethodPickerActivity createActivity(List<String> providers) {
Intent startIntent = AuthMethodPickerActivity.createIntent(
ApplicationProvider.getApplicationContext(),
TestHelper.getFlowParameters(providers));

return Robolectric
.buildActivity(AuthMethodPickerActivity.class, startIntent)
.create()
.visible()
.get();
ActivityController<AuthMethodPickerActivity> controller =
Robolectric.buildActivity(AuthMethodPickerActivity.class, startIntent);
AuthMethodPickerActivity activity = controller.get();
activity.setTheme(R.style.Theme_AppCompat);
return controller.create().visible().get();
}
}

0 comments on commit e07bb4c

Please sign in to comment.