27
27
import com .google .firebase .FirebaseApp ;
28
28
import com .google .firebase .appcheck .AppCheckProvider ;
29
29
import com .google .firebase .appcheck .AppCheckProviderFactory ;
30
+ import com .google .firebase .appcheck .AppCheckToken ;
30
31
import com .google .firebase .appcheck .AppCheckTokenResult ;
32
+ import com .google .firebase .appcheck .FirebaseAppCheck .AppCheckListener ;
31
33
import com .google .firebase .appcheck .interop .AppCheckTokenListener ;
32
34
import com .google .firebase .heartbeatinfo .HeartBeatInfo ;
33
35
import com .google .firebase .platforminfo .UserAgentPublisher ;
@@ -55,6 +57,7 @@ public class DefaultFirebaseAppCheckTest {
55
57
@ Mock private AppCheckProviderFactory mockAppCheckProviderFactory ;
56
58
@ Mock private AppCheckProvider mockAppCheckProvider ;
57
59
@ Mock private AppCheckTokenListener mockAppCheckTokenListener ;
60
+ @ Mock private AppCheckListener mockAppCheckListener ;
58
61
@ Mock private UserAgentPublisher mockUserAgentPublisher ;
59
62
@ Mock private HeartBeatInfo mockHeartBeatInfo ;
60
63
@@ -131,6 +134,71 @@ public void testRemoveAppCheckTokenListener_nullListener_expectThrows() {
131
134
});
132
135
}
133
136
137
+ @ Test
138
+ public void testAddAppCheckListener_nullListener_expectThrows () {
139
+ assertThrows (
140
+ NullPointerException .class ,
141
+ () -> {
142
+ defaultFirebaseAppCheck .addAppCheckListener (null );
143
+ });
144
+ }
145
+
146
+ @ Test
147
+ public void testRemoveAppCheckListener_nullListener_expectThrows () {
148
+ assertThrows (
149
+ NullPointerException .class ,
150
+ () -> {
151
+ defaultFirebaseAppCheck .removeAppCheckListener (null );
152
+ });
153
+ }
154
+
155
+ @ Test
156
+ public void testAddAppCheckTokenListener_existingValidToken_triggersListenerUponAdding () {
157
+ defaultFirebaseAppCheck .setCachedToken (validDefaultAppCheckToken );
158
+
159
+ defaultFirebaseAppCheck .addAppCheckTokenListener (mockAppCheckTokenListener );
160
+
161
+ ArgumentCaptor <DefaultAppCheckTokenResult > tokenResultCaptor =
162
+ ArgumentCaptor .forClass (DefaultAppCheckTokenResult .class );
163
+ verify (mockAppCheckTokenListener ).onAppCheckTokenChanged (tokenResultCaptor .capture ());
164
+ assertThat (tokenResultCaptor .getValue ().getToken ()).isEqualTo (TOKEN_PAYLOAD );
165
+ assertThat (tokenResultCaptor .getValue ().getError ()).isNull ();
166
+ }
167
+
168
+ @ Test
169
+ public void testAddAppCheckTokenListener_existingInvalidToken_doesNotTriggerListenerUponAdding () {
170
+ DefaultAppCheckToken invalidDefaultAppCheckToken =
171
+ new DefaultAppCheckToken (TOKEN_PAYLOAD , EXPIRES_NOW );
172
+ defaultFirebaseAppCheck .setCachedToken (invalidDefaultAppCheckToken );
173
+
174
+ defaultFirebaseAppCheck .addAppCheckTokenListener (mockAppCheckTokenListener );
175
+
176
+ verify (mockAppCheckTokenListener , never ()).onAppCheckTokenChanged (any ());
177
+ }
178
+
179
+ @ Test
180
+ public void testAddAppCheckListener_existingValidToken_triggersListenerUponAdding () {
181
+ defaultFirebaseAppCheck .setCachedToken (validDefaultAppCheckToken );
182
+
183
+ defaultFirebaseAppCheck .addAppCheckListener (mockAppCheckListener );
184
+
185
+ ArgumentCaptor <DefaultAppCheckToken > tokenCaptor =
186
+ ArgumentCaptor .forClass (DefaultAppCheckToken .class );
187
+ verify (mockAppCheckListener ).onAppCheckTokenChanged (tokenCaptor .capture ());
188
+ assertThat (tokenCaptor .getValue ().getToken ()).isEqualTo (TOKEN_PAYLOAD );
189
+ }
190
+
191
+ @ Test
192
+ public void testAddAppCheckListener_existingInvalidToken_doesNotTriggerListenerUponAdding () {
193
+ DefaultAppCheckToken invalidDefaultAppCheckToken =
194
+ new DefaultAppCheckToken (TOKEN_PAYLOAD , EXPIRES_NOW );
195
+ defaultFirebaseAppCheck .setCachedToken (invalidDefaultAppCheckToken );
196
+
197
+ defaultFirebaseAppCheck .addAppCheckListener (mockAppCheckListener );
198
+
199
+ verify (mockAppCheckListener , never ()).onAppCheckTokenChanged (any ());
200
+ }
201
+
134
202
@ Test
135
203
public void testGetToken_noFactoryInstalled_returnResultWithError () throws Exception {
136
204
Task <AppCheckTokenResult > tokenTask =
@@ -141,6 +209,14 @@ public void testGetToken_noFactoryInstalled_returnResultWithError() throws Excep
141
209
assertThat (tokenTask .getResult ().getError ()).isNotNull ();
142
210
}
143
211
212
+ @ Test
213
+ public void testGetAppCheckToken_noFactoryInstalled_taskFails () throws Exception {
214
+ Task <AppCheckToken > tokenTask =
215
+ defaultFirebaseAppCheck .getAppCheckToken (/* forceRefresh= */ false );
216
+ assertThat (tokenTask .isComplete ()).isTrue ();
217
+ assertThat (tokenTask .isSuccessful ()).isFalse ();
218
+ }
219
+
144
220
@ Test
145
221
public void testGetToken_factoryInstalled_proxiesToAppCheckFactory () {
146
222
defaultFirebaseAppCheck .installAppCheckProviderFactory (mockAppCheckProviderFactory );
@@ -150,6 +226,15 @@ public void testGetToken_factoryInstalled_proxiesToAppCheckFactory() {
150
226
verify (mockAppCheckProvider ).getToken ();
151
227
}
152
228
229
+ @ Test
230
+ public void testGetAppCheckToken_factoryInstalled_proxiesToAppCheckFactory () {
231
+ defaultFirebaseAppCheck .installAppCheckProviderFactory (mockAppCheckProviderFactory );
232
+
233
+ defaultFirebaseAppCheck .getAppCheckToken (/* forceRefresh= */ false );
234
+
235
+ verify (mockAppCheckProvider ).getToken ();
236
+ }
237
+
153
238
@ Test
154
239
public void testGetInstalledAppCheckProviderFactory_noFactoryInstalled_returnsNull () {
155
240
assertThat (defaultFirebaseAppCheck .getInstalledAppCheckProviderFactory ()).isNull ();
@@ -167,6 +252,7 @@ public void testGetInstalledAppCheckProviderFactory_factoryInstalled_returnsFact
167
252
public void testGetToken_factoryInstalledAndListenerRegistered_triggersListenerOnSuccess () {
168
253
defaultFirebaseAppCheck .installAppCheckProviderFactory (mockAppCheckProviderFactory );
169
254
defaultFirebaseAppCheck .addAppCheckTokenListener (mockAppCheckTokenListener );
255
+ defaultFirebaseAppCheck .addAppCheckListener (mockAppCheckListener );
170
256
171
257
defaultFirebaseAppCheck .getToken (/* forceRefresh= */ false );
172
258
@@ -176,12 +262,17 @@ public void testGetToken_factoryInstalledAndListenerRegistered_triggersListenerO
176
262
verify (mockAppCheckTokenListener ).onAppCheckTokenChanged (tokenResultCaptor .capture ());
177
263
assertThat (tokenResultCaptor .getValue ().getToken ()).isEqualTo (TOKEN_PAYLOAD );
178
264
assertThat (tokenResultCaptor .getValue ().getError ()).isNull ();
265
+ ArgumentCaptor <DefaultAppCheckToken > tokenCaptor =
266
+ ArgumentCaptor .forClass (DefaultAppCheckToken .class );
267
+ verify (mockAppCheckListener ).onAppCheckTokenChanged (tokenCaptor .capture ());
268
+ assertThat (tokenCaptor .getValue ()).isEqualTo (validDefaultAppCheckToken );
179
269
}
180
270
181
271
@ Test
182
272
public void testGetToken_factoryInstalledAndListenerRegistered_doesNotTriggerListenerOnFailure () {
183
273
defaultFirebaseAppCheck .installAppCheckProviderFactory (mockAppCheckProviderFactory );
184
274
defaultFirebaseAppCheck .addAppCheckTokenListener (mockAppCheckTokenListener );
275
+ defaultFirebaseAppCheck .addAppCheckListener (mockAppCheckListener );
185
276
186
277
when (mockAppCheckProvider .getToken ())
187
278
.thenReturn (Tasks .forException (new Exception (EXCEPTION_TEXT )));
@@ -190,30 +281,45 @@ public void testGetToken_factoryInstalledAndListenerRegistered_doesNotTriggerLis
190
281
191
282
verify (mockAppCheckProvider ).getToken ();
192
283
verify (mockAppCheckTokenListener , never ()).onAppCheckTokenChanged (any ());
284
+ verify (mockAppCheckListener , never ()).onAppCheckTokenChanged (any ());
193
285
}
194
286
195
287
@ Test
196
- public void testGetToken_existingValidToken_triggersListenerUponAdding () {
197
- defaultFirebaseAppCheck . setCachedToken ( validDefaultAppCheckToken );
198
-
288
+ public void
289
+ testGetAppCheckToken_factoryInstalledAndListenerRegistered_triggersListenerOnSuccess () {
290
+ defaultFirebaseAppCheck . installAppCheckProviderFactory ( mockAppCheckProviderFactory );
199
291
defaultFirebaseAppCheck .addAppCheckTokenListener (mockAppCheckTokenListener );
292
+ defaultFirebaseAppCheck .addAppCheckListener (mockAppCheckListener );
200
293
294
+ defaultFirebaseAppCheck .getAppCheckToken (/* forceRefresh= */ false );
295
+
296
+ verify (mockAppCheckProvider ).getToken ();
201
297
ArgumentCaptor <DefaultAppCheckTokenResult > tokenResultCaptor =
202
298
ArgumentCaptor .forClass (DefaultAppCheckTokenResult .class );
203
299
verify (mockAppCheckTokenListener ).onAppCheckTokenChanged (tokenResultCaptor .capture ());
204
300
assertThat (tokenResultCaptor .getValue ().getToken ()).isEqualTo (TOKEN_PAYLOAD );
205
301
assertThat (tokenResultCaptor .getValue ().getError ()).isNull ();
302
+ ArgumentCaptor <DefaultAppCheckToken > tokenCaptor =
303
+ ArgumentCaptor .forClass (DefaultAppCheckToken .class );
304
+ verify (mockAppCheckListener ).onAppCheckTokenChanged (tokenCaptor .capture ());
305
+ assertThat (tokenCaptor .getValue ()).isEqualTo (validDefaultAppCheckToken );
206
306
}
207
307
208
308
@ Test
209
- public void testGetToken_existingInvalidToken_doesNotTriggerListenerUponAdding () {
210
- DefaultAppCheckToken invalidDefaultAppCheckToken =
211
- new DefaultAppCheckToken (TOKEN_PAYLOAD , EXPIRES_NOW );
212
- defaultFirebaseAppCheck .setCachedToken (invalidDefaultAppCheckToken );
213
-
309
+ public void
310
+ testGetAppCheckToken_factoryInstalledAndListenerRegistered_doesNotTriggerListenerOnFailure () {
311
+ defaultFirebaseAppCheck .installAppCheckProviderFactory (mockAppCheckProviderFactory );
214
312
defaultFirebaseAppCheck .addAppCheckTokenListener (mockAppCheckTokenListener );
313
+ defaultFirebaseAppCheck .addAppCheckListener (mockAppCheckListener );
215
314
315
+ when (mockAppCheckProvider .getToken ())
316
+ .thenReturn (Tasks .forException (new Exception (EXCEPTION_TEXT )));
317
+
318
+ defaultFirebaseAppCheck .getAppCheckToken (/* forceRefresh= */ false );
319
+
320
+ verify (mockAppCheckProvider ).getToken ();
216
321
verify (mockAppCheckTokenListener , never ()).onAppCheckTokenChanged (any ());
322
+ verify (mockAppCheckListener , never ()).onAppCheckTokenChanged (any ());
217
323
}
218
324
219
325
@ Test
@@ -247,4 +353,36 @@ public void testGetToken_existingInvalidToken_requestsNewToken() {
247
353
248
354
verify (mockAppCheckProvider ).getToken ();
249
355
}
356
+
357
+ @ Test
358
+ public void testGetAppCheckToken_existingValidToken_doesNotRequestNewToken () {
359
+ defaultFirebaseAppCheck .setCachedToken (validDefaultAppCheckToken );
360
+ defaultFirebaseAppCheck .installAppCheckProviderFactory (mockAppCheckProviderFactory );
361
+
362
+ defaultFirebaseAppCheck .getAppCheckToken (/* forceRefresh= */ false );
363
+
364
+ verify (mockAppCheckProvider , never ()).getToken ();
365
+ }
366
+
367
+ @ Test
368
+ public void testGetAppCheckToken_existingValidToken_forceRefresh_requestsNewToken () {
369
+ defaultFirebaseAppCheck .setCachedToken (validDefaultAppCheckToken );
370
+ defaultFirebaseAppCheck .installAppCheckProviderFactory (mockAppCheckProviderFactory );
371
+
372
+ defaultFirebaseAppCheck .getAppCheckToken (/* forceRefresh= */ true );
373
+
374
+ verify (mockAppCheckProvider ).getToken ();
375
+ }
376
+
377
+ @ Test
378
+ public void testGetAppCheckToken_existingInvalidToken_requestsNewToken () {
379
+ DefaultAppCheckToken invalidDefaultAppCheckToken =
380
+ new DefaultAppCheckToken (TOKEN_PAYLOAD , EXPIRES_NOW );
381
+ defaultFirebaseAppCheck .setCachedToken (invalidDefaultAppCheckToken );
382
+ defaultFirebaseAppCheck .installAppCheckProviderFactory (mockAppCheckProviderFactory );
383
+
384
+ defaultFirebaseAppCheck .getAppCheckToken (/* forceRefresh= */ false );
385
+
386
+ verify (mockAppCheckProvider ).getToken ();
387
+ }
250
388
}
0 commit comments