2121import static org .junit .Assert .assertTrue ;
2222import static org .junit .Assert .fail ;
2323
24+ import com .google .api .client .http .HttpHeaders ;
25+ import com .google .api .client .http .HttpResponse ;
26+ import com .google .api .client .http .HttpResponseInterceptor ;
2427import com .google .api .client .json .gson .GsonFactory ;
2528import com .google .api .client .testing .http .MockHttpTransport ;
2629import com .google .api .client .testing .http .MockLowLevelHttpResponse ;
2730import com .google .common .collect .ImmutableList ;
2831import com .google .firebase .auth .UserRecord .CreateRequest ;
2932import com .google .firebase .auth .UserRecord .UpdateRequest ;
33+ import com .google .firebase .internal .SdkUtils ;
3034import com .google .firebase .testing .TestUtils ;
3135
3236import java .io .IOException ;
3539
3640public class FirebaseUserManagerTest {
3741
42+ private static final String TEST_TOKEN = "token" ;
3843 private static final GsonFactory gson = new GsonFactory ();
3944
4045 @ Test
@@ -45,8 +50,11 @@ public void testGetUser() throws Exception {
4550 .setLowLevelHttpResponse (response )
4651 .build ();
4752 FirebaseUserManager userManager = new FirebaseUserManager (gson , transport );
48- UserRecord userRecord = userManager .getUserById ("testuser" , "token" );
53+ TestResponseInterceptor interceptor = new TestResponseInterceptor ();
54+ userManager .setInterceptor (interceptor );
55+ UserRecord userRecord = userManager .getUserById ("testuser" , TEST_TOKEN );
4956 checkUserRecord (userRecord );
57+ checkRequestHeaders (interceptor );
5058 }
5159
5260 @ Test
@@ -58,7 +66,7 @@ public void testGetUserWithNotFoundError() throws Exception {
5866 .build ();
5967 FirebaseUserManager userManager = new FirebaseUserManager (gson , transport );
6068 try {
61- userManager .getUserById ("testuser" , "token" );
69+ userManager .getUserById ("testuser" , TEST_TOKEN );
6270 fail ("No error thrown for invalid response" );
6371 } catch (FirebaseAuthException e ) {
6472 assertEquals (FirebaseUserManager .USER_NOT_FOUND_ERROR , e .getErrorCode ());
@@ -73,8 +81,11 @@ public void testGetUserByEmail() throws Exception {
7381 .setLowLevelHttpResponse (response )
7482 .build ();
7583 FirebaseUserManager userManager = new FirebaseUserManager (gson , transport );
76- UserRecord userRecord =
userManager .
getUserByEmail (
"[email protected] " ,
"token" );
84+ TestResponseInterceptor interceptor = new TestResponseInterceptor ();
85+ userManager .setInterceptor (interceptor );
86+ UserRecord userRecord =
userManager .
getUserByEmail (
"[email protected] " ,
TEST_TOKEN );
7787 checkUserRecord (userRecord );
88+ checkRequestHeaders (interceptor );
7889 }
7990
8091 @ Test
@@ -85,8 +96,11 @@ public void testCreateUser() throws Exception {
8596 .setLowLevelHttpResponse (response )
8697 .build ();
8798 FirebaseUserManager userManager = new FirebaseUserManager (gson , transport );
88- String uid = userManager .createUser (new CreateRequest (), "token" );
99+ TestResponseInterceptor interceptor = new TestResponseInterceptor ();
100+ userManager .setInterceptor (interceptor );
101+ String uid = userManager .createUser (new CreateRequest (), TEST_TOKEN );
89102 assertEquals ("testuser" , uid );
103+ checkRequestHeaders (interceptor );
90104 }
91105
92106 @ Test
@@ -97,8 +111,26 @@ public void testUpdateUser() throws Exception {
97111 .setLowLevelHttpResponse (response )
98112 .build ();
99113 FirebaseUserManager userManager = new FirebaseUserManager (gson , transport );
114+ TestResponseInterceptor interceptor = new TestResponseInterceptor ();
115+ userManager .setInterceptor (interceptor );
116+ // should not throw
117+ userManager .updateUser (new UpdateRequest ("testuser" ), TEST_TOKEN );
118+ checkRequestHeaders (interceptor );
119+ }
120+
121+ @ Test
122+ public void testDeleteUser () throws Exception {
123+ MockLowLevelHttpResponse response = new MockLowLevelHttpResponse ();
124+ response .setContent (TestUtils .loadResource ("deleteUser.json" ));
125+ MockHttpTransport transport = new MockHttpTransport .Builder ()
126+ .setLowLevelHttpResponse (response )
127+ .build ();
128+ FirebaseUserManager userManager = new FirebaseUserManager (gson , transport );
129+ TestResponseInterceptor interceptor = new TestResponseInterceptor ();
130+ userManager .setInterceptor (interceptor );
100131 // should not throw
101- userManager .updateUser (new UpdateRequest ("testuser" ), "token" );
132+ userManager .deleteUser ("testuser" , TEST_TOKEN );
133+ checkRequestHeaders (interceptor );
102134 }
103135
104136 @ Test
@@ -381,4 +413,23 @@ private void checkUserRecord(UserRecord userRecord) {
381413 assertEquals ("password" , provider .getProviderId ());
382414 }
383415
416+ private void checkRequestHeaders (TestResponseInterceptor interceptor ) {
417+ HttpHeaders headers = interceptor .response .getRequest ().getHeaders ();
418+ String auth = "Bearer " + TEST_TOKEN ;
419+ assertEquals (auth , headers .getFirstHeaderStringValue ("Authorization" ));
420+
421+ String clientVersion = "Java/Admin/" + SdkUtils .getVersion ();
422+ assertEquals (clientVersion , headers .getFirstHeaderStringValue ("X-Client-Version" ));
423+ }
424+
425+ private static class TestResponseInterceptor implements HttpResponseInterceptor {
426+
427+ private HttpResponse response ;
428+
429+ @ Override
430+ public void interceptResponse (HttpResponse response ) throws IOException {
431+ this .response = response ;
432+ }
433+ }
434+
384435}
0 commit comments