Skip to content

Commit 67bd46d

Browse files
authored
Pass trigger header on commit feedback call (#4632)
* Pass trigger header on commit feedback call * Remove unnecessary parenthesis
1 parent b7e52ae commit 67bd46d

File tree

4 files changed

+50
-49
lines changed

4 files changed

+50
-49
lines changed

firebase-appdistribution/src/main/java/com/google/firebase/appdistribution/impl/FeedbackSender.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ Task<Void> sendFeedback(
4242
@Nullable Uri screenshotUri,
4343
FeedbackTrigger trigger) {
4444
return testerApiClient
45-
.createFeedback(releaseName, feedbackText, trigger)
45+
.createFeedback(releaseName, feedbackText)
4646
.onSuccessTask(
4747
lightweightExecutor, feedbackName -> attachScreenshot(feedbackName, screenshotUri))
48-
.onSuccessTask(lightweightExecutor, testerApiClient::commitFeedback);
48+
.onSuccessTask(
49+
lightweightExecutor,
50+
feedbackName -> testerApiClient.commitFeedback(feedbackName, trigger));
4951
}
5052

5153
private Task<String> attachScreenshot(String feedbackName, @Nullable Uri screenshotUri) {

firebase-appdistribution/src/main/java/com/google/firebase/appdistribution/impl/FirebaseAppDistributionTesterApiClient.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -139,18 +139,14 @@ private String findRelease(String fid, String token, String binaryIdParam, Strin
139139

140140
/** Creates a new feedback from the given text, and returns the feedback name. */
141141
@NonNull
142-
Task<String> createFeedback(
143-
String testerReleaseName, String feedbackText, FeedbackTrigger trigger) {
142+
Task<String> createFeedback(String testerReleaseName, String feedbackText) {
144143
return runWithFidAndToken(
145144
(unused, token) -> {
146145
LogWrapper.i(TAG, "Creating feedback for release: " + testerReleaseName);
147146
String path = String.format("v1alpha/%s/feedbackReports", testerReleaseName);
148147
String requestBody = buildCreateFeedbackBody(feedbackText).toString();
149-
Map<String, String> extraHeaders = new HashMap<>();
150-
extraHeaders.put(X_APP_DISTRO_FEEDBACK_TRIGGER, trigger.toString());
151148
JSONObject responseBody =
152-
testerApiHttpClient.makePostRequest(
153-
CREATE_FEEDBACK_TAG, path, token, requestBody, extraHeaders);
149+
testerApiHttpClient.makePostRequest(CREATE_FEEDBACK_TAG, path, token, requestBody);
154150
return parseJsonFieldFromResponse(responseBody, "name");
155151
});
156152
}
@@ -174,13 +170,15 @@ Task<String> attachScreenshot(String feedbackName, Uri screenshotUri) {
174170

175171
/** Commits the feedback with the given name. */
176172
@NonNull
177-
Task<Void> commitFeedback(String feedbackName) {
173+
Task<Void> commitFeedback(String feedbackName, FeedbackTrigger trigger) {
178174
return runWithFidAndToken(
179175
(unused, token) -> {
180176
LogWrapper.i(TAG, "Committing feedback: " + feedbackName);
181177
String path = "v1alpha/" + feedbackName + ":commit";
178+
Map<String, String> extraHeaders = new HashMap<>();
179+
extraHeaders.put(X_APP_DISTRO_FEEDBACK_TRIGGER, trigger.toString());
182180
testerApiHttpClient.makePostRequest(
183-
COMMIT_FEEDBACK_TAG, path, token, /* requestBody= */ "");
181+
COMMIT_FEEDBACK_TAG, path, token, /* requestBody= */ "", extraHeaders);
184182
return null;
185183
});
186184
}

firebase-appdistribution/src/test/java/com/google/firebase/appdistribution/impl/FeedbackSenderTest.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -59,48 +59,45 @@ public void setup() {
5959

6060
@Test
6161
public void sendFeedback_success() throws Exception {
62-
when(mockTesterApiClient.createFeedback(
63-
TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, FeedbackTrigger.CUSTOM))
62+
when(mockTesterApiClient.createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT))
6463
.thenReturn(Tasks.forResult(TEST_FEEDBACK_NAME));
6564
when(mockTesterApiClient.attachScreenshot(TEST_FEEDBACK_NAME, TEST_SCREENSHOT_URI))
6665
.thenReturn(Tasks.forResult(TEST_FEEDBACK_NAME));
67-
when(mockTesterApiClient.commitFeedback(TEST_FEEDBACK_NAME)).thenReturn(Tasks.forResult(null));
66+
when(mockTesterApiClient.commitFeedback(TEST_FEEDBACK_NAME, FeedbackTrigger.CUSTOM))
67+
.thenReturn(Tasks.forResult(null));
6868

6969
Task<Void> task =
7070
feedbackSender.sendFeedback(
7171
TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, TEST_SCREENSHOT_URI, FeedbackTrigger.CUSTOM);
7272
TestUtils.awaitTask(task);
7373

74-
verify(mockTesterApiClient)
75-
.createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, FeedbackTrigger.CUSTOM);
74+
verify(mockTesterApiClient).createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT);
7675
verify(mockTesterApiClient).attachScreenshot(TEST_FEEDBACK_NAME, TEST_SCREENSHOT_URI);
77-
verify(mockTesterApiClient).commitFeedback(TEST_FEEDBACK_NAME);
76+
verify(mockTesterApiClient).commitFeedback(TEST_FEEDBACK_NAME, FeedbackTrigger.CUSTOM);
7877
}
7978

8079
@Test
8180
public void sendFeedback_withoutScreenshot_success() throws Exception {
82-
when(mockTesterApiClient.createFeedback(
83-
TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, FeedbackTrigger.CUSTOM))
81+
when(mockTesterApiClient.createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT))
8482
.thenReturn(Tasks.forResult(TEST_FEEDBACK_NAME));
85-
when(mockTesterApiClient.commitFeedback(TEST_FEEDBACK_NAME)).thenReturn(Tasks.forResult(null));
83+
when(mockTesterApiClient.commitFeedback(TEST_FEEDBACK_NAME, FeedbackTrigger.CUSTOM))
84+
.thenReturn(Tasks.forResult(null));
8685

8786
Task<Void> task =
8887
feedbackSender.sendFeedback(
8988
TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, /* screenshot= */ null, FeedbackTrigger.CUSTOM);
9089
TestUtils.awaitTask(task);
9190

92-
verify(mockTesterApiClient)
93-
.createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, FeedbackTrigger.CUSTOM);
94-
verify(mockTesterApiClient).commitFeedback(TEST_FEEDBACK_NAME);
91+
verify(mockTesterApiClient).createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT);
92+
verify(mockTesterApiClient).commitFeedback(TEST_FEEDBACK_NAME, FeedbackTrigger.CUSTOM);
9593
verify(mockTesterApiClient, never()).attachScreenshot(any(), any());
9694
}
9795

