mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 23:45:44 +01:00
Add integration test
This commit is contained in:
48
scm-it/src/test/java/sonia/scm/it/IndexITCase.java
Normal file
48
scm-it/src/test/java/sonia/scm/it/IndexITCase.java
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
package sonia.scm.it;
|
||||||
|
|
||||||
|
import io.restassured.RestAssured;
|
||||||
|
import org.apache.http.HttpStatus;
|
||||||
|
import org.junit.Test;
|
||||||
|
import sonia.scm.it.utils.RestUtil;
|
||||||
|
import sonia.scm.web.VndMediaType;
|
||||||
|
|
||||||
|
import static sonia.scm.it.utils.RegExMatcher.matchesPattern;
|
||||||
|
import static sonia.scm.it.utils.RestUtil.given;
|
||||||
|
|
||||||
|
public class IndexITCase {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldLinkEverythingForAdmin() {
|
||||||
|
given(VndMediaType.INDEX)
|
||||||
|
|
||||||
|
.when()
|
||||||
|
.get(RestUtil.createResourceUrl(""))
|
||||||
|
|
||||||
|
.then()
|
||||||
|
.statusCode(HttpStatus.SC_OK)
|
||||||
|
.body(
|
||||||
|
"_links.repositories.href", matchesPattern(".+/repositories/"),
|
||||||
|
"_links.users.href", matchesPattern(".+/users/"),
|
||||||
|
"_links.groups.href", matchesPattern(".+/groups/"),
|
||||||
|
"_links.config.href", matchesPattern(".+/config"),
|
||||||
|
"_links.gitConfig.href", matchesPattern(".+/config/git"),
|
||||||
|
"_links.hgConfig.href", matchesPattern(".+/config/hg"),
|
||||||
|
"_links.svnConfig.href", matchesPattern(".+/config/svn")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldCreateLoginLinksForAnonymousAccess() {
|
||||||
|
RestAssured.given() // do not specify user credentials
|
||||||
|
|
||||||
|
.when()
|
||||||
|
.get(RestUtil.createResourceUrl(""))
|
||||||
|
|
||||||
|
.then()
|
||||||
|
.statusCode(HttpStatus.SC_OK)
|
||||||
|
.body(
|
||||||
|
"_links.formLogin.href", matchesPattern(".+/auth/.+")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -24,6 +24,6 @@ public class RegExMatcher extends BaseMatcher<String> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(Object o) {
|
public boolean matches(Object o) {
|
||||||
return Pattern.compile(pattern).matcher(o.toString()).matches();
|
return o != null && Pattern.compile(pattern).matcher(o.toString()).matches();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class IndexDtoGenerator {
|
|||||||
builder.single(Link.link("groups", resourceLinks.groupCollection().self()));
|
builder.single(Link.link("groups", resourceLinks.groupCollection().self()));
|
||||||
}
|
}
|
||||||
if (ConfigurationPermissions.list().isPermitted()) {
|
if (ConfigurationPermissions.list().isPermitted()) {
|
||||||
builder.single(Link.link("configuration", resourceLinks.config().self()));
|
builder.single(Link.link("config", resourceLinks.config().self()));
|
||||||
}
|
}
|
||||||
builder.single(Link.link("repositories", resourceLinks.repositoryCollection().self()));
|
builder.single(Link.link("repositories", resourceLinks.repositoryCollection().self()));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user