Skip to content

Commit 290a487

Browse files
authored
Parse NO_CHANGE fetch response for template version (#4177)
* Parse and store fetch response for NO_CHANGE bug as well * Fix test * Revert change * Format file * Format file * Add comments and update tests
1 parent 6243355 commit 290a487

File tree

4 files changed

+12
-7
lines changed

4 files changed

+12
-7
lines changed

firebase-config/src/main/java/com/google/firebase/remoteconfig/internal/ConfigFetchHandler.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -575,11 +575,14 @@ public static FetchResponse forBackendUpdatesFetched(
575575
lastFetchETag);
576576
}
577577

578-
public static FetchResponse forBackendHasNoUpdates(Date fetchTime) {
578+
// Passing in param fetchedConfigs because it contains templateVersion but no other active
579+
// fields.
580+
public static FetchResponse forBackendHasNoUpdates(
581+
Date fetchTime, ConfigContainer fetchedConfigs) {
579582
return new FetchResponse(
580583
fetchTime,
581584
Status.BACKEND_HAS_NO_UPDATES,
582-
/*fetchedConfigs=*/ null,
585+
/*fetchedConfigs=*/ fetchedConfigs,
583586
/*lastFetchETag=*/ null);
584587
}
585588

firebase-config/src/main/java/com/google/firebase/remoteconfig/internal/ConfigFetchHttpClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,12 +216,12 @@ FetchResponse fetch(
216216
} catch (IOException e) {
217217
}
218218
}
219+
ConfigContainer fetchedConfigs = extractConfigs(fetchResponse, currentTime);
219220

220221
if (!backendHasUpdates(fetchResponse)) {
221-
return FetchResponse.forBackendHasNoUpdates(currentTime);
222+
return FetchResponse.forBackendHasNoUpdates(currentTime, fetchedConfigs);
222223
}
223224

224-
ConfigContainer fetchedConfigs = extractConfigs(fetchResponse, currentTime);
225225
return FetchResponse.forBackendUpdatesFetched(fetchedConfigs, fetchResponseETag);
226226
}
227227

firebase-config/src/test/java/com/google/firebase/remoteconfig/internal/ConfigFetchHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,7 @@ private void setBackendResponseToNoChange(Date date) throws Exception {
794794
/* customHeaders= */ any(),
795795
/* firstOpenTime= */ any(),
796796
/* currentTime= */ any()))
797-
.thenReturn(FetchResponse.forBackendHasNoUpdates(date));
797+
.thenReturn(FetchResponse.forBackendHasNoUpdates(date, firstFetchedContainer));
798798
}
799799

800800
private void fetchCallToBackendThrowsException(int httpErrorCode) throws Exception {

firebase-config/src/test/java/com/google/firebase/remoteconfig/internal/ConfigFetchHttpClientTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,15 @@ public void fetch_newValues_responseSet() throws Exception {
161161
}
162162

163163
@Test
164-
public void fetch_noChange_responseNotSet() throws Exception {
164+
public void fetch_noChange_responseOnlyContainsTemplateVersion() throws Exception {
165165
setServerResponseTo(noChangeResponseBody, SECOND_ETAG);
166166

167167
FetchResponse response = fetch(SECOND_ETAG);
168168

169169
assertThat(response.getLastFetchETag()).isNull();
170-
assertThat(response.getFetchedConfigs()).isNull();
170+
assertThat(response.getFetchedConfigs()).isNotNull();
171+
assertThat(response.getFetchedConfigs().getTemplateVersionNumber()).isNotNull();
172+
assertThat(response.getFetchedConfigs().getConfigs().length()).isEqualTo(0);
171173
}
172174

173175
@Test

0 commit comments

Comments
 (0)