This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit fbfdf0846c61341fd5d670dc5f4f3ac6f9c6444e Author: Rene Cordier <[email protected]> AuthorDate: Fri Nov 1 15:29:26 2019 +0700 JAMES-2958 Add route tests to check that the domain name can not be longer than 255 characters --- .../webadmin/routes/DomainMappingsRoutesTest.java | 53 ++++++++++++++++++++++ .../james/webadmin/routes/DomainsRoutesTest.java | 8 ++++ 2 files changed, 61 insertions(+) diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java index 376a1b1..d8b1b6e 100644 --- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java +++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainMappingsRoutesTest.java @@ -38,6 +38,7 @@ import java.util.List; import java.util.Map; import java.util.function.Function; +import org.apache.commons.lang3.StringUtils; import org.apache.james.core.Domain; import org.apache.james.domainlist.api.DomainList; import org.apache.james.rrt.api.RecipientRewriteTableException; @@ -125,6 +126,26 @@ class DomainMappingsRoutesTest { } @Test + void addDomainMappingsShouldReturnOkWhenWithA255LongDomainSource() { + given() + .body("to.com") + .when() + .put(StringUtils.repeat('a', 255)) + .then() + .statusCode(HttpStatus.NO_CONTENT_204); + } + + @Test + void addDomainMappingsShouldReturnOkWhenWithA255LongDomainDestination() { + given() + .body(StringUtils.repeat('a', 255)) + .when() + .put("from.com") + .then() + .statusCode(HttpStatus.NO_CONTENT_204); + } + + @Test void getDomainMappingsShouldReturnAllDomainMappings() throws RecipientRewriteTableException { String alias1 = "to_1.com"; String alias2 = "to_2.com"; @@ -402,6 +423,38 @@ class DomainMappingsRoutesTest { .hasEntrySatisfying("message", o -> assertThat((String) o).matches("^The domain .* is invalid\\.$")); } + @Test + void addDomainMappingShouldReturnBadRequestWhenDomainSourceTooLong() { + String longDomainName = StringUtils.repeat('a', 256); + + given() + .body("destination.tld") + .when() + .put(longDomainName) + .then() + .statusCode(HttpStatus.BAD_REQUEST_400) + .body("statusCode", is(400)) + .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType())) + .body("message", is("The domain " + longDomainName + " is invalid.")) + .body("details", is("Domain name length should not exceed 255 characters")); + } + + @Test + void addDomainMappingShouldReturnBadRequestWhenDomainDestinationTooLong() { + String longDomainName = StringUtils.repeat('a', 256); + + given() + .body(longDomainName) + .when() + .put("source.tld") + .then() + .statusCode(HttpStatus.BAD_REQUEST_400) + .body("statusCode", is(400)) + .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType())) + .body("message", is("The domain " + longDomainName + " is invalid.")) + .body("details", is("Domain name length should not exceed 255 characters")); + } + private void assertBadRequest(String toDomain, Function<RequestSpecification, Response> requestingFunction) { Map<String, Object> errors = requestingFunction.apply(given().body(toDomain).when()) .then() diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java index cfd298e..185cabb 100644 --- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java +++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java @@ -162,6 +162,14 @@ class DomainsRoutesTest { } @Test + void putShouldReturnOkWhenWithA255LongDomainName() { + when() + .put(StringUtils.repeat('a', 255)) + .then() + .statusCode(HttpStatus.NO_CONTENT_204); + } + + @Test void putShouldReturnBadRequestWhenDomainNameIsTooLong() { String longDomainName = StringUtils.repeat('a', 256); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