9896
@Test
9997
public void sendFeedback_createFeedbackFails_failsTask() {
10098
FirebaseAppDistributionException cause =
10199
new FirebaseAppDistributionException("test ex", Status.AUTHENTICATION_FAILURE);
102-
when(mockTesterApiClient.createFeedback(
103-
TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, FeedbackTrigger.CUSTOM))
100+
when(mockTesterApiClient.createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT))
104101
.thenReturn(Tasks.forException(cause));
105102

106103
Task<Void> task =
@@ -112,8 +109,7 @@ public void sendFeedback_createFeedbackFails_failsTask() {
112109

113110
@Test
114111
public void sendFeedback_attachScreenshotFails_failsTask() {
115-
when(mockTesterApiClient.createFeedback(
116-
TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, FeedbackTrigger.CUSTOM))
112+
when(mockTesterApiClient.createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT))
117113
.thenReturn(Tasks.forResult(TEST_FEEDBACK_NAME));
118114
FirebaseAppDistributionException cause =
119115
new FirebaseAppDistributionException("test ex", Status.AUTHENTICATION_FAILURE);
@@ -129,14 +125,13 @@ public void sendFeedback_attachScreenshotFails_failsTask() {
129125

130126
@Test
131127
public void sendFeedback_commitFeedbackFails_failsTask() {
132-
when(mockTesterApiClient.createFeedback(
133-
TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT, FeedbackTrigger.CUSTOM))
128+
when(mockTesterApiClient.createFeedback(TEST_RELEASE_NAME, TEST_FEEDBACK_TEXT))
134129
.thenReturn(Tasks.forResult(TEST_FEEDBACK_NAME));
135130
when(mockTesterApiClient.attachScreenshot(TEST_FEEDBACK_NAME, TEST_SCREENSHOT_URI))
136131
.thenReturn(Tasks.forResult(TEST_FEEDBACK_NAME));
137132
FirebaseAppDistributionException cause =
138133
new FirebaseAppDistributionException("test ex", Status.AUTHENTICATION_FAILURE);
139-
when(mockTesterApiClient.commitFeedback(TEST_FEEDBACK_NAME))
134+
when(mockTesterApiClient.commitFeedback(TEST_FEEDBACK_NAME, FeedbackTrigger.CUSTOM))
140135
.thenReturn(Tasks.forException(cause));
141136

142137
Task<Void> task =

firebase-appdistribution/src/test/java/com/google/firebase/appdistribution/impl/FirebaseAppDistributionTesterApiClientTest.java

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -305,15 +305,12 @@ public void findReleaseUsingIasArtifactId_whenClientThrowsException_failsTask()
305305
@Test
306306
public void createFeedback_whenResponseSuccessful_returnsFeedbackName() throws Exception {
307307
String postBody = String.format("{\"text\":\"%s\"}", FEEDBACK_TEXT);
308-
Map<String, String> extraHeaders = new HashMap<>();
309-
extraHeaders.put("X-APP-DISTRO-FEEDBACK-TRIGGER", "custom");
310308
when(mockTesterApiHttpClient.makePostRequest(
311-
any(), eq(CREATE_FEEDBACK_PATH), eq(TEST_AUTH_TOKEN), eq(postBody), eq(extraHeaders)))
309+
any(), eq(CREATE_FEEDBACK_PATH), eq(TEST_AUTH_TOKEN), eq(postBody)))
312310
.thenReturn(buildFeedbackJson());
313311

314312
Task<String> task =
315-
firebaseAppDistributionTesterApiClient.createFeedback(
316-
RELEASE_NAME, FEEDBACK_TEXT, FeedbackTrigger.CUSTOM);
313+
firebaseAppDistributionTesterApiClient.createFeedback(RELEASE_NAME, FEEDBACK_TEXT);
317314
String result = awaitTask(task);
318315

319316
assertThat(result).isEqualTo(FEEDBACK_NAME);
@@ -325,8 +322,7 @@ public void createFeedback_getFidError_throwsError() {
325322
when(mockFirebaseInstallations.getId()).thenReturn(Tasks.forException(expectedException));
326323

327324
Task<String> task =
328-
firebaseAppDistributionTesterApiClient.createFeedback(
329-
RELEASE_NAME, FEEDBACK_TEXT, FeedbackTrigger.CUSTOM);
325+
firebaseAppDistributionTesterApiClient.createFeedback(RELEASE_NAME, FEEDBACK_TEXT);
330326

331327
awaitTaskFailure(task, Status.UNKNOWN, "test ex", expectedException);
332328
}
@@ -338,43 +334,47 @@ public void createFeedback_getFisAuthTokenError_throwsError() {
338334
.thenReturn(Tasks.forException(expectedException));
339335

340336
Task<String> task =
341-
firebaseAppDistributionTesterApiClient.createFeedback(
342-
RELEASE_NAME, FEEDBACK_TEXT, FeedbackTrigger.CUSTOM);
337+
firebaseAppDistributionTesterApiClient.createFeedback(RELEASE_NAME, FEEDBACK_TEXT);
343338

344339
awaitTaskFailure(task, Status.UNKNOWN, "test ex", expectedException);
345340
}
346341

347342
@Test
348343
public void createFeedback_whenClientThrowsException_failsTask() throws Exception {
349344
String postBody = String.format("{\"text\":\"%s\"}", FEEDBACK_TEXT);
350-
Map<String, String> extraHeaders = new HashMap<>();
351-
extraHeaders.put("X-APP-DISTRO-FEEDBACK-TRIGGER", "custom");
345+
352346
when(mockTesterApiHttpClient.makePostRequest(
353-
any(), eq(CREATE_FEEDBACK_PATH), eq(TEST_AUTH_TOKEN), eq(postBody), eq(extraHeaders)))
347+
any(), eq(CREATE_FEEDBACK_PATH), eq(TEST_AUTH_TOKEN), eq(postBody)))
354348
.thenThrow(new FirebaseAppDistributionException("test ex", Status.UNKNOWN));
355349

356350
Task<String> task =
357-
firebaseAppDistributionTesterApiClient.createFeedback(
358-
RELEASE_NAME, FEEDBACK_TEXT, FeedbackTrigger.CUSTOM);
351+
firebaseAppDistributionTesterApiClient.createFeedback(RELEASE_NAME, FEEDBACK_TEXT);
359352

360353
awaitTaskFailure(task, Status.UNKNOWN, "test ex");
361354
}
362355

