Merge changes Icf50c0be,I90bcd7d4
* changes: Ensure that system groups can be retrieved from the index during tests Correct group lookup by name from the index
This commit is contained in:
		@@ -342,6 +342,20 @@ public abstract class AbstractDaemonTest {
 | 
			
		||||
    server.getTestInjector().injectMembers(this);
 | 
			
		||||
    Transport.register(inProcessProtocol);
 | 
			
		||||
    toClose = Collections.synchronizedList(new ArrayList<Repository>());
 | 
			
		||||
 | 
			
		||||
    // All groups which were added during the server start (e.g. in SchemaCreator) aren't contained
 | 
			
		||||
    // in the instance of the group index which is available here and in tests. There are two
 | 
			
		||||
    // reasons:
 | 
			
		||||
    // 1) No group index is available in SchemaCreator when using an in-memory database. (This could
 | 
			
		||||
    // be fixed by using the IndexManagerOnInit in InMemoryDatabase similar as BaseInit uses it.)
 | 
			
		||||
    // 2) During the on-init part of the server start, we use another instance of the index than
 | 
			
		||||
    // later on. As test indexes are non-permanent, closing an instance and opening another one
 | 
			
		||||
    // removes all indexed data.
 | 
			
		||||
    // As a workaround, we simply reindex all available groups here.
 | 
			
		||||
    for (AccountGroup group : groupCache.all()) {
 | 
			
		||||
      groupCache.evict(group);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    admin = accountCreator.admin();
 | 
			
		||||
    user = accountCreator.user();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -63,6 +63,12 @@ import org.junit.Test;
 | 
			
		||||
public class GroupsIT extends AbstractDaemonTest {
 | 
			
		||||
  @Inject @ServerInitiated private Provider<GroupsUpdate> groupsUpdateProvider;
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  public void systemGroupCanBeRetrievedFromIndex() throws Exception {
 | 
			
		||||
    List<GroupInfo> groupInfos = gApi.groups().query("name:Administrators").get();
 | 
			
		||||
    assertThat(groupInfos).isNotEmpty();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Test
 | 
			
		||||
  public void addToNonExistingGroup_NotFound() throws Exception {
 | 
			
		||||
    exception.expect(ResourceNotFoundException.class);
 | 
			
		||||
 
 | 
			
		||||
@@ -37,8 +37,7 @@ public class GroupPredicates {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public static Predicate<AccountGroup> name(String name) {
 | 
			
		||||
    return new GroupPredicate(
 | 
			
		||||
        GroupField.NAME, GroupQueryBuilder.FIELD_NAME, name.toLowerCase(Locale.US));
 | 
			
		||||
    return new GroupPredicate(GroupField.NAME, GroupQueryBuilder.FIELD_NAME, name);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public static Predicate<AccountGroup> owner(AccountGroup.UUID ownerUuid) {
 | 
			
		||||
 
 | 
			
		||||
@@ -185,9 +185,9 @@ public abstract class AbstractQueryGroupsTest extends GerritServerTests {
 | 
			
		||||
  public void byName() throws Exception {
 | 
			
		||||
    assertQuery("name:non-existing");
 | 
			
		||||
 | 
			
		||||
    GroupInfo group = createGroup(name("group"));
 | 
			
		||||
    GroupInfo group = createGroup(name("Group"));
 | 
			
		||||
    assertQuery("name:" + group.name, group);
 | 
			
		||||
    assertQuery("name:" + group.name.toUpperCase(Locale.US), group);
 | 
			
		||||
    assertQuery("name:" + group.name.toLowerCase(Locale.US));
 | 
			
		||||
 | 
			
		||||
    // only exact match
 | 
			
		||||
    GroupInfo groupWithHyphen = createGroup(name("group-with-hyphen"));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user