Merge "ListProjectsIT: Add test that list doesn't include hidden project"

This commit is contained in:
Hugo Arès
2017-08-02 19:33:58 +00:00
committed by Gerrit Code Review

View File

@@ -22,10 +22,14 @@ import static org.junit.Assert.fail;
import com.google.common.collect.Iterables;
import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.acceptance.Sandboxed;
import com.google.gerrit.acceptance.TestProjectInput;
import com.google.gerrit.common.data.Permission;
import com.google.gerrit.extensions.api.projects.ConfigInfo;
import com.google.gerrit.extensions.api.projects.ConfigInput;
import com.google.gerrit.extensions.api.projects.Projects.ListRequest;
import com.google.gerrit.extensions.api.projects.Projects.ListRequest.FilterType;
import com.google.gerrit.extensions.client.ProjectState;
import com.google.gerrit.extensions.common.ProjectInfo;
import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.reviewdb.client.Project;
@@ -38,6 +42,7 @@ import java.util.Map;
import org.junit.Test;
@NoHttpd
@Sandboxed
public class ListProjectsIT extends AbstractDaemonTest {
@Inject private AllUsersName allUsers;
@@ -190,6 +195,35 @@ public class ListProjectsIT extends AbstractDaemonTest {
.inOrder();
}
@Test
public void listWithHiddenProject() throws Exception {
Project.NameKey hidden = createProject("project-to-hide");
// The project is included because it was not hidden yet
assertThatNameList(gApi.projects().list().get())
.containsExactly(allProjects, allUsers, project, hidden)
.inOrder();
// Hide the project
ConfigInput input = new ConfigInput();
input.state = ProjectState.HIDDEN;
ConfigInfo info = gApi.projects().name(hidden.get()).config(input);
assertThat(info.state).isEqualTo(input.state);
// Project is still accessible directly
gApi.projects().name(hidden.get()).get();
// But is not included in the list
assertThatNameList(gApi.projects().list().get())
.containsExactly(allProjects, allUsers, project)
.inOrder();
// ALL filter applies to type, and doesn't include hidden state
assertThatNameList(gApi.projects().list().withType(FilterType.ALL).get())
.containsExactly(allProjects, allUsers, project)
.inOrder();
}
private void assertBadRequest(ListRequest req) throws Exception {
try {
req.get();