363356
@Test
364357
public void commitFeedback_whenResponseSuccessful_makesPostRequest() throws Exception {
365-
Task<Void> task = firebaseAppDistributionTesterApiClient.commitFeedback(FEEDBACK_NAME);
358+
Task<Void> task =
359+
firebaseAppDistributionTesterApiClient.commitFeedback(
360+
FEEDBACK_NAME, FeedbackTrigger.CUSTOM);
366361
awaitTask(task);
367362

363+
Map<String, String> extraHeaders = new HashMap<>();
364+
extraHeaders.put("X-APP-DISTRO-FEEDBACK-TRIGGER", "custom");
368365
verify(mockTesterApiHttpClient)
369-
.makePostRequest(any(), eq(COMMIT_FEEDBACK_PATH), eq(TEST_AUTH_TOKEN), eq(""));
366+
.makePostRequest(
367+
any(), eq(COMMIT_FEEDBACK_PATH), eq(TEST_AUTH_TOKEN), eq(""), eq(extraHeaders));
370368
}
371369

372370
@Test
373371
public void commitFeedback_getFidError_throwsError() {
374372
Exception expectedException = new Exception("test ex");
375373
when(mockFirebaseInstallations.getId()).thenReturn(Tasks.forException(expectedException));
376374

377-
Task<Void> task = firebaseAppDistributionTesterApiClient.commitFeedback(FEEDBACK_NAME);
375+
Task<Void> task =
376+
firebaseAppDistributionTesterApiClient.commitFeedback(
377+
FEEDBACK_NAME, FeedbackTrigger.CUSTOM);
378378

379379
awaitTaskFailure(task, Status.UNKNOWN, "test ex", expectedException);
380380
}
@@ -385,18 +385,24 @@ public void commitFeedback_getFisAuthTokenError_throwsError() {
385385
when(mockFirebaseInstallations.getToken(false))
386386
.thenReturn(Tasks.forException(expectedException));
387387

388-
Task<Void> task = firebaseAppDistributionTesterApiClient.commitFeedback(FEEDBACK_NAME);
388+
Task<Void> task =
389+
firebaseAppDistributionTesterApiClient.commitFeedback(
390+
FEEDBACK_NAME, FeedbackTrigger.CUSTOM);
389391

390392
awaitTaskFailure(task, Status.UNKNOWN, "test ex", expectedException);
391393
}
392394

393395
@Test
394396
public void commitFeedback_whenClientThrowsException_failsTask() throws Exception {
397+
Map<String, String> extraHeaders = new HashMap<>();
398+
extraHeaders.put("X-APP-DISTRO-FEEDBACK-TRIGGER", "custom");
395399
when(mockTesterApiHttpClient.makePostRequest(
396-
any(), eq(COMMIT_FEEDBACK_PATH), eq(TEST_AUTH_TOKEN), eq("")))
400+
any(), eq(COMMIT_FEEDBACK_PATH), eq(TEST_AUTH_TOKEN), eq(""), eq(extraHeaders)))
397401
.thenThrow(new FirebaseAppDistributionException("test ex", Status.UNKNOWN));
398402

399-
Task<Void> task = firebaseAppDistributionTesterApiClient.commitFeedback(FEEDBACK_NAME);
403+
Task<Void> task =
404+
firebaseAppDistributionTesterApiClient.commitFeedback(
405+
FEEDBACK_NAME, FeedbackTrigger.CUSTOM);
400406

401407
awaitTaskFailure(task, Status.UNKNOWN, "test ex");
402408
}

0 commit comments

Comments
 (0)