diff options
Diffstat (limited to 'javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java')
-rw-r--r-- | javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java index 0ebbdc9fe0..bd2b3596d5 100644 --- a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java +++ b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java @@ -1710,16 +1710,43 @@ public abstract class AbstractQueryChangesTest extends GerritServerTests { assertQuery(q + " visibleto:self", change2, change1); // Second user cannot see first user's private change - Account.Id user2 = createAccount("anotheruser"); + Account.Id user2 = createAccount("user2"); assertQuery(q + " visibleto:" + user2.get(), change1); - assertQuery(q + " visibleto:anotheruser", change1); + assertQuery(q + " visibleto:user2", change1); String g1 = createGroup("group1", "Administrators"); - gApi.groups().id(g1).addMembers("anotheruser"); + gApi.groups().id(g1).addMembers("user2"); assertQuery(q + " visibleto:" + g1, change1); requestContext.setContext(newRequestContext(user2)); assertQuery("is:visible", change1); + + Account.Id user3 = createAccount("user3"); + + // Explicitly authenticate user2 and user3 so that display name gets set + AuthRequest authRequest = AuthRequest.forUser("user2"); + authRequest.setDisplayName("Another User"); + authRequest.setEmailAddress("user2@example.com"); + accountManager.authenticate(authRequest); + authRequest = AuthRequest.forUser("user3"); + authRequest.setDisplayName("Another User"); + authRequest.setEmailAddress("user3@example.com"); + accountManager.authenticate(authRequest); + + // Switch to user3 + requestContext.setContext(newRequestContext(user3)); + Change change3 = insert(repo, newChange(repo), user3); + Change change4 = insert(repo, newChangePrivate(repo), user3); + + // User3 can see both their changes and the first user's change + assertQuery(q + " visibleto:" + user3.get(), change4, change3, change1); + + // User2 cannot see user3's private change + assertQuery(q + " visibleto:" + user2.get(), change3, change1); + + // Query as user3 by display name matching user2 and user3; bad request + assertFailingQuery( + q + " visibleto:\"Another User\"", "\"Another User\" resolves to multiple accounts"); } @Test |