|
25 | 25 | import com.firebase.ui.auth.testhelpers.TestHelper; |
26 | 26 | import com.firebase.ui.auth.util.ExtraConstants; |
27 | 27 | import com.firebase.ui.auth.util.data.EmailLinkPersistenceManager; |
| 28 | +import com.google.android.material.textfield.TextInputEditText; |
28 | 29 | import com.google.android.material.textfield.TextInputLayout; |
29 | 30 | import com.google.firebase.auth.EmailAuthProvider; |
30 | 31 | import com.google.firebase.auth.GoogleAuthProvider; |
|
34 | 35 | import org.junit.runner.RunWith; |
35 | 36 | import org.robolectric.Robolectric; |
36 | 37 | import org.robolectric.RobolectricTestRunner; |
| 38 | +import org.robolectric.Shadows; |
| 39 | +import org.robolectric.shadows.ShadowActivity; |
37 | 40 |
|
38 | 41 | import java.util.Collections; |
39 | 42 |
|
@@ -73,7 +76,7 @@ public void testOnCreate_emailLinkLinkingFlow_expectSendEmailLinkFlowStarted() { |
73 | 76 | EmailLinkPersistenceManager.getInstance().saveEmail(ApplicationProvider.getApplicationContext(), |
74 | 77 | EMAIL, TestConstants.SESSION_ID, TestConstants.UID); |
75 | 78 |
|
76 | | - EmailActivity emailActivity = createActivity(AuthUI.EMAIL_LINK_PROVIDER, true); |
| 79 | + EmailActivity emailActivity = createActivity(AuthUI.EMAIL_LINK_PROVIDER, true, false); |
77 | 80 |
|
78 | 81 | EmailLinkFragment fragment = (EmailLinkFragment) emailActivity |
79 | 82 | .getSupportFragmentManager().findFragmentByTag(EmailLinkFragment.TAG); |
@@ -141,16 +144,59 @@ public void testSignUpButton_validatesFields() { |
141 | 144 | passwordLayout.getError().toString()); |
142 | 145 | } |
143 | 146 |
|
| 147 | + @Test |
| 148 | + public void testSetDefaultEmail_validField() { |
| 149 | + EmailActivity emailActivity = createActivity(EmailAuthProvider.PROVIDER_ID, false, true); |
| 150 | + |
| 151 | + CheckEmailFragment fragment = (CheckEmailFragment) emailActivity |
| 152 | + .getSupportFragmentManager().findFragmentByTag(CheckEmailFragment.TAG); |
| 153 | + assertThat(fragment).isNotNull(); |
| 154 | + |
| 155 | + TextInputEditText email = emailActivity.findViewById(R.id.email); |
| 156 | + assertEquals(TestConstants.EMAIL, email.getText().toString()); |
| 157 | + |
| 158 | + } |
| 159 | + |
| 160 | + @Test |
| 161 | + public void testSetDefaultEmail_expectWelcomeBackPasswordPrompt() { |
| 162 | + EmailActivity emailActivity = createActivity(EmailAuthProvider.PROVIDER_ID, false, true); |
| 163 | + |
| 164 | + emailActivity.onExistingEmailUser(new User.Builder(EmailAuthProvider.PROVIDER_ID, TestConstants.EMAIL).build()); |
| 165 | + |
| 166 | + ShadowActivity.IntentForResult nextIntent = |
| 167 | + Shadows.shadowOf(emailActivity).getNextStartedActivityForResult(); |
| 168 | + assertEquals(WelcomeBackPasswordPrompt.class.getName(), |
| 169 | + nextIntent.intent.getComponent().getClassName()); |
| 170 | + |
| 171 | + } |
| 172 | + |
| 173 | + @Test |
| 174 | + public void testSetDefaultEmail_expectRegisterEmailFragment() { |
| 175 | + EmailActivity emailActivity = createActivity(EmailAuthProvider.PROVIDER_ID, false, true); |
| 176 | + |
| 177 | + emailActivity.onNewUser(new User.Builder(EmailAuthProvider.PROVIDER_ID, TestConstants.EMAIL).build()); |
| 178 | + |
| 179 | + RegisterEmailFragment registerEmailFragment = (RegisterEmailFragment) emailActivity |
| 180 | + .getSupportFragmentManager().findFragmentByTag(RegisterEmailFragment.TAG); |
| 181 | + assertThat(registerEmailFragment).isNotNull(); |
| 182 | + } |
| 183 | + |
144 | 184 |
|
145 | 185 | private EmailActivity createActivity(String providerId) { |
146 | | - return createActivity(providerId, false); |
| 186 | + return createActivity(providerId, false, false); |
147 | 187 | } |
148 | 188 |
|
149 | | - private EmailActivity createActivity(String providerId, boolean emailLinkLinkingFlow) { |
| 189 | + private EmailActivity createActivity(String providerId, boolean emailLinkLinkingFlow, boolean hasDefaultEmail) { |
150 | 190 | Intent startIntent = EmailActivity.createIntent( |
151 | 191 | ApplicationProvider.getApplicationContext(), |
152 | 192 | TestHelper.getFlowParameters(Collections.singletonList(providerId))); |
153 | 193 |
|
| 194 | + if (hasDefaultEmail) { |
| 195 | + startIntent = EmailActivity.createIntent( |
| 196 | + ApplicationProvider.getApplicationContext(), |
| 197 | + TestHelper.getFlowParameters(Collections.singletonList(providerId), false, null, true)); |
| 198 | + } |
| 199 | + |
154 | 200 | if (emailLinkLinkingFlow) { |
155 | 201 | startIntent.putExtra(ExtraConstants.EMAIL, EMAIL); |
156 | 202 | startIntent.putExtra(ExtraConstants.IDP_RESPONSE, buildGoogleIdpResponse()); |
|
0 commit comments