Skip to content

Commit d8c7424

Browse files
test: test secondary app is used via intent
1 parent 62b80d0 commit d8c7424

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

auth/src/test/java/com/firebase/ui/auth/FirebaseAuthActivityTest.kt

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class FirebaseAuthActivityTest {
5050

5151
private lateinit var applicationContext: Context
5252
private lateinit var authUI: FirebaseAuthUI
53+
private lateinit var secondaryAuthUI: FirebaseAuthUI
5354
private lateinit var configuration: AuthUIConfiguration
5455

5556
@Mock
@@ -79,8 +80,20 @@ class FirebaseAuthActivityTest {
7980
.build()
8081
)
8182

83+
val secondaryApp = FirebaseApp.initializeApp(
84+
applicationContext,
85+
FirebaseOptions.Builder()
86+
.setApiKey("fake-api-key-2")
87+
.setApplicationId("fake-app-id-2")
88+
.setProjectId("fake-project-id-2")
89+
.build(),
90+
"secondary"
91+
)
92+
8293
authUI = FirebaseAuthUI.getInstance()
8394
authUI.auth.useEmulator("127.0.0.1", 9099)
95+
secondaryAuthUI = FirebaseAuthUI.getInstance(secondaryApp)
96+
secondaryAuthUI.auth.useEmulator("127.0.0.1", 9099)
8497

8598
configuration = AuthUIConfiguration(
8699
context = applicationContext,
@@ -180,6 +193,46 @@ class FirebaseAuthActivityTest {
180193
assertThat(activity.isFinishing).isFalse()
181194
}
182195

196+
@Test
197+
fun `activity launched from secondary auth flow observes supplied authUI instead of default app`() =
198+
runTest {
199+
val controller = secondaryAuthUI.createAuthFlow(configuration)
200+
val intent = controller.createIntent(applicationContext)
201+
val activity = Robolectric.buildActivity(FirebaseAuthActivity::class.java, intent)
202+
.create()
203+
.start()
204+
.resume()
205+
.get()
206+
207+
`when`(mockFirebaseUser.uid).thenReturn("secondary-user-id")
208+
209+
authUI.updateAuthState(
210+
AuthState.Success(
211+
result = null,
212+
user = mockFirebaseUser,
213+
isNewUser = false
214+
)
215+
)
216+
shadowOf(Looper.getMainLooper()).idle()
217+
218+
assertThat(activity.isFinishing).isFalse()
219+
220+
secondaryAuthUI.updateAuthState(
221+
AuthState.Success(
222+
result = null,
223+
user = mockFirebaseUser,
224+
isNewUser = false
225+
)
226+
)
227+
shadowOf(Looper.getMainLooper()).idle()
228+
229+
assertThat(activity.isFinishing).isTrue()
230+
val shadowActivity = shadowOf(activity)
231+
assertThat(shadowActivity.resultCode).isEqualTo(Activity.RESULT_OK)
232+
assertThat(shadowActivity.resultIntent.getStringExtra(FirebaseAuthActivity.EXTRA_USER_ID))
233+
.isEqualTo("secondary-user-id")
234+
}
235+
183236
// =============================================================================================
184237
// Auth State Success Tests
185238
// =============================================================================================

0 commit comments

Comments
 (0)