summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdwin Kempin <ekempin@google.com>2016-11-10 11:36:52 +0100
committerEdwin Kempin <ekempin@google.com>2016-11-10 11:38:13 +0100
commit55a07fc6a5a847d4e37cdaef3481e3d5a2acfbca (patch)
tree15eec32740bb17ed6d0c2aa0daf1d1af10975c27
parenta5a9fbd02c8b7032fcbf94eac801b715b03ed082 (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.java34
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");
}