Merge "Add tests for notify_details"
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeReviewersIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeReviewersIT.java
index 846c580..0809bf2 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeReviewersIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeReviewersIT.java
@@ -23,12 +23,17 @@
import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
import static javax.servlet.http.HttpServletResponse.SC_OK;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.PushOneCommit;
import com.google.gerrit.acceptance.RestResponse;
import com.google.gerrit.acceptance.TestAccount;
import com.google.gerrit.extensions.api.changes.AddReviewerInput;
import com.google.gerrit.extensions.api.changes.AddReviewerResult;
+import com.google.gerrit.extensions.api.changes.NotifyHandling;
+import com.google.gerrit.extensions.api.changes.NotifyInfo;
+import com.google.gerrit.extensions.api.changes.RecipientType;
import com.google.gerrit.extensions.api.changes.ReviewInput;
import com.google.gerrit.extensions.api.changes.ReviewResult;
import com.google.gerrit.extensions.client.ReviewerState;
@@ -681,6 +686,40 @@
assertThat(changeLabels.get(crLabel).all).isNull();
}
+ @Test
+ public void notifyDetailsWorkOnPostReview() throws Exception {
+ PushOneCommit.Result r = createChange();
+ TestAccount userToNotify = createAccounts(1, "notify-details-post-review").get(0);
+
+ ReviewInput reviewInput = new ReviewInput();
+ reviewInput.reviewer(user.email, ReviewerState.REVIEWER, true);
+ reviewInput.notify = NotifyHandling.NONE;
+ reviewInput.notifyDetails =
+ ImmutableMap.of(RecipientType.TO, new NotifyInfo(ImmutableList.of(userToNotify.email)));
+
+ sender.clear();
+ gApi.changes().id(r.getChangeId()).current().review(reviewInput);
+ assertThat(sender.getMessages()).hasSize(1);
+ assertThat(sender.getMessages().get(0).rcpt()).containsExactly(userToNotify.emailAddress);
+ }
+
+ @Test
+ public void notifyDetailsWorkOnPostReviewers() throws Exception {
+ PushOneCommit.Result r = createChange();
+ TestAccount userToNotify = createAccounts(1, "notify-details-post-reviewers").get(0);
+
+ AddReviewerInput addReviewer = new AddReviewerInput();
+ addReviewer.reviewer = user.email;
+ addReviewer.notify = NotifyHandling.NONE;
+ addReviewer.notifyDetails =
+ ImmutableMap.of(RecipientType.TO, new NotifyInfo(ImmutableList.of(userToNotify.email)));
+
+ sender.clear();
+ gApi.changes().id(r.getChangeId()).addReviewer(addReviewer);
+ assertThat(sender.getMessages()).hasSize(1);
+ assertThat(sender.getMessages().get(0).rcpt()).containsExactly(userToNotify.emailAddress);
+ }
+
private AddReviewerResult addReviewer(String changeId, String reviewer) throws Exception {
return addReviewer(changeId, reviewer, SC_OK);
}