diff options
Diffstat (limited to 'gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java')
-rw-r--r-- | gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java index 78c66d61a4..0409fbca62 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java @@ -15,9 +15,11 @@ package com.google.gerrit.acceptance.rest.project; import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.Truth.assertWithMessage; import static com.google.gerrit.acceptance.rest.project.ProjectAssert.assertProjectInfo; import static com.google.gerrit.acceptance.rest.project.ProjectAssert.assertProjectOwners; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.google.common.net.HttpHeaders; @@ -41,6 +43,7 @@ import com.google.gerrit.server.group.SystemGroupBackend; import com.google.gerrit.server.project.ProjectState; import java.util.Collections; import java.util.Set; +import org.apache.http.HttpStatus; import org.apache.http.message.BasicHeader; import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Repository; @@ -57,6 +60,11 @@ public class CreateProjectIT extends AbstractDaemonTest { r.assertCreated(); ProjectInfo p = newGson().fromJson(r.getReader(), ProjectInfo.class); assertThat(p.name).isEqualTo(newProjectName); + + // Check that we populate the label data in the HTTP path. See GetProjectIT#getProject + // for more extensive coverage of the LabelTypeInfo. + assertThat(p.labels).hasSize(1); + ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName)); assertThat(projectState).isNotNull(); assertProjectInfo(projectState.getProject(), p); @@ -79,7 +87,15 @@ public class CreateProjectIT extends AbstractDaemonTest { @Test @UseLocalDisk public void createProjectHttpWithUnreasonableName_BadRequest() throws Exception { - adminRestSession.put("/projects/" + Url.encode(name("invalid/../name"))).assertBadRequest(); + ImmutableList<String> forbiddenStrings = + ImmutableList.of( + "/../", "/./", "//", ".git/", "?", "%", "*", ":", "<", ">", "|", "$", "/+", "~"); + for (String s : forbiddenStrings) { + String projectName = name("invalid" + s + "name"); + assertWithMessage("Expected status code for " + projectName + " to be 400.") + .that(adminRestSession.put("/projects/" + Url.encode(projectName)).getStatusCode()) + .isEqualTo(HttpStatus.SC_BAD_REQUEST); + } } @Test @@ -175,7 +191,11 @@ public class CreateProjectIT extends AbstractDaemonTest { in.owners.add(SystemGroupBackend.REGISTERED_USERS.get()); // by UUID in.owners.add( Integer.toString( - groupCache.get(new AccountGroup.NameKey("Administrators")).getId().get())); // by ID + groupCache + .get(new AccountGroup.NameKey("Administrators")) + .orElse(null) + .getId() + .get())); // by ID gApi.projects().create(in); ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName)); Set<AccountGroup.UUID> expectedOwnerIds = Sets.newHashSetWithExpectedSize(3); @@ -277,7 +297,7 @@ public class CreateProjectIT extends AbstractDaemonTest { } private AccountGroup.UUID groupUuid(String groupName) { - return groupCache.get(new AccountGroup.NameKey(groupName)).getGroupUUID(); + return groupCache.get(new AccountGroup.NameKey(groupName)).orElse(null).getGroupUUID(); } private void assertHead(String projectName, String expectedRef) throws Exception { |