Add test for adding a reviewer with run-as header

Google-Bug-Id: b/446827309
Release-Notes: skip
Change-Id: Iace72d26294db0dca3859ae2987af53fbdd7944c
diff --git a/javatests/com/google/gerrit/acceptance/rest/account/ImpersonationIT.java b/javatests/com/google/gerrit/acceptance/rest/account/ImpersonationIT.java
index 50ab587..844b3e4 100644
--- a/javatests/com/google/gerrit/acceptance/rest/account/ImpersonationIT.java
+++ b/javatests/com/google/gerrit/acceptance/rest/account/ImpersonationIT.java
@@ -884,6 +884,36 @@
     assertThat(reviewerUpdate.realUpdatedBy._accountId).isEqualTo(realUser.id().get());
   }
 
+  @Test
+  public void addReviewerWithRunAs() throws Exception {
+    allowRunAs();
+    TestAccount realUser = admin;
+    TestAccount impersonatedUser = user;
+    TestAccount reviewer = admin2;
+    PushOneCommit.Result r = createChange();
+    assertThat(gApi.changes().id(r.getChangeId()).get(MESSAGES).messages).hasSize(1);
+
+    ReviewerInput in = new ReviewerInput();
+    in.reviewer = reviewer.email();
+
+    RestResponse res =
+        adminRestSession.postWithHeaders(
+            "/changes/" + r.getChangeId() + "/reviewers", in, runAsHeader(impersonatedUser.id()));
+    res.assertOK();
+    ReviewerResult result = newGson().fromJson(res.getEntityContent(), ReviewerResult.class);
+
+    assertThat(result.reviewers).hasSize(1);
+    assertThat(result.reviewers.get(0)._accountId).isEqualTo(reviewer.id().get());
+
+    Collection<ReviewerUpdateInfo> reviewerUpdates =
+        gApi.changes().id(r.getChangeId()).get().reviewerUpdates;
+    assertThat(reviewerUpdates).hasSize(1);
+    ReviewerUpdateInfo reviewerUpdate = reviewerUpdates.iterator().next();
+    assertThat(reviewerUpdate.updatedBy._accountId).isEqualTo(impersonatedUser.id().get());
+    assertThat(reviewerUpdate.reviewer._accountId).isEqualTo(reviewer.id().get());
+    assertThat(reviewerUpdate.realUpdatedBy._accountId).isEqualTo(realUser.id().get());
+  }
+
   private void assertLastChangeMessage(
       ChangeData changeData,
       String expectedMessage,