Skip to content

Commit 60dfced

Browse files
committed
Wire up settings to send procedure
1 parent a0a948a commit 60dfced

File tree

5 files changed

+28
-13
lines changed

5 files changed

+28
-13
lines changed

firebase-crashlytics/src/androidTest/java/com/google/firebase/crashlytics/internal/common/SessionReportingCoordinatorTest.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public class SessionReportingCoordinatorTest {
5252
@Mock private LogFileManager logFileManager;
5353
@Mock private UserMetadata reportMetadata;
5454
@Mock private SendReportPredicate mockSendReportPredicate;
55+
@Mock private SendReportPredicate mockSendNativeReportPredicate;
5556
@Mock private CrashlyticsReport mockReport;
5657
@Mock private CrashlyticsReport.Session.Event mockEvent;
5758
@Mock private CrashlyticsReport.Session.Event.Builder mockEventBuilder;
@@ -343,6 +344,7 @@ public void onSessionsFinalize_finalizesReports() {
343344
@SuppressWarnings("unchecked")
344345
public void onReportSend_successfulReportsAreDeleted() {
345346
when(mockSendReportPredicate.shouldSendViaDataTransport()).thenReturn(true);
347+
when(mockSendNativeReportPredicate.shouldSendViaDataTransport()).thenReturn(true);
346348
final String orgId = "testOrgId";
347349
final String sessionId1 = "sessionId1";
348350
final String sessionId2 = "sessionId2";
@@ -361,7 +363,8 @@ public void onReportSend_successfulReportsAreDeleted() {
361363
when(reportSender.sendReport(mockReport1)).thenReturn(successfulTask);
362364
when(reportSender.sendReport(mockReport2)).thenReturn(failedTask);
363365

364-
reportManager.sendReports(orgId, Runnable::run, mockSendReportPredicate);
366+
reportManager.sendReports(
367+
orgId, Runnable::run, mockSendReportPredicate, mockSendNativeReportPredicate);
365368

366369
verify(reportSender).sendReport(mockReport1);
367370
verify(reportSender).sendReport(mockReport2);
@@ -373,14 +376,18 @@ public void onReportSend_successfulReportsAreDeleted() {
373376
@Test
374377
public void onReportSend_reportsAreDeletedWithoutBeingSent_whenSendPredicateIsFalse() {
375378
when(mockSendReportPredicate.shouldSendViaDataTransport()).thenReturn(false);
376-
reportManager.sendReports("testOrgId", Runnable::run, mockSendReportPredicate);
379+
when(mockSendNativeReportPredicate.shouldSendViaDataTransport()).thenReturn(false);
380+
reportManager.sendReports(
381+
"testOrgId", Runnable::run, mockSendReportPredicate, mockSendNativeReportPredicate);
377382

378383
verify(reportPersistence).deleteAllReports();
379384
verify(reportPersistence, never()).loadFinalizedReports();
380385
verify(reportPersistence, never()).deleteFinalizedReport(anyString());
381386
verifyZeroInteractions(reportSender);
382387
}
383388

389+
// FIXME: Add a test here
390+
384391
@Test
385392
public void testPersistUserIdForCurrentSession_persistsCurrentUserIdForCurrentSessionId() {
386393
final String currentSessionId = "currentSessionId";

firebase-crashlytics/src/androidTest/java/com/google/firebase/crashlytics/internal/persistence/CrashlyticsReportPersistenceTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -387,12 +387,12 @@ public void testFinalizeSessionWithNativeEvent_writesNativeSessions() {
387387
.build()))
388388
.build();
389389

390-
CrashlyticsReport report = makeTestNativeReport();
390+
CrashlyticsReport report = makeTestNativeReport().withNdkPayload(filesPayload);
391391
List<CrashlyticsReport> finalizedReports = reportPersistence.loadFinalizedReports();
392392

393393
assertEquals(0, finalizedReports.size());
394394

395-
reportPersistence.finalizeSessionWithNativeEvent("sessionId", report, filesPayload);
395+
reportPersistence.finalizeSessionWithNativeEvent("sessionId", report);
396396

397397
finalizedReports = reportPersistence.loadFinalizedReports();
398398
assertEquals(1, finalizedReports.size());

firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/CrashlyticsController.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,9 @@ public Task<Void> then(@Nullable AppSettingsData appSettingsData)
433433
reportingCoordinator.sendReports(
434434
appSettingsData.organizationId,
435435
executor,
436-
shouldSendViaDataTransport(appSettingsData.reportUploadVariant));
436+
shouldSendViaDataTransport(appSettingsData.reportUploadVariant),
437+
shouldSendViaDataTransport(
438+
appSettingsData.nativeReportUploadVariant));
437439
return recordFatalFirebaseEventTask;
438440
}
439441
});
@@ -587,8 +589,9 @@ public Task<Void> then(@Nullable AppSettingsData appSettingsData)
587589
reportingCoordinator.sendReports(
588590
appSettingsData.organizationId,
589591
executor,
592+
shouldSendViaDataTransport(appSettingsData.reportUploadVariant),
590593
shouldSendViaDataTransport(
591-
appSettingsData.reportUploadVariant));
594+
appSettingsData.nativeReportUploadVariant));
592595
unsentReportsHandled.trySetResult(null);
593596

