diff options
author | Edwin Kempin <ekempin@google.com> | 2016-11-10 11:36:52 +0100 |
---|---|---|
committer | Edwin Kempin <ekempin@google.com> | 2016-11-10 11:38:13 +0100 |
commit | 55a07fc6a5a847d4e37cdaef3481e3d5a2acfbca (patch) | |
tree | 15eec32740bb17ed6d0c2aa0daf1d1af10975c27 | |
parent | a5a9fbd02c8b7032fcbf94eac801b715b03ed082 (diff) |
ProjectWatchIT: Test that watches of different users don't interfere
Change-Id: I4d2364193118893c075679f40d509f799f177915
Signed-off-by: Edwin Kempin <ekempin@google.com>
-rw-r--r-- | gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java index 594fdf8b2a..abd84ef29a 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java @@ -19,6 +19,7 @@ import static com.google.common.truth.Truth.assertThat; import com.google.gerrit.acceptance.AbstractDaemonTest; import com.google.gerrit.acceptance.NoHttpd; import com.google.gerrit.acceptance.PushOneCommit; +import com.google.gerrit.acceptance.TestAccount; import com.google.gerrit.extensions.client.ProjectWatchInfo; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.AccountProjectWatch.NotifyType; @@ -115,13 +116,14 @@ public class ProjectWatchIT extends AbstractDaemonTest { String otherWatchedProject = createProject("otherWatchedProject").get(); setApiUser(user); - // watch file in project + // watch file in project as user watch(watchedProject, "file:a.txt"); - // watch other project + // watch other project as user watch(otherWatchedProject, null); - // push a change to watched file -> should trigger email notification + // push a change to watched file -> should trigger email notification for + // user setApiUser(admin); TestRepository<InMemoryRepository> watchedRepo = cloneProject(new Project.NameKey(watchedProject), admin); @@ -130,18 +132,32 @@ public class ProjectWatchIT extends AbstractDaemonTest { .to("refs/for/master"); r.assertOkStatus(); + // assert email notification for user + List<Message> messages = sender.getMessages(); + assertThat(messages).hasSize(1); + Message m = messages.get(0); + assertThat(m.rcpt()).containsExactly(user.emailAddress); + assertThat(m.body()).contains("Change subject: TRIGGER\n"); + assertThat(m.body()).contains("Gerrit-PatchSet: 1\n"); + sender.clear(); + + // watch project as user2 + TestAccount user2 = accounts.create("user2", "user2@test.com", "User2"); + setApiUser(user2); + watch(watchedProject, null); + // push a change to non-watched file -> should not trigger email - // notification + // notification for user, only for user2 r = pushFactory.create(db, admin.getIdent(), watchedRepo, - "DONT_TRIGGER", "b.txt", "b1").to("refs/for/master"); + "TRIGGER_USER2", "b.txt", "b1").to("refs/for/master"); r.assertOkStatus(); // assert email notification - List<Message> messages = sender.getMessages(); + messages = sender.getMessages(); assertThat(messages).hasSize(1); - Message m = messages.get(0); - assertThat(m.rcpt()).containsExactly(user.emailAddress); - assertThat(m.body()).contains("Change subject: TRIGGER\n"); + m = messages.get(0); + assertThat(m.rcpt()).containsExactly(user2.emailAddress); + assertThat(m.body()).contains("Change subject: TRIGGER_USER2\n"); assertThat(m.body()).contains("Gerrit-PatchSet: 1\n"); } |