Account index: Make query matches case insensitive
Change-Id: I5b18c6eac289b7c7026eb66ec18ed9dc5b7a6cb3 Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
@@ -77,7 +77,7 @@ public class AccountField {
|
|||||||
// Additional values not currently added by getPersonParts.
|
// Additional values not currently added by getPersonParts.
|
||||||
// TODO(dborowitz): Move to getPersonParts and remove this hack.
|
// TODO(dborowitz): Move to getPersonParts and remove this hack.
|
||||||
if (fullName != null) {
|
if (fullName != null) {
|
||||||
parts.add(fullName);
|
parts.add(fullName.toLowerCase());
|
||||||
}
|
}
|
||||||
return parts;
|
return parts;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,12 +35,12 @@ public class AccountPredicates {
|
|||||||
|
|
||||||
static Predicate<AccountState> email(String email) {
|
static Predicate<AccountState> email(String email) {
|
||||||
return new AccountPredicate(AccountField.EMAIL,
|
return new AccountPredicate(AccountField.EMAIL,
|
||||||
AccountQueryBuilder.FIELD_EMAIL, email);
|
AccountQueryBuilder.FIELD_EMAIL, email.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
static Predicate<AccountState> equalsName(String name) {
|
static Predicate<AccountState> equalsName(String name) {
|
||||||
return new AccountPredicate(AccountField.NAME_PART,
|
return new AccountPredicate(AccountField.NAME_PART,
|
||||||
AccountQueryBuilder.FIELD_NAME, name);
|
AccountQueryBuilder.FIELD_NAME, name.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Predicate<AccountState> isActive() {
|
public static Predicate<AccountState> isActive() {
|
||||||
@@ -53,7 +53,7 @@ public class AccountPredicates {
|
|||||||
|
|
||||||
static Predicate<AccountState> username(String username) {
|
static Predicate<AccountState> username(String username) {
|
||||||
return new AccountPredicate(AccountField.USERNAME,
|
return new AccountPredicate(AccountField.USERNAME,
|
||||||
AccountQueryBuilder.FIELD_USERNAME, username);
|
AccountQueryBuilder.FIELD_USERNAME, username.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
static class AccountPredicate extends IndexPredicate<AccountState> {
|
static class AccountPredicate extends IndexPredicate<AccountState> {
|
||||||
|
|||||||
@@ -171,6 +171,9 @@ public abstract class AbstractQueryAccountsTest extends GerritServerTests {
|
|||||||
AccountInfo user4 =
|
AccountInfo user4 =
|
||||||
newAccountWithEmail("user4", prefix + "user4@example.com");
|
newAccountWithEmail("user4", prefix + "user4@example.com");
|
||||||
|
|
||||||
|
AccountInfo user5 =
|
||||||
|
newAccountWithEmail("user5", name("user5MixedCase@example.com"));
|
||||||
|
|
||||||
assertQuery("notexisting@test.com");
|
assertQuery("notexisting@test.com");
|
||||||
|
|
||||||
assertQuery(currentUserInfo.email, currentUserInfo);
|
assertQuery(currentUserInfo.email, currentUserInfo);
|
||||||
@@ -182,6 +185,10 @@ public abstract class AbstractQueryAccountsTest extends GerritServerTests {
|
|||||||
assertQuery(domain, user2, user3);
|
assertQuery(domain, user2, user3);
|
||||||
|
|
||||||
assertQuery("email:" + prefix, user4);
|
assertQuery("email:" + prefix, user4);
|
||||||
|
|
||||||
|
assertQuery(user5.email, user5);
|
||||||
|
assertQuery("email:" + user5.email, user5);
|
||||||
|
assertQuery("email:" + user5.email.toUpperCase(), user5);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -193,6 +200,7 @@ public abstract class AbstractQueryAccountsTest extends GerritServerTests {
|
|||||||
|
|
||||||
assertQuery(user1.username, user1);
|
assertQuery(user1.username, user1);
|
||||||
assertQuery("username:" + user1.username, user1);
|
assertQuery("username:" + user1.username, user1);
|
||||||
|
assertQuery("username:" + user1.username.toUpperCase(), user1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -224,8 +232,14 @@ public abstract class AbstractQueryAccountsTest extends GerritServerTests {
|
|||||||
assertQuery("name:" + quote(user1.name), user1);
|
assertQuery("name:" + quote(user1.name), user1);
|
||||||
assertQuery("John", user1);
|
assertQuery("John", user1);
|
||||||
assertQuery("john", user1);
|
assertQuery("john", user1);
|
||||||
|
assertQuery("Doe", user1);
|
||||||
|
assertQuery("doe", user1);
|
||||||
|
assertQuery("DOE", user1);
|
||||||
assertQuery("name:John", user1);
|
assertQuery("name:John", user1);
|
||||||
assertQuery("name:john", user1);
|
assertQuery("name:john", user1);
|
||||||
|
assertQuery("name:Doe", user1);
|
||||||
|
assertQuery("name:doe", user1);
|
||||||
|
assertQuery("name:DOE", user1);
|
||||||
|
|
||||||
assertQuery(quote(user2.name), user2);
|
assertQuery(quote(user2.name), user2);
|
||||||
assertQuery("name:" + quote(user2.name), user2);
|
assertQuery("name:" + quote(user2.name), user2);
|
||||||
|
|||||||
Reference in New Issue
Block a user