summaryrefslogtreecommitdiffstats
path: root/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/CreateProjectIT.java
diff options
context:
space:
mode:
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.java26
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 {