JAMES-1788 Ignoring size limit control for now
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5fc0e783 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5fc0e783 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5fc0e783 Branch: refs/heads/master Commit: 5fc0e7831796084d9ef2c132156dd17f423d1a28 Parents: 447b5dc Author: Raphael Ouazana <[email protected]> Authored: Fri Jul 1 14:56:17 2016 +0200 Committer: Raphael Ouazana <[email protected]> Committed: Mon Jul 4 14:57:38 2016 +0200 ---------------------------------------------------------------------- .../integration/cucumber/UploadStepdefs.java | 47 ++++++++++++++++++++ .../resources/cucumber/UploadEndpoint.feature | 5 +++ 2 files changed, 52 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/5fc0e783/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/UploadStepdefs.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/UploadStepdefs.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/UploadStepdefs.java index bb31263..10023ac 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/UploadStepdefs.java +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/cucumber/UploadStepdefs.java @@ -21,10 +21,14 @@ package org.apache.james.jmap.methods.integration.cucumber; import static com.jayway.restassured.RestAssured.with; +import java.io.BufferedInputStream; +import java.io.InputStream; + import javax.inject.Inject; import org.apache.james.jmap.api.access.AccessToken; +import com.jayway.restassured.http.ContentType; import com.jayway.restassured.response.Response; import com.jayway.restassured.specification.RequestSpecification; @@ -34,6 +38,8 @@ import cucumber.runtime.java.guice.ScenarioScoped; @ScenarioScoped public class UploadStepdefs { + private static final int _1M = 1024 * 1024; + private static final int _10M = 10 * _1M; private final UserStepdefs userStepdefs; private Response response; @@ -54,6 +60,19 @@ public class UploadStepdefs { .post("/upload"); } + @When("^\"([^\"]*)\" upload a too big content$") + public void userUploadTooBigContent(String username) throws Throwable { + AccessToken accessToken = userStepdefs.tokenByUser.get(username); + RequestSpecification with = with(); + if (accessToken != null) { + with.header("Authorization", accessToken.serialize()); + } + response = with + .contentType(ContentType.BINARY) + .content(new BufferedInputStream(new ZeroedInputStream(_10M), _10M)) + .post("/upload"); + } + @When("^\"([^\"]*)\" checks for the availability of the upload endpoint$") public void optionUpload(String username) throws Throwable { AccessToken accessToken = userStepdefs.tokenByUser.get(username); @@ -82,4 +101,32 @@ public class UploadStepdefs { response.then() .statusCode(401); } + + @Then("^the user should receive a request entity too large response$") + public void httpRequestEntityTooBigStatus() throws Exception { + response.then() + .statusCode(413); + } + + public static class ZeroedInputStream extends InputStream { + public static final int RETURNED_VALUE = 0; + + private final int max; + private int pos; + + public ZeroedInputStream(int max) { + this.max = max; + this.pos = 0; + } + + @Override + public int read() { + if (pos < max) { + pos++; + return RETURNED_VALUE; + } + return -1; + } + } + } http://git-wip-us.apache.org/repos/asf/james-project/blob/5fc0e783/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/UploadEndpoint.feature ---------------------------------------------------------------------- diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/UploadEndpoint.feature b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/UploadEndpoint.feature index 6564f60..1379ddf 100644 --- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/UploadEndpoint.feature +++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/UploadEndpoint.feature @@ -18,6 +18,11 @@ Feature: An upload endpoint should be available to upload contents When "[email protected]" upload a content Then the user should receive a not authorized response + @Ignore + Scenario: Uploading a too big content + When "[email protected]" upload a too big content + Then the user should receive a request entity too large response + Scenario: Uploading a content being authenticated When "[email protected]" upload a content Then the user should receive a created response --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
