|
46 | 46 | import com.google.firebase.FirebaseApp;
|
47 | 47 | import com.google.firebase.FirebaseOptions;
|
48 | 48 | import com.google.firebase.ImplFirebaseTrampolines;
|
| 49 | +import com.google.firebase.auth.ProviderConfigTestUtils.TemporaryProviderConfig; |
49 | 50 | import com.google.firebase.auth.hash.Scrypt;
|
50 | 51 | import com.google.firebase.internal.Nullable;
|
51 | 52 | import com.google.firebase.testing.IntegrationTestUtils;
|
@@ -84,8 +85,9 @@ public class FirebaseAuthIT {
|
84 | 85 | private static final FirebaseAuth auth = FirebaseAuth.getInstance(
|
85 | 86 | IntegrationTestUtils.ensureDefaultApp());
|
86 | 87 |
|
87 |
| - @Rule |
88 |
| - public final TemporaryUser temporaryUser = new TemporaryUser(); |
| 88 | + @Rule public final TemporaryUser temporaryUser = new TemporaryUser(); |
| 89 | + @Rule public final TemporaryProviderConfig temporaryProviderConfig = |
| 90 | + new TemporaryProviderConfig(auth); |
89 | 91 |
|
90 | 92 | @Test
|
91 | 93 | public void testGetNonExistingUser() throws Exception {
|
@@ -563,124 +565,113 @@ public void testGenerateSignInWithEmailLink() throws Exception {
|
563 | 565 | public void testOidcProviderConfigLifecycle() throws Exception {
|
564 | 566 | // Create config provider
|
565 | 567 | String providerId = "oidc.provider-id";
|
566 |
| - OidcProviderConfig.CreateRequest createRequest = |
| 568 | + OidcProviderConfig config = temporaryProviderConfig.createOidcProviderConfig( |
567 | 569 | new OidcProviderConfig.CreateRequest()
|
568 | 570 | .setProviderId(providerId)
|
569 | 571 | .setDisplayName("DisplayName")
|
570 | 572 | .setEnabled(true)
|
571 | 573 | .setClientId("ClientId")
|
572 |
| - .setIssuer("https://oidc.com/issuer"); |
573 |
| - OidcProviderConfig config = auth.createOidcProviderConfigAsync(createRequest).get(); |
| 574 | + .setIssuer("https://oidc.com/issuer")); |
574 | 575 | assertEquals(providerId, config.getProviderId());
|
575 | 576 | assertEquals("DisplayName", config.getDisplayName());
|
576 | 577 | assertTrue(config.isEnabled());
|
577 | 578 | assertEquals("ClientId", config.getClientId());
|
578 | 579 | assertEquals("https://oidc.com/issuer", config.getIssuer());
|
579 | 580 |
|
580 |
| - try { |
581 |
| - // Get config provider |
582 |
| - config = auth.getOidcProviderConfigAsync(providerId).get(); |
583 |
| - assertEquals(providerId, config.getProviderId()); |
584 |
| - assertEquals("DisplayName", config.getDisplayName()); |
585 |
| - assertTrue(config.isEnabled()); |
586 |
| - assertEquals("ClientId", config.getClientId()); |
587 |
| - assertEquals("https://oidc.com/issuer", config.getIssuer()); |
| 581 | + // Get config provider |
| 582 | + config = auth.getOidcProviderConfigAsync(providerId).get(); |
| 583 | + assertEquals(providerId, config.getProviderId()); |
| 584 | + assertEquals("DisplayName", config.getDisplayName()); |
| 585 | + assertTrue(config.isEnabled()); |
| 586 | + assertEquals("ClientId", config.getClientId()); |
| 587 | + assertEquals("https://oidc.com/issuer", config.getIssuer()); |
588 | 588 |
|
589 |
| - // Update config provider |
590 |
| - OidcProviderConfig.UpdateRequest updateRequest = |
591 |
| - new OidcProviderConfig.UpdateRequest(providerId) |
592 |
| - .setDisplayName("NewDisplayName") |
593 |
| - .setEnabled(false) |
594 |
| - .setClientId("NewClientId") |
595 |
| - .setIssuer("https://oidc.com/new-issuer"); |
596 |
| - config = auth.updateOidcProviderConfigAsync(updateRequest).get(); |
597 |
| - assertEquals(providerId, config.getProviderId()); |
598 |
| - assertEquals("NewDisplayName", config.getDisplayName()); |
599 |
| - assertFalse(config.isEnabled()); |
600 |
| - assertEquals("NewClientId", config.getClientId()); |
601 |
| - assertEquals("https://oidc.com/new-issuer", config.getIssuer()); |
602 |
| - } finally { |
603 |
| - // Delete config provider |
604 |
| - auth.deleteProviderConfigAsync(providerId).get(); |
605 |
| - } |
| 589 | + // Update config provider |
| 590 | + OidcProviderConfig.UpdateRequest updateRequest = |
| 591 | + new OidcProviderConfig.UpdateRequest(providerId) |
| 592 | + .setDisplayName("NewDisplayName") |
| 593 | + .setEnabled(false) |
| 594 | + .setClientId("NewClientId") |
| 595 | + .setIssuer("https://oidc.com/new-issuer"); |
| 596 | + config = auth.updateOidcProviderConfigAsync(updateRequest).get(); |
| 597 | + assertEquals(providerId, config.getProviderId()); |
| 598 | + assertEquals("NewDisplayName", config.getDisplayName()); |
| 599 | + assertFalse(config.isEnabled()); |
| 600 | + assertEquals("NewClientId", config.getClientId()); |
| 601 | + assertEquals("https://oidc.com/new-issuer", config.getIssuer()); |
606 | 602 |
|
607 |
| - assertOidcProviderConfigDoesNotExist(auth, providerId); |
| 603 | + // Delete config provider |
| 604 | + auth.deleteOidcProviderConfigAsync(providerId).get(); |
| 605 | + ProviderConfigTestUtils.assertOidcProviderConfigDoesNotExist(auth, providerId); |
608 | 606 | }
|
609 | 607 |
|
610 | 608 | @Test
|
611 | 609 | public void testListOidcProviderConfigs() throws Exception {
|
612 | 610 | final List<String> providerIds = new ArrayList<>();
|
613 | 611 |
|
614 |
| - try { |
615 |
| - // Create provider configs |
616 |
| - for (int i = 0; i < 3; i++) { |
617 |
| - String providerId = "oidc.provider-id" + i; |
618 |
| - providerIds.add(providerId); |
619 |
| - OidcProviderConfig.CreateRequest createRequest = new OidcProviderConfig.CreateRequest() |
| 612 | + // Create provider configs |
| 613 | + for (int i = 0; i < 3; i++) { |
| 614 | + String providerId = "oidc.provider-id" + i; |
| 615 | + providerIds.add(providerId); |
| 616 | + OidcProviderConfig config = temporaryProviderConfig.createOidcProviderConfig( |
| 617 | + new OidcProviderConfig.CreateRequest() |
620 | 618 | .setProviderId(providerId)
|
621 | 619 | .setClientId("CLIENT_ID")
|
622 |
| - .setIssuer("https://oidc.com/issuer"); |
623 |
| - auth.createOidcProviderConfig(createRequest); |
624 |
| - } |
625 |
| - |
626 |
| - // Test list by batches |
627 |
| - final AtomicInteger collected = new AtomicInteger(0); |
628 |
| - ListProviderConfigsPage<OidcProviderConfig> page = |
629 |
| - auth.listOidcProviderConfigsAsync(null).get(); |
630 |
| - while (page != null) { |
631 |
| - for (OidcProviderConfig providerConfig : page.getValues()) { |
632 |
| - if (checkProviderConfig(providerIds, providerConfig)) { |
633 |
| - collected.incrementAndGet(); |
634 |
| - } |
635 |
| - } |
636 |
| - page = page.getNextPage(); |
637 |
| - } |
638 |
| - assertEquals(providerIds.size(), collected.get()); |
| 620 | + .setIssuer("https://oidc.com/issuer")); |
| 621 | + } |
639 | 622 |
|
640 |
| - // Test iterate all |
641 |
| - collected.set(0); |
642 |
| - page = auth.listOidcProviderConfigsAsync(null).get(); |
643 |
| - for (OidcProviderConfig providerConfig : page.iterateAll()) { |
| 623 | + // Test list by batches |
| 624 | + final AtomicInteger collected = new AtomicInteger(0); |
| 625 | + ListProviderConfigsPage<OidcProviderConfig> page = |
| 626 | + auth.listOidcProviderConfigsAsync(null).get(); |
| 627 | + while (page != null) { |
| 628 | + for (OidcProviderConfig providerConfig : page.getValues()) { |
644 | 629 | if (checkProviderConfig(providerIds, providerConfig)) {
|
645 | 630 | collected.incrementAndGet();
|
646 | 631 | }
|
647 | 632 | }
|
648 |
| - assertEquals(providerIds.size(), collected.get()); |
649 |
| - |
650 |
| - // Test iterate async |
651 |
| - collected.set(0); |
652 |
| - final Semaphore semaphore = new Semaphore(0); |
653 |
| - final AtomicReference<Throwable> error = new AtomicReference<>(); |
654 |
| - ApiFuture<ListProviderConfigsPage<OidcProviderConfig>> pageFuture = |
655 |
| - auth.listOidcProviderConfigsAsync(null); |
656 |
| - ApiFutures.addCallback( |
657 |
| - pageFuture, |
658 |
| - new ApiFutureCallback<ListProviderConfigsPage<OidcProviderConfig>>() { |
659 |
| - @Override |
660 |
| - public void onFailure(Throwable t) { |
661 |
| - error.set(t); |
662 |
| - semaphore.release(); |
663 |
| - } |
| 633 | + page = page.getNextPage(); |
| 634 | + } |
| 635 | + assertEquals(providerIds.size(), collected.get()); |
664 | 636 |
|
665 |
| - @Override |
666 |
| - public void onSuccess(ListProviderConfigsPage<OidcProviderConfig> result) { |
667 |
| - for (OidcProviderConfig providerConfig : result.iterateAll()) { |
668 |
| - if (checkProviderConfig(providerIds, providerConfig)) { |
669 |
| - collected.incrementAndGet(); |
670 |
| - } |
671 |
| - } |
672 |
| - semaphore.release(); |
673 |
| - } |
674 |
| - }, MoreExecutors.directExecutor()); |
675 |
| - semaphore.acquire(); |
676 |
| - assertEquals(providerIds.size(), collected.get()); |
677 |
| - assertNull(error.get()); |
678 |
| - } finally { |
679 |
| - // Delete provider configs |
680 |
| - for (String providerId : providerIds) { |
681 |
| - auth.deleteProviderConfigAsync(providerId).get(); |
| 637 | + // Test iterate all |
| 638 | + collected.set(0); |
| 639 | + page = auth.listOidcProviderConfigsAsync(null).get(); |
| 640 | + for (OidcProviderConfig providerConfig : page.iterateAll()) { |
| 641 | + if (checkProviderConfig(providerIds, providerConfig)) { |
| 642 | + collected.incrementAndGet(); |
682 | 643 | }
|
683 | 644 | }
|
| 645 | + assertEquals(providerIds.size(), collected.get()); |
| 646 | + |
| 647 | + // Test iterate async |
| 648 | + collected.set(0); |
| 649 | + final Semaphore semaphore = new Semaphore(0); |
| 650 | + final AtomicReference<Throwable> error = new AtomicReference<>(); |
| 651 | + ApiFuture<ListProviderConfigsPage<OidcProviderConfig>> pageFuture = |
| 652 | + auth.listOidcProviderConfigsAsync(null); |
| 653 | + ApiFutures.addCallback( |
| 654 | + pageFuture, |
| 655 | + new ApiFutureCallback<ListProviderConfigsPage<OidcProviderConfig>>() { |
| 656 | + @Override |
| 657 | + public void onFailure(Throwable t) { |
| 658 | + error.set(t); |
| 659 | + semaphore.release(); |
| 660 | + } |
| 661 | + |
| 662 | + @Override |
| 663 | + public void onSuccess(ListProviderConfigsPage<OidcProviderConfig> result) { |
| 664 | + for (OidcProviderConfig providerConfig : result.iterateAll()) { |
| 665 | + if (checkProviderConfig(providerIds, providerConfig)) { |
| 666 | + collected.incrementAndGet(); |
| 667 | + } |
| 668 | + } |
| 669 | + semaphore.release(); |
| 670 | + } |
| 671 | + }, MoreExecutors.directExecutor()); |
| 672 | + semaphore.acquire(); |
| 673 | + assertEquals(providerIds.size(), collected.get()); |
| 674 | + assertNull(error.get()); |
684 | 675 | }
|
685 | 676 |
|
686 | 677 | private Map<String, String> parseLinkParameters(String link) throws Exception {
|
@@ -823,23 +814,11 @@ private boolean checkProviderConfig(List<String> providerIds, OidcProviderConfig
|
823 | 814 | }
|
824 | 815 |
|
825 | 816 |
|
826 |
| - private static void assertOidcProviderConfigDoesNotExist( |
827 |
| - AbstractFirebaseAuth firebaseAuth, String providerId) throws Exception { |
828 |
| - try { |
829 |
| - firebaseAuth.getOidcProviderConfigAsync(providerId).get(); |
830 |
| - fail("No error thrown for getting a deleted provider config"); |
831 |
| - } catch (ExecutionException e) { |
832 |
| - assertTrue(e.getCause() instanceof FirebaseAuthException); |
833 |
| - assertEquals(FirebaseUserManager.CONFIGURATION_NOT_FOUND_ERROR, |
834 |
| - ((FirebaseAuthException) e.getCause()).getErrorCode()); |
835 |
| - } |
836 |
| - } |
837 |
| - |
838 | 817 | private static void assertUserDoesNotExist(AbstractFirebaseAuth firebaseAuth, String uid)
|
839 | 818 | throws Exception {
|
840 | 819 | try {
|
841 | 820 | firebaseAuth.getUserAsync(uid).get();
|
842 |
| - fail("No error thrown for getting a user which was expected to be absent"); |
| 821 | + fail("No error thrown for getting a user which was expected to be absent."); |
843 | 822 | } catch (ExecutionException e) {
|
844 | 823 | assertTrue(e.getCause() instanceof FirebaseAuthException);
|
845 | 824 | assertEquals(FirebaseUserManager.USER_NOT_FOUND_ERROR,
|
|
0 commit comments