From 70dd2163af67ee60235e72f94cf68d75081e83d6 Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Mon, 4 Jul 2016 13:27:32 +0200 Subject: [PATCH] Account query: Support finding name part 'self' with default field The default query 'self' was only finding the current user, but not any account that matched self in any other way, e.g. via a name part. Change-Id: Ifaf88ebcbfffac31817e35bde71ebdeeae99c633 Signed-off-by: Edwin Kempin --- .../gerrit/server/query/account/AccountQueryBuilder.java | 5 ++--- .../server/query/account/AbstractQueryAccountsTest.java | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java index b10d4c57c0..20baf83166 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java @@ -125,11 +125,10 @@ public class AccountQueryBuilder extends QueryBuilder { @Override public Predicate defaultField(String query) throws QueryParseException { + List> preds = Lists.newArrayListWithCapacity(4); if ("self".equalsIgnoreCase(query)) { - return AccountPredicates.id(self()); + preds.add(AccountPredicates.id(self())); } - - List> preds = Lists.newArrayListWithCapacity(3); Integer id = Ints.tryParse(query); if (id != null) { preds.add(AccountPredicates.id(new Account.Id(id))); diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/account/AbstractQueryAccountsTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/account/AbstractQueryAccountsTest.java index 5ed8785228..1a3a914704 100644 --- a/gerrit-server/src/test/java/com/google/gerrit/server/query/account/AbstractQueryAccountsTest.java +++ b/gerrit-server/src/test/java/com/google/gerrit/server/query/account/AbstractQueryAccountsTest.java @@ -225,6 +225,7 @@ public abstract class AbstractQueryAccountsTest extends GerritServerTests { public void byName() throws Exception { AccountInfo user1 = newAccountWithFullName("jdoe", "John Doe"); AccountInfo user2 = newAccountWithFullName("jroe", "Jane Roe"); + AccountInfo user3 = newAccountWithFullName("user3", "Mr Selfish"); assertQuery("notexisting"); assertQuery("Not Existing"); @@ -236,11 +237,13 @@ public abstract class AbstractQueryAccountsTest extends GerritServerTests { assertQuery("Doe", user1); assertQuery("doe", user1); assertQuery("DOE", user1); + assertQuery("self", currentUserInfo, user3); assertQuery("name:John", user1); assertQuery("name:john", user1); assertQuery("name:Doe", user1); assertQuery("name:doe", user1); assertQuery("name:DOE", user1); + assertQuery("name:self", user3); assertQuery(quote(user2.name), user2); assertQuery("name:" + quote(user2.name), user2);