summaryrefslogtreecommitdiffstats
path: root/javatests/com/google/gerrit/acceptance/git/RefOperationValidationIT.java
diff options
context:
space:
mode:
Diffstat (limited to 'javatests/com/google/gerrit/acceptance/git/RefOperationValidationIT.java')
-rw-r--r--javatests/com/google/gerrit/acceptance/git/RefOperationValidationIT.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/javatests/com/google/gerrit/acceptance/git/RefOperationValidationIT.java b/javatests/com/google/gerrit/acceptance/git/RefOperationValidationIT.java
index 9c5afd23d5..3cf54f3299 100644
--- a/javatests/com/google/gerrit/acceptance/git/RefOperationValidationIT.java
+++ b/javatests/com/google/gerrit/acceptance/git/RefOperationValidationIT.java
@@ -15,7 +15,9 @@
package com.google.gerrit.acceptance.git;
import static com.google.common.truth.Truth.assertThat;
+import static com.google.gerrit.acceptance.GitUtil.assertPushOk;
import static com.google.gerrit.acceptance.GitUtil.deleteRef;
+import static com.google.gerrit.acceptance.GitUtil.pushHead;
import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.allow;
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
import static com.google.gerrit.testing.GerritJUnit.assertThrows;
@@ -25,6 +27,7 @@ import static org.eclipse.jgit.transport.ReceiveCommand.Type.DELETE;
import static org.eclipse.jgit.transport.ReceiveCommand.Type.UPDATE;
import static org.eclipse.jgit.transport.ReceiveCommand.Type.UPDATE_NONFASTFORWARD;
+import com.google.common.collect.ImmutableList;
import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.ExtensionRegistry;
import com.google.gerrit.acceptance.ExtensionRegistry.Registration;
@@ -79,6 +82,35 @@ public class RefOperationValidationIT extends AbstractDaemonTest {
}
@Test
+ public void infoMessagesAreReturnedOnPush() throws Exception {
+ String message1 = "for bar baz";
+ String message2 = "abc xyz";
+ try (Registration registration =
+ extensionRegistry
+ .newRegistration()
+ .add(
+ new RefOperationValidationListener() {
+ @Override
+ public List<ValidationMessage> onRefOperation(RefReceivedEvent refEvent)
+ throws ValidationException {
+ return ImmutableList.of(
+ new ValidationMessage(message1, ValidationMessage.Type.HINT),
+ new ValidationMessage(message2, ValidationMessage.Type.HINT));
+ }
+ })) {
+ PushResult r =
+ pushHead(
+ testRepo,
+ "refs/heads/new",
+ /* pushTags= */ false,
+ /* force= */ false,
+ /* pushOptions= */ ImmutableList.of());
+ assertPushOk(r, "refs/heads/new");
+ assertThat(r.getMessages()).contains(String.format("hint: %s\nhint: %s", message1, message2));
+ }
+ }
+
+ @Test
public void rejectRefCreation() throws Exception {
try (Registration registration = testValidator(CREATE)) {
RestApiException expected =