Skip to content

Commit a5829d2

Browse files
committed
Fix unit tests.
1 parent 46b9cc4 commit a5829d2

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

appcheck/firebase-appcheck/src/main/java/com/google/firebase/appcheck/internal/DefaultFirebaseAppCheck.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,17 @@ public class DefaultFirebaseAppCheck extends FirebaseAppCheck {
6060
public DefaultFirebaseAppCheck(
6161
@NonNull FirebaseApp firebaseApp,
6262
@NonNull Provider<HeartBeatController> heartBeatController) {
63+
this(
64+
checkNotNull(firebaseApp),
65+
checkNotNull(heartBeatController),
66+
Executors.newCachedThreadPool());
67+
}
68+
69+
@VisibleForTesting
70+
DefaultFirebaseAppCheck(
71+
@NonNull FirebaseApp firebaseApp,
72+
@NonNull Provider<HeartBeatController> heartBeatController,
73+
@NonNull ExecutorService backgroundExecutor) {
6374
checkNotNull(firebaseApp);
6475
checkNotNull(heartBeatController);
6576
this.firebaseApp = firebaseApp;
@@ -70,8 +81,8 @@ public DefaultFirebaseAppCheck(
7081
new StorageHelper(firebaseApp.getApplicationContext(), firebaseApp.getPersistenceKey());
7182
this.tokenRefreshManager =
7283
new TokenRefreshManager(firebaseApp.getApplicationContext(), /* firebaseAppCheck= */ this);
73-
this.backgroundExecutor = Executors.newCachedThreadPool();
74-
this.retrieveStoredTokenTask = retrieveStoredAppCheckTokenInBackground(this.backgroundExecutor);
84+
this.backgroundExecutor = backgroundExecutor;
85+
this.retrieveStoredTokenTask = retrieveStoredAppCheckTokenInBackground(backgroundExecutor);
7586
this.clock = new Clock.DefaultClock();
7687
}
7788

@@ -226,6 +237,7 @@ Task<AppCheckToken> fetchTokenFromProvider() {
226237
return appCheckProvider
227238
.getToken()
228239
.continueWithTask(
240+
backgroundExecutor,
229241
new Continuation<AppCheckToken, Task<AppCheckToken>>() {
230242
@Override
231243
public Task<AppCheckToken> then(@NonNull Task<AppCheckToken> task) {
@@ -260,6 +272,8 @@ void setCachedToken(@NonNull AppCheckToken token) {
260272
/**
261273
* Updates the {@link AppCheckToken} persisted in {@link android.content.SharedPreferences} as
262274
* well as the in-memory cached {@link AppCheckToken}.
275+
*
276+
* <p>This method performs a disk write, and should therefore be called on a background thread.
263277
*/
264278
private void updateStoredToken(@NonNull AppCheckToken token) {
265279
storageHelper.saveAppCheckToken(token);

appcheck/firebase-appcheck/src/test/java/com/google/firebase/appcheck/internal/DefaultFirebaseAppCheckTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,17 @@
1414

1515
package com.google.firebase.appcheck.internal;
1616

17-
import static android.os.Looper.getMainLooper;
1817
import static com.google.common.truth.Truth.assertThat;
1918
import static org.junit.Assert.assertThrows;
2019
import static org.mockito.ArgumentMatchers.any;
2120
import static org.mockito.Mockito.never;
2221
import static org.mockito.Mockito.verify;
2322
import static org.mockito.Mockito.when;
24-
import static org.robolectric.Shadows.shadowOf;
2523

2624
import androidx.test.core.app.ApplicationProvider;
2725
import com.google.android.gms.tasks.Task;
2826
import com.google.android.gms.tasks.Tasks;
27+
import com.google.common.util.concurrent.MoreExecutors;
2928
import com.google.firebase.FirebaseApp;
3029
import com.google.firebase.appcheck.AppCheckProvider;
3130
import com.google.firebase.appcheck.AppCheckProviderFactory;
@@ -76,8 +75,10 @@ public void setup() {
7675
when(mockAppCheckProvider.getToken()).thenReturn(Tasks.forResult(validDefaultAppCheckToken));
7776

7877
defaultFirebaseAppCheck =
79-
new DefaultFirebaseAppCheck(mockFirebaseApp, () -> mockHeartBeatController);
80-
shadowOf(getMainLooper()).idle();
78+
new DefaultFirebaseAppCheck(
79+
mockFirebaseApp,
80+
() -> mockHeartBeatController,
81+
MoreExecutors.newDirectExecutorService());
8182
}
8283

8384
@Test

0 commit comments

Comments
 (0)