summaryrefslogtreecommitdiffstats
path: root/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java')
-rw-r--r--gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java32
1 files changed, 30 insertions, 2 deletions
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java
index 42463c7d20..c89ad5e492 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractSubmoduleSubscription.java
@@ -15,6 +15,7 @@
package com.google.gerrit.acceptance.git;
import static com.google.common.truth.Truth.assertThat;
+import static java.util.stream.Collectors.toList;
import com.google.common.collect.Iterables;
import com.google.gerrit.acceptance.AbstractDaemonTest;
@@ -25,7 +26,9 @@ import com.google.gerrit.extensions.client.SubmitType;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.server.git.ProjectConfig;
+import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.StreamSupport;
import org.eclipse.jgit.junit.TestRepository;
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.ObjectId;
@@ -87,8 +90,8 @@ public abstract class AbstractSubmoduleSubscription extends AbstractDaemonTest {
SubmitType submitType)
throws Exception {
Project.NameKey project = createProject(name, parent, createEmptyCommit, submitType);
- grant(Permission.PUSH, project, "refs/heads/*");
- grant(Permission.SUBMIT, project, "refs/for/refs/heads/*");
+ grant(project, "refs/heads/*", Permission.PUSH);
+ grant(project, "refs/for/refs/heads/*", Permission.SUBMIT);
return cloneProject(project);
}
@@ -141,6 +144,31 @@ public abstract class AbstractSubmoduleSubscription extends AbstractDaemonTest {
return pushChangeTo(repo, "refs/heads/" + branch, "some change", "");
}
+ protected ObjectId pushChangesTo(TestRepository<?> repo, String branch, int numChanges)
+ throws Exception {
+ for (int i = 0; i < numChanges; i++) {
+ repo.branch("HEAD")
+ .commit()
+ .insertChangeId()
+ .message("Message " + i)
+ .add(name("file"), "content" + i)
+ .create();
+ }
+ String remoteBranch = "refs/heads/" + branch;
+ Iterable<PushResult> res =
+ repo.git()
+ .push()
+ .setRemote("origin")
+ .setRefSpecs(new RefSpec("HEAD:" + remoteBranch))
+ .call();
+ List<Status> status =
+ StreamSupport.stream(res.spliterator(), false)
+ .map(r -> r.getRemoteUpdate(remoteBranch).getStatus())
+ .collect(toList());
+ assertThat(status).containsExactly(Status.OK);
+ return Iterables.getLast(res).getRemoteUpdate(remoteBranch).getNewObjectId();
+ }
+
protected void allowSubmoduleSubscription(
String submodule, String subBranch, String superproject, String superBranch, boolean match)
throws Exception {