@@ -21,22 +21,26 @@ import com.google.common.truth.Truth.assertThat
21
21
import com.google.firebase.FirebaseApp
22
22
import com.google.firebase.concurrent.TestOnlyExecutors
23
23
import com.google.firebase.sessions.settings.RemoteSettings
24
+ import com.google.firebase.sessions.settings.RemoteSettingsFetcher
24
25
import com.google.firebase.sessions.testing.FakeFirebaseApp
25
26
import com.google.firebase.sessions.testing.FakeFirebaseInstallations
26
27
import com.google.firebase.sessions.testing.FakeRemoteConfigFetcher
28
+ import com.google.firebase.sessions.testing.TestSessionEventData.TEST_APPLICATION_INFO
27
29
import kotlin.time.Duration.Companion.minutes
30
+ import kotlinx.coroutines.ExperimentalCoroutinesApi
28
31
import kotlinx.coroutines.asCoroutineDispatcher
29
32
import kotlinx.coroutines.test.runTest
30
33
import org.json.JSONObject
31
34
import org.junit.After
32
35
import org.junit.Test
33
36
import org.junit.runner.RunWith
34
37
38
+ @OptIn(ExperimentalCoroutinesApi ::class )
35
39
@RunWith(AndroidJUnit4 ::class )
36
40
class RemoteSettingsTest {
37
41
38
42
@Test
39
- fun RemoteSettings_successfulFetchCachesValues () = runTest {
43
+ fun remoteSettings_successfulFetchCachesValues () = runTest {
40
44
val firebaseApp = FakeFirebaseApp ().firebaseApp
41
45
val context = firebaseApp.applicationContext
42
46
val firebaseInstallations = FakeFirebaseInstallations (" FaKeFiD" )
@@ -67,7 +71,7 @@ class RemoteSettingsTest {
67
71
}
68
72
69
73
@Test
70
- fun RemoteSettings_successfulFetchWithLessConfigsCachesOnlyReceivedValues () = runTest {
74
+ fun remoteSettings_successfulFetchWithLessConfigsCachesOnlyReceivedValues () = runTest {
71
75
val firebaseApp = FakeFirebaseApp ().firebaseApp
72
76
val context = firebaseApp.applicationContext
73
77
val firebaseInstallations = FakeFirebaseInstallations (" FaKeFiD" )
@@ -100,7 +104,7 @@ class RemoteSettingsTest {
100
104
}
101
105
102
106
@Test
103
- fun RemoteSettings_successfulRefetchUpdatesCache () = runTest {
107
+ fun remoteSettings_successfulReFetchUpdatesCache () = runTest {
104
108
val firebaseApp = FakeFirebaseApp ().firebaseApp
105
109
val context = firebaseApp.applicationContext
106
110
val firebaseInstallations = FakeFirebaseInstallations (" FaKeFiD" )
@@ -146,7 +150,7 @@ class RemoteSettingsTest {
146
150
}
147
151
148
152
@Test
149
- fun RemoteSettings_successfulFetchWithEmptyConfigRetainsOldConfigs () = runTest {
153
+ fun remoteSettings_successfulFetchWithEmptyConfigRetainsOldConfigs () = runTest {
150
154
val firebaseApp = FakeFirebaseApp ().firebaseApp
151
155
val context = firebaseApp.applicationContext
152
156
val firebaseInstallations = FakeFirebaseInstallations (" FaKeFiD" )
@@ -186,6 +190,20 @@ class RemoteSettingsTest {
186
190
remoteSettings.clearCachedSettings()
187
191
}
188
192
193
+ @Test
194
+ fun remoteSettingsFetcher_badFetch_callsOnFailure () = runTest {
195
+ var failure: String? = null
196
+
197
+ RemoteSettingsFetcher (TEST_APPLICATION_INFO , baseUrl = " this.url.is.invalid" )
198
+ .doConfigFetch(
199
+ headerOptions = emptyMap(),
200
+ onSuccess = {},
201
+ onFailure = { failure = it },
202
+ )
203
+
204
+ assertThat(failure).isNotNull()
205
+ }
206
+
189
207
@After
190
208
fun cleanUp () {
191
209
FirebaseApp .clearInstancesForTest()
0 commit comments