Merge "Adapt to change in Gerrit core"
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerApprovalIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerApprovalIT.java
index 7943ce9..48aeafb 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerApprovalIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerApprovalIT.java
@@ -32,9 +32,11 @@
import com.google.gerrit.extensions.common.LabelDefinitionInput;
import com.google.gerrit.plugins.codeowners.acceptance.AbstractCodeOwnersIT;
import com.google.gerrit.server.ChangeMessagesUtil;
+import com.google.gerrit.testing.FakeEmailSender.Message;
import com.google.inject.Inject;
import java.util.Collection;
import java.util.HashMap;
+import java.util.List;
import org.junit.Test;
/** Acceptance test for {@code com.google.gerrit.plugins.codeowners.backend.OnCodeOwnerApproval}. */
@@ -1094,4 +1096,38 @@
assertThat(Iterables.getLast(messages).message).isEqualTo("Patch Set 1: Code-Review-2");
}
+
+ @Test
+ public void extendedChangeMessageIsIncludedInEmailNotification() throws Exception {
+ codeOwnerConfigOperations
+ .newCodeOwnerConfig()
+ .project(project)
+ .branch("master")
+ .folderPath("/foo/")
+ .addCodeOwnerEmail(user.email())
+ .create();
+
+ String path = "foo/bar.baz";
+ String changeId = createChange("Test Change", path, "file content").getChangeId();
+
+ // Do the voting as a different user to trigger an email notification (if the only recipient is
+ // also the sender the email is omitted).
+ requestScopeOperations.setApiUser(user.id());
+
+ sender.clear();
+
+ recommend(changeId);
+
+ List<Message> messages = sender.getMessages();
+ assertThat(messages).hasSize(1);
+ Message m = messages.get(0);
+ assertThat(m.body())
+ .contains(
+ String.format(
+ "Patch Set 1: Code-Review+1\n\n"
+ + "By voting Code-Review+1 the following files are now code-owner approved by"
+ + " %s <%s>:\n"
+ + "* %s\n",
+ user.fullName(), user.email(), path));
+ }
}
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerOverrrideIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerOverrrideIT.java
index b95cf42..b03ef96 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerOverrrideIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerOverrrideIT.java
@@ -32,9 +32,11 @@
import com.google.gerrit.extensions.common.LabelDefinitionInput;
import com.google.gerrit.plugins.codeowners.acceptance.AbstractCodeOwnersIT;
import com.google.gerrit.server.ChangeMessagesUtil;
+import com.google.gerrit.testing.FakeEmailSender.Message;
import com.google.inject.Inject;
import java.util.Collection;
import java.util.HashMap;
+import java.util.List;
import java.util.regex.Pattern;
import org.junit.Test;
@@ -642,4 +644,30 @@
assertThat(Iterables.getLast(messages).message).isEqualTo("Patch Set 1: Owners-Override-2");
}
+
+ @Test
+ @GerritConfig(name = "plugin.code-owners.overrideApproval", value = "Owners-Override+1")
+ public void extendedChangeMessageIsIncludedInEmailNotification() throws Exception {
+ createOwnersOverrideLabel();
+
+ String changeId = createChange().getChangeId();
+
+ // Do the voting as a different user to trigger an email notification (if the only recipient is
+ // also the sender the email is omitted).
+ requestScopeOperations.setApiUser(user.id());
+
+ sender.clear();
+
+ gApi.changes().id(changeId).current().review(new ReviewInput().label("Owners-Override", 1));
+
+ List<Message> messages = sender.getMessages();
+ assertThat(messages).hasSize(1);
+ Message m = messages.get(0);
+ assertThat(m.body())
+ .contains(
+ String.format(
+ "Patch Set 1: Owners-Override+1\n\n"
+ + "By voting Owners-Override+1 the code-owners submit requirement is overridden by %s <%s>\n",
+ user.fullName(), user.email()));
+ }
}