2020import static com .google .firebase .appcheck .internal .HttpErrorResponse .CODE_KEY ;
2121import static com .google .firebase .appcheck .internal .HttpErrorResponse .ERROR_KEY ;
2222import static com .google .firebase .appcheck .internal .HttpErrorResponse .MESSAGE_KEY ;
23+ import static com .google .firebase .appcheck .internal .NetworkClient .X_ANDROID_CERT ;
24+ import static com .google .firebase .appcheck .internal .NetworkClient .X_ANDROID_PACKAGE ;
2325import static com .google .firebase .appcheck .internal .NetworkClient .X_FIREBASE_CLIENT ;
2426import static com .google .firebase .appcheck .internal .NetworkClient .X_FIREBASE_CLIENT_LOG_TYPE ;
2527import static org .junit .Assert .assertThrows ;
2628import static org .mockito .ArgumentMatchers .any ;
29+ import static org .mockito .ArgumentMatchers .eq ;
2730import static org .mockito .Mockito .doReturn ;
2831import static org .mockito .Mockito .spy ;
2932import static org .mockito .Mockito .verify ;
@@ -116,13 +119,7 @@ public void exchangeSafetyNetToken_successResponse_returnsAppCheckTokenResponse(
116119 verify (networkClient ).createHttpUrlConnection (expectedUrl );
117120 verify (outputStream )
118121 .write (JSON_REQUEST .getBytes (), /* off= */ 0 , JSON_REQUEST .getBytes ().length );
119-
120- String userAgent = ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getUserAgent ();
121- String heartBeatCode =
122- ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getHeartbeatCode ();
123- verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT , userAgent );
124- verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT_LOG_TYPE , heartBeatCode );
125- assertThat (userAgent ).contains (SDK_NAME );
122+ verifyRequestHeaders ();
126123 }
127124
128125 @ Test
@@ -146,13 +143,7 @@ public void exchangeSafetyNetToken_errorResponse_throwsException() throws Except
146143 verify (networkClient ).createHttpUrlConnection (expectedUrl );
147144 verify (outputStream )
148145 .write (JSON_REQUEST .getBytes (), /* off= */ 0 , JSON_REQUEST .getBytes ().length );
149-
150- String userAgent = ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getUserAgent ();
151- String heartBeatCode =
152- ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getHeartbeatCode ();
153- verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT , userAgent );
154- verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT_LOG_TYPE , heartBeatCode );
155- assertThat (userAgent ).contains (SDK_NAME );
146+ verifyRequestHeaders ();
156147 }
157148
158149 @ Test
@@ -174,13 +165,7 @@ public void exchangeDebugToken_successResponse_returnsAppCheckTokenResponse() th
174165 verify (networkClient ).createHttpUrlConnection (expectedUrl );
175166 verify (outputStream )
176167 .write (JSON_REQUEST .getBytes (), /* off= */ 0 , JSON_REQUEST .getBytes ().length );
177-
178- String userAgent = ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getUserAgent ();
179- String heartBeatCode =
180- ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getHeartbeatCode ();
181- verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT , userAgent );
182- verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT_LOG_TYPE , heartBeatCode );
183- assertThat (userAgent ).contains (SDK_NAME );
168+ verifyRequestHeaders ();
184169 }
185170
186171 @ Test
@@ -204,13 +189,7 @@ public void exchangeDebugToken_errorResponse_throwsException() throws Exception
204189 verify (networkClient ).createHttpUrlConnection (expectedUrl );
205190 verify (outputStream )
206191 .write (JSON_REQUEST .getBytes (), /* off= */ 0 , JSON_REQUEST .getBytes ().length );
207-
208- String userAgent = ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getUserAgent ();
209- String heartBeatCode =
210- ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getHeartbeatCode ();
211- verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT , userAgent );
212- verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT_LOG_TYPE , heartBeatCode );
213- assertThat (userAgent ).contains (SDK_NAME );
192+ verifyRequestHeaders ();
214193 }
215194
216195 @ Test
@@ -222,6 +201,20 @@ public void exchangeUnknownAttestation_throwsException() {
222201 JSON_REQUEST .getBytes (), NetworkClient .UNKNOWN ));
223202 }
224203
204+ private void verifyRequestHeaders () {
205+ String userAgent = ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getUserAgent ();
206+ String heartBeatCode =
207+ ((DefaultFirebaseAppCheck ) FirebaseAppCheck .getInstance ()).getHeartbeatCode ();
208+
209+ verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT , userAgent );
210+ verify (mockHttpUrlConnection ).setRequestProperty (X_FIREBASE_CLIENT_LOG_TYPE , heartBeatCode );
211+ verify (mockHttpUrlConnection )
212+ .setRequestProperty (
213+ X_ANDROID_PACKAGE , ApplicationProvider .getApplicationContext ().getPackageName ());
214+ verify (mockHttpUrlConnection ).setRequestProperty (eq (X_ANDROID_CERT ), any ());
215+ assertThat (userAgent ).contains (SDK_NAME );
216+ }
217+
225218 private static JSONObject createAttestationResponse () throws Exception {
226219 JSONObject responseBodyJson = new JSONObject ();
227220 responseBodyJson .put (ATTESTATION_TOKEN_KEY , ATTESTATION_TOKEN );
0 commit comments