Merge "ListProjectsIT: Add test that list doesn't include hidden project"
This commit is contained in:
@@ -22,10 +22,14 @@ import static org.junit.Assert.fail;
|
|||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||||
import com.google.gerrit.acceptance.NoHttpd;
|
import com.google.gerrit.acceptance.NoHttpd;
|
||||||
|
import com.google.gerrit.acceptance.Sandboxed;
|
||||||
import com.google.gerrit.acceptance.TestProjectInput;
|
import com.google.gerrit.acceptance.TestProjectInput;
|
||||||
import com.google.gerrit.common.data.Permission;
|
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;
|
||||||
import com.google.gerrit.extensions.api.projects.Projects.ListRequest.FilterType;
|
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.common.ProjectInfo;
|
||||||
import com.google.gerrit.extensions.restapi.BadRequestException;
|
import com.google.gerrit.extensions.restapi.BadRequestException;
|
||||||
import com.google.gerrit.reviewdb.client.Project;
|
import com.google.gerrit.reviewdb.client.Project;
|
||||||
@@ -38,6 +42,7 @@ import java.util.Map;
|
|||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
@NoHttpd
|
@NoHttpd
|
||||||
|
@Sandboxed
|
||||||
public class ListProjectsIT extends AbstractDaemonTest {
|
public class ListProjectsIT extends AbstractDaemonTest {
|
||||||
|
|
||||||
@Inject private AllUsersName allUsers;
|
@Inject private AllUsersName allUsers;
|
||||||
@@ -190,6 +195,35 @@ public class ListProjectsIT extends AbstractDaemonTest {
|
|||||||
.inOrder();
|
.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 {
|
private void assertBadRequest(ListRequest req) throws Exception {
|
||||||
try {
|
try {
|
||||||
req.get();
|
req.get();
|
||||||
|
Reference in New Issue
Block a user