From d4f2649f15e99cf4c4c071650b3d95f90896daee Mon Sep 17 00:00:00 2001 From: David Ostrovsky Date: Thu, 17 Dec 2015 08:50:22 +0100 Subject: [PATCH] Add unit test for voting on behalf of another user Change-Id: I48cad8789d31436f6b2488c822755953d9a708be --- .../acceptance/api/change/ChangeIT.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java index 617315c284..4bc1f05e9e 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java @@ -21,6 +21,7 @@ import static com.google.gerrit.extensions.client.ReviewerState.CC; import static com.google.gerrit.extensions.client.ReviewerState.REVIEWER; import static com.google.gerrit.server.group.SystemGroupBackend.ANONYMOUS_USERS; import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS; +import static com.google.gerrit.server.group.SystemGroupBackend.CHANGE_OWNER; import static com.google.gerrit.server.project.Util.blockLabel; import static com.google.gerrit.server.project.Util.category; import static com.google.gerrit.server.project.Util.value; @@ -240,6 +241,37 @@ public class ChangeIT extends AbstractDaemonTest { assertThat(committer.email).isEqualTo(admin.email); } + @Test + public void voteOnBehalfOf() throws Exception { + ProjectConfig cfg = projectCache.checkedGet(project).getConfig(); + LabelType codeReviewType = Util.codeReview(); + String forCodeReviewAs = Permission.forLabelAs(codeReviewType.getName()); + String heads = "refs/heads/*"; + AccountGroup.UUID owner = + SystemGroupBackend.getGroup(CHANGE_OWNER).getUUID(); + Util.allow(cfg, forCodeReviewAs, -1, 1, owner, heads); + saveProjectConfig(project, cfg); + + PushOneCommit.Result r = createChange(); + RevisionApi revision = gApi.changes() + .id(r.getChangeId()) + .current(); + + ReviewInput in = ReviewInput.recommend(); + in.onBehalfOf = user.id.toString(); + revision.review(in); + + ChangeInfo c = gApi.changes() + .id(r.getChangeId()) + .get(); + + LabelInfo codeReview = c.labels.get("Code-Review"); + assertThat(codeReview.all).hasSize(1); + ApprovalInfo approval = codeReview.all.get(0); + assertThat(approval._accountId).isEqualTo(user.id.get()); + assertThat(approval.value).isEqualTo(1); + } + @Test(expected = ResourceConflictException.class) public void rebaseUpToDateChange() throws Exception { PushOneCommit.Result r = createChange();