Don't send mails on publish change edits for WIP changes Bug: Issue 10397 Change-Id: I6b6710d17138f277ac118924355311d192710f5c
diff --git a/java/com/google/gerrit/server/edit/ChangeEditUtil.java b/java/com/google/gerrit/server/edit/ChangeEditUtil.java index 926e0d5..710916e 100644 --- a/java/com/google/gerrit/server/edit/ChangeEditUtil.java +++ b/java/com/google/gerrit/server/edit/ChangeEditUtil.java
@@ -169,7 +169,10 @@ RevCommit squashed = squashEdit(rw, oi, edit.getEditCommit(), basePatchSet); PatchSet.Id psId = ChangeUtil.nextPatchSetId(repo, change.currentPatchSetId()); - PatchSetInserter inserter = patchSetInserterFactory.create(notes, psId, squashed); + PatchSetInserter inserter = + patchSetInserterFactory + .create(notes, psId, squashed) + .setSendEmail(!change.isWorkInProgress()); StringBuilder message = new StringBuilder("Patch Set ").append(inserter.getPatchSetId().get()).append(": ");
diff --git a/javatests/com/google/gerrit/acceptance/edit/ChangeEditIT.java b/javatests/com/google/gerrit/acceptance/edit/ChangeEditIT.java index 2883d8c..e72bf06 100644 --- a/javatests/com/google/gerrit/acceptance/edit/ChangeEditIT.java +++ b/javatests/com/google/gerrit/acceptance/edit/ChangeEditIT.java
@@ -142,8 +142,11 @@ public void publishEdit() throws Exception { createArbitraryEditFor(changeId); + AddReviewerInput in = new AddReviewerInput(); + in.reviewer = user.email(); + gApi.changes().id(changeId).addReviewer(in); + PublishChangeEditInput publishInput = new PublishChangeEditInput(); - publishInput.notify = NotifyHandling.NONE; gApi.changes().id(changeId).edit().publish(publishInput); assertThat(getEdit(changeId)).isAbsent(); @@ -160,8 +163,10 @@ assertThat(info.messages).isNotEmpty(); assertThat(Iterables.getLast(info.messages).tag) .isEqualTo(ChangeMessagesUtil.TAG_UPLOADED_PATCH_SET); + assertThat(sender.getMessages()).isNotEmpty(); // Move the change to WIP, repeat, and verify. + sender.clear(); gApi.changes().id(changeId).setWorkInProgress(); createEmptyEditFor(changeId); gApi.changes().id(changeId).edit().modifyFile(FILE_NAME, RawInputUtil.create(CONTENT_NEW2)); @@ -170,6 +175,7 @@ assertThat(info.messages).isNotEmpty(); assertThat(Iterables.getLast(info.messages).tag) .isEqualTo(ChangeMessagesUtil.TAG_UPLOADED_WIP_PATCH_SET); + assertThat(sender.getMessages()).isEmpty(); } @Test