|
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 {
|
@@ -664,124 +666,113 @@ public void testGenerateSignInWithEmailLink() throws Exception {
|
664 | 666 | public void testOidcProviderConfigLifecycle() throws Exception {
|
665 | 667 | // Create config provider
|
666 | 668 | String providerId = "oidc.provider-id";
|
667 |
| - OidcProviderConfig.CreateRequest createRequest = |
| 669 | + OidcProviderConfig config = temporaryProviderConfig.createOidcProviderConfig( |
668 | 670 | new OidcProviderConfig.CreateRequest()
|
669 | 671 | .setProviderId(providerId)
|
670 | 672 | .setDisplayName("DisplayName")
|
671 | 673 | .setEnabled(true)
|
672 | 674 | .setClientId("ClientId")
|
673 |
| - .setIssuer("https://oidc.com/issuer"); |
674 |
| - OidcProviderConfig config = auth.createOidcProviderConfigAsync(createRequest).get(); |
| 675 | + .setIssuer("https://oidc.com/issuer")); |
675 | 676 | assertEquals(providerId, config.getProviderId());
|
676 | 677 | assertEquals("DisplayName", config.getDisplayName());
|
677 | 678 | assertTrue(config.isEnabled());
|
678 | 679 | assertEquals("ClientId", config.getClientId());
|
679 | 680 | assertEquals("https://oidc.com/issuer", config.getIssuer());
|
680 | 681 |
|
681 |
| - try { |
682 |
| - // Get config provider |
683 |
| - config = auth.getOidcProviderConfigAsync(providerId).get(); |
684 |
| - assertEquals(providerId, config.getProviderId()); |
685 |
| - assertEquals("DisplayName", config.getDisplayName()); |
686 |
| - assertTrue(config.isEnabled()); |
687 |
| - assertEquals("ClientId", config.getClientId()); |
688 |
| - assertEquals("https://oidc.com/issuer", config.getIssuer()); |
| 682 | + // Get config provider |
| 683 | + config = auth.getOidcProviderConfigAsync(providerId).get(); |
| 684 | + assertEquals(providerId, config.getProviderId()); |
| 685 | + assertEquals("DisplayName", config.getDisplayName()); |
| 686 | + assertTrue(config.isEnabled()); |
| 687 | + assertEquals("ClientId", config.getClientId()); |
| 688 | + assertEquals("https://oidc.com/issuer", config.getIssuer()); |
689 | 689 |
|
690 |
| - // Update config provider |
691 |
| - OidcProviderConfig.UpdateRequest updateRequest = |
692 |
| - new OidcProviderConfig.UpdateRequest(providerId) |
693 |
| - .setDisplayName("NewDisplayName") |
694 |
| - .setEnabled(false) |
695 |
| - .setClientId("NewClientId") |
696 |
| - .setIssuer("https://oidc.com/new-issuer"); |
697 |
| - config = auth.updateOidcProviderConfigAsync(updateRequest).get(); |
698 |
| - assertEquals(providerId, config.getProviderId()); |
699 |
| - assertEquals("NewDisplayName", config.getDisplayName()); |
700 |
| - assertFalse(config.isEnabled()); |
701 |
| - assertEquals("NewClientId", config.getClientId()); |
702 |
| - assertEquals("https://oidc.com/new-issuer", config.getIssuer()); |
703 |
| - } finally { |
704 |
| - // Delete config provider |
705 |
| - auth.deleteProviderConfigAsync(providerId).get(); |
706 |
| - } |
| 690 | + // Update config provider |
| 691 | + OidcProviderConfig.UpdateRequest updateRequest = |
| 692 | + new OidcProviderConfig.UpdateRequest(providerId) |
| 693 | + .setDisplayName("NewDisplayName") |
| 694 | + .setEnabled(false) |
| 695 | + .setClientId("NewClientId") |
| 696 | + .setIssuer("https://oidc.com/new-issuer"); |
| 697 | + config = auth.updateOidcProviderConfigAsync(updateRequest).get(); |
| 698 | + assertEquals(providerId, config.getProviderId()); |
| 699 | + assertEquals("NewDisplayName", config.getDisplayName()); |
| 700 | + assertFalse(config.isEnabled()); |
| 701 | + assertEquals("NewClientId", config.getClientId()); |
| 702 | + assertEquals("https://oidc.com/new-issuer", config.getIssuer()); |
707 | 703 |
|
708 |
| - assertOidcProviderConfigDoesNotExist(auth, providerId); |
| 704 | + // Delete config provider |
| 705 | + auth.deleteOidcProviderConfigAsync(providerId).get(); |
| 706 | + ProviderConfigTestUtils.assertOidcProviderConfigDoesNotExist(auth, providerId); |
709 | 707 | }
|
710 | 708 |
|
711 | 709 | @Test
|
712 | 710 | public void testListOidcProviderConfigs() throws Exception {
|
713 | 711 | final List<String> providerIds = new ArrayList<>();
|
714 | 712 |
|
715 |
| - try { |
716 |
| - // Create provider configs |
717 |
| - for (int i = 0; i < 3; i++) { |
718 |
| - String providerId = "oidc.provider-id" + i; |
719 |
| - providerIds.add(providerId); |
720 |
| - OidcProviderConfig.CreateRequest createRequest = new OidcProviderConfig.CreateRequest() |
| 713 | + // Create provider configs |
| 714 | + for (int i = 0; i < 3; i++) { |
| 715 | + String providerId = "oidc.provider-id" + i; |
| 716 | + providerIds.add(providerId); |
| 717 | + OidcProviderConfig config = temporaryProviderConfig.createOidcProviderConfig( |
| 718 | + new OidcProviderConfig.CreateRequest() |
721 | 719 | .setProviderId(providerId)
|
722 | 720 | .setClientId("CLIENT_ID")
|
723 |
| - .setIssuer("https://oidc.com/issuer"); |
724 |
| - auth.createOidcProviderConfig(createRequest); |
725 |
| - } |
726 |
| - |
727 |
| - // Test list by batches |
728 |
| - final AtomicInteger collected = new AtomicInteger(0); |
729 |
| - ListProviderConfigsPage<OidcProviderConfig> page = |
730 |
| - auth.listOidcProviderConfigsAsync(null).get(); |
731 |
| - while (page != null) { |
732 |
| - for (OidcProviderConfig providerConfig : page.getValues()) { |
733 |
| - if (checkProviderConfig(providerIds, providerConfig)) { |
734 |
| - collected.incrementAndGet(); |
735 |
| - } |
736 |
| - } |
737 |
| - page = page.getNextPage(); |
738 |
| - } |
739 |
| - assertEquals(providerIds.size(), collected.get()); |
| 721 | + .setIssuer("https://oidc.com/issuer")); |
| 722 | + } |
740 | 723 |
|
741 |
| - // Test iterate all |
742 |
| - collected.set(0); |
743 |
| - page = auth.listOidcProviderConfigsAsync(null).get(); |
744 |
| - for (OidcProviderConfig providerConfig : page.iterateAll()) { |
| 724 | + // Test list by batches |
| 725 | + final AtomicInteger collected = new AtomicInteger(0); |
| 726 | + ListProviderConfigsPage<OidcProviderConfig> page = |
| 727 | + auth.listOidcProviderConfigsAsync(null).get(); |
| 728 | + while (page != null) { |
| 729 | + for (OidcProviderConfig providerConfig : page.getValues()) { |
745 | 730 | if (checkProviderConfig(providerIds, providerConfig)) {
|
746 | 731 | collected.incrementAndGet();
|
747 | 732 | }
|
748 | 733 | }
|
749 |
| - assertEquals(providerIds.size(), collected.get()); |
750 |
| - |
751 |
| - // Test iterate async |
752 |
| - collected.set(0); |
753 |
| - final Semaphore semaphore = new Semaphore(0); |
754 |
| - final AtomicReference<Throwable> error = new AtomicReference<>(); |
755 |
| - ApiFuture<ListProviderConfigsPage<OidcProviderConfig>> pageFuture = |
756 |
| - auth.listOidcProviderConfigsAsync(null); |
757 |
| - ApiFutures.addCallback( |
758 |
| - pageFuture, |
759 |
| - new ApiFutureCallback<ListProviderConfigsPage<OidcProviderConfig>>() { |
760 |
| - @Override |
761 |
| - public void onFailure(Throwable t) { |
762 |
| - error.set(t); |
763 |
| - semaphore.release(); |
764 |
| - } |
| 734 | + page = page.getNextPage(); |
| 735 | + } |
| 736 | + assertEquals(providerIds.size(), collected.get()); |
765 | 737 |
|
766 |
| - @Override |
767 |
| - public void onSuccess(ListProviderConfigsPage<OidcProviderConfig> result) { |
768 |
| - for (OidcProviderConfig providerConfig : result.iterateAll()) { |
769 |
| - if (checkProviderConfig(providerIds, providerConfig)) { |
770 |
| - collected.incrementAndGet(); |
771 |
| - } |
772 |
| - } |
773 |
| - semaphore.release(); |
774 |
| - } |
775 |
| - }, MoreExecutors.directExecutor()); |
776 |
| - semaphore.acquire(); |
777 |
| - assertEquals(providerIds.size(), collected.get()); |
778 |
| - assertNull(error.get()); |
779 |
| - } finally { |
780 |
| - // Delete provider configs |
781 |
| - for (String providerId : providerIds) { |
782 |
| - auth.deleteProviderConfigAsync(providerId).get(); |
| 738 | + // Test iterate all |
| 739 | + collected.set(0); |
| 740 | + page = auth.listOidcProviderConfigsAsync(null).get(); |
| 741 | + for (OidcProviderConfig providerConfig : page.iterateAll()) { |
| 742 | + if (checkProviderConfig(providerIds, providerConfig)) { |
| 743 | + collected.incrementAndGet(); |
783 | 744 | }
|
784 | 745 | }
|
| 746 | + assertEquals(providerIds.size(), collected.get()); |
| 747 | + |
| 748 | + // Test iterate async |
| 749 | + collected.set(0); |
| 750 | + final Semaphore semaphore = new Semaphore(0); |
| 751 | + final AtomicReference<Throwable> error = new AtomicReference<>(); |
| 752 | + ApiFuture<ListProviderConfigsPage<OidcProviderConfig>> pageFuture = |
| 753 | + auth.listOidcProviderConfigsAsync(null); |
| 754 | + ApiFutures.addCallback( |
| 755 | + pageFuture, |
| 756 | + new ApiFutureCallback<ListProviderConfigsPage<OidcProviderConfig>>() { |
| 757 | + @Override |
| 758 | + public void onFailure(Throwable t) { |
| 759 | + error.set(t); |
| 760 | + semaphore.release(); |
| 761 | + } |
| 762 | + |
| 763 | + @Override |
| 764 | + public void onSuccess(ListProviderConfigsPage<OidcProviderConfig> result) { |
| 765 | + for (OidcProviderConfig providerConfig : result.iterateAll()) { |
| 766 | + if (checkProviderConfig(providerIds, providerConfig)) { |
| 767 | + collected.incrementAndGet(); |
| 768 | + } |
| 769 | + } |
| 770 | + semaphore.release(); |
| 771 | + } |
| 772 | + }, MoreExecutors.directExecutor()); |
| 773 | + semaphore.acquire(); |
| 774 | + assertEquals(providerIds.size(), collected.get()); |
| 775 | + assertNull(error.get()); |
785 | 776 | }
|
786 | 777 |
|
787 | 778 | private Map<String, String> parseLinkParameters(String link) throws Exception {
|
@@ -924,23 +915,11 @@ private boolean checkProviderConfig(List<String> providerIds, OidcProviderConfig
|
924 | 915 | }
|
925 | 916 |
|
926 | 917 |
|
927 |
| - private static void assertOidcProviderConfigDoesNotExist( |
928 |
| - AbstractFirebaseAuth firebaseAuth, String providerId) throws Exception { |
929 |
| - try { |
930 |
| - firebaseAuth.getOidcProviderConfigAsync(providerId).get(); |
931 |
| - fail("No error thrown for getting a deleted provider config"); |
932 |
| - } catch (ExecutionException e) { |
933 |
| - assertTrue(e.getCause() instanceof FirebaseAuthException); |
934 |
| - assertEquals(FirebaseUserManager.CONFIGURATION_NOT_FOUND_ERROR, |
935 |
| - ((FirebaseAuthException) e.getCause()).getErrorCode()); |
936 |
| - } |
937 |
| - } |
938 |
| - |
939 | 918 | private static void assertUserDoesNotExist(AbstractFirebaseAuth firebaseAuth, String uid)
|
940 | 919 | throws Exception {
|
941 | 920 | try {
|
942 | 921 | firebaseAuth.getUserAsync(uid).get();
|
943 |
| - fail("No error thrown for getting a user which was expected to be absent"); |
| 922 | + fail("No error thrown for getting a user which was expected to be absent."); |
944 | 923 | } catch (ExecutionException e) {
|
945 | 924 | assertTrue(e.getCause() instanceof FirebaseAuthException);
|
946 | 925 | assertEquals(FirebaseUserManager.USER_NOT_FOUND_ERROR,
|
|
0 commit comments