594597
return Tasks.forResult(null);
@@ -1103,7 +1106,7 @@ public boolean accept(File dir, String filename) {
11031106

11041107
// endregion
11051108

1106-
private void finalizePreviousNativeSession(String previousSessionId) throws IOException {
1109+
private void finalizePreviousNativeSession(String previousSessionId) {
11071110
Logger.getLogger().d("Finalizing native report for session " + previousSessionId);
11081111
NativeSessionFileProvider nativeSessionFileProvider =
11091112
nativeComponent.getSessionFileProvider(previousSessionId);
@@ -1128,10 +1131,8 @@ private void finalizePreviousNativeSession(String previousSessionId) throws IOEx
11281131
getContext(),
11291132
getFilesDir(),
11301133
previousSessionLogManager.getBytesForLog());
1131-
11321134
NativeSessionFileGzipper.processNativeSessions(nativeSessionDirectory, nativeSessionFiles);
11331135
reportingCoordinator.finalizeSessionWithNativeEvent(previousSessionId, nativeSessionFiles);
1134-
11351136
previousSessionLogManager.clearLog();
11361137
}
11371138

firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/common/SessionReportingCoordinator.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public void finalizeSessionWithNativeEvent(
147147
filesPayloadBuilder.setFiles(ImmutableList.from(nativeFiles));
148148

149149
reportPersistence.finalizeSessionWithNativeEvent(
150-
sessionId, dataCapture.captureReportData(), filesPayloadBuilder.build());
150+
sessionId, dataCapture.captureReportData().withNdkPayload(filesPayloadBuilder.build()));
151151
} catch (Exception e) {
152152
throw new RuntimeException(e);
153153
}
@@ -178,14 +178,22 @@ public void removeAllReports() {
178178
public void sendReports(
179179
String organizationId,
180180
Executor reportSendCompleteExecutor,
181-
SendReportPredicate sendReportPredicate) {
181+
SendReportPredicate sendReportPredicate,
182+
SendReportPredicate sendNativeReportPredicate) {
182183
if (!sendReportPredicate.shouldSendViaDataTransport()) {
183184
Logger.getLogger().d("Send via DataTransport disabled. Removing reports.");
184185
reportPersistence.deleteAllReports();
185186
return;
186187
}
187188
final List<CrashlyticsReport> reportsToSend = reportPersistence.loadFinalizedReports();
188189
for (CrashlyticsReport report : reportsToSend) {
190+
if (report.getNdkPayload() != null
191+
&& !sendNativeReportPredicate.shouldSendViaDataTransport()) {
192+
Logger.getLogger().d("Send native reports via DataTransport disabled. Removing reports.");
193+
// reportPersistence.deleteFinalizedReport(report.getNdkPayload());
194+
// TODO: Delete that thang
195+
continue;
196+
}
189197
reportsSender
190198
.sendReport(report.withOrganizationId(organizationId))
191199
.continueWith(reportSendCompleteExecutor, this::onReportSendComplete);

firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/persistence/CrashlyticsReportPersistence.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,7 @@ public void deleteFinalizedReport(String sessionId) {
168168
}
169169

170170
public void finalizeSessionWithNativeEvent(
171-
String sessionId, CrashlyticsReport crashlyticsReport, CrashlyticsReport.FilesPayload files) {
172-
crashlyticsReport = crashlyticsReport.withNdkPayload(files);
171+
String sessionId, CrashlyticsReport crashlyticsReport) {
173172
final File outputDirectory = prepareDirectory(nativeReportsDirectory);
174173
writeTextFile(new File(outputDirectory, sessionId), TRANSFORM.reportToJson(crashlyticsReport));
175174
}

0 commit comments

Comments
 (0)