JAMES-2526 Switch authentication test to JUnit 5
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/69818cf7 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/69818cf7 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/69818cf7 Branch: refs/heads/master Commit: 69818cf75e17b73b89aed88cf38ab2cdef8f135c Parents: 61b72f1 Author: Antoine Duprat <[email protected]> Authored: Mon Aug 27 18:24:27 2018 +0200 Committer: Antoine Duprat <[email protected]> Committed: Wed Aug 29 11:33:21 2018 +0200 ---------------------------------------------------------------------- pom.xml | 5 + .../protocols/webadmin-integration-test/pom.xml | 19 +- .../integration/CassandraJmapExtension.java | 110 +++ .../integration/UnauthorizedEndpointsTest.java | 850 +++---------------- 4 files changed, 266 insertions(+), 718 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/69818cf7/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index ebcb293..bdcd936 100644 --- a/pom.xml +++ b/pom.xml @@ -2381,6 +2381,11 @@ </dependency> <dependency> <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-params</artifactId> + <version>${junit.jupiter.version}</version> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-migrationsupport</artifactId> <version>${junit.jupiter.version}</version> </dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/69818cf7/server/protocols/webadmin-integration-test/pom.xml ---------------------------------------------------------------------- diff --git a/server/protocols/webadmin-integration-test/pom.xml b/server/protocols/webadmin-integration-test/pom.xml index c12f7b7..fb44af0 100644 --- a/server/protocols/webadmin-integration-test/pom.xml +++ b/server/protocols/webadmin-integration-test/pom.xml @@ -107,8 +107,23 @@ <scope>test</scope> </dependency> <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-engine</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter-params</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.platform</groupId> + <artifactId>junit-platform-launcher</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.junit.vintage</groupId> + <artifactId>junit-vintage-engine</artifactId> <scope>test</scope> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/69818cf7/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java ---------------------------------------------------------------------- diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java new file mode 100644 index 0000000..20ffeff --- /dev/null +++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/CassandraJmapExtension.java @@ -0,0 +1,110 @@ +/**************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + ****************************************************************/ +package org.apache.james.webadmin.integration; + +import static org.apache.james.CassandraJamesServerMain.ALL_BUT_JMX_CASSANDRA_MODULE; + +import java.io.IOException; + +import org.apache.james.DockerCassandraRule; +import org.apache.james.GuiceJamesServer; +import org.apache.james.backends.es.EmbeddedElasticSearch; +import org.apache.james.mailbox.extractor.TextExtractor; +import org.apache.james.mailbox.store.search.PDFTextExtractor; +import org.apache.james.modules.TestESMetricReporterModule; +import org.apache.james.modules.TestElasticSearchModule; +import org.apache.james.modules.TestJMAPServerModule; +import org.apache.james.server.core.configuration.Configuration; +import org.apache.james.util.Runnables; +import org.junit.jupiter.api.extension.AfterAllCallback; +import org.junit.jupiter.api.extension.AfterEachCallback; +import org.junit.jupiter.api.extension.BeforeAllCallback; +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.ParameterContext; +import org.junit.jupiter.api.extension.ParameterResolutionException; +import org.junit.jupiter.api.extension.ParameterResolver; +import org.junit.rules.TemporaryFolder; + +public class CassandraJmapExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver { + + private static final int LIMIT_TO_20_MESSAGES = 20; + + private final TemporaryFolder temporaryFolder; + private final DockerCassandraRule cassandra; + private final EmbeddedElasticSearch elasticSearch; + private GuiceJamesServer james; + + public CassandraJmapExtension() { + this.temporaryFolder = new TemporaryFolder(); + this.cassandra = new DockerCassandraRule(); + this.elasticSearch = new EmbeddedElasticSearch(temporaryFolder); + } + + private GuiceJamesServer james() throws IOException { + Configuration configuration = Configuration.builder() + .workingDirectory(temporaryFolder.newFolder()) + .configurationFromClasspath() + .build(); + + return GuiceJamesServer.forConfiguration(configuration) + .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE).overrideWith(binder -> binder.bind(TextExtractor.class).to(PDFTextExtractor.class)) + .overrideWith(new TestJMAPServerModule(LIMIT_TO_20_MESSAGES)) + .overrideWith(new TestESMetricReporterModule()) + .overrideWith(cassandra.getModule()) + .overrideWith(new TestElasticSearchModule(elasticSearch)) + .overrideWith(new WebAdminConfigurationModule()) + .overrideWith(new UnauthorizedModule()); + } + + @Override + public void beforeAll(ExtensionContext context) throws Exception { + temporaryFolder.create(); + + Runnables.runParallel(cassandra::start, elasticSearch::before); + } + + @Override + public void afterAll(ExtensionContext context) { + elasticSearch.after(); + + Runnables.runParallel(cassandra::stop, elasticSearch::after); + } + + @Override + public void beforeEach(ExtensionContext context) throws Exception { + james = james(); + james.start(); + } + + @Override + public void afterEach(ExtensionContext context) { + james.stop(); + } + + @Override + public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { + return parameterContext.getParameter().getType() == GuiceJamesServer.class; + } + + @Override + public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { + return james; + } +} http://git-wip-us.apache.org/repos/asf/james-project/blob/69818cf7/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/UnauthorizedEndpointsTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/UnauthorizedEndpointsTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/UnauthorizedEndpointsTest.java index 8ef713a..dc2140f 100644 --- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/UnauthorizedEndpointsTest.java +++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/UnauthorizedEndpointsTest.java @@ -20,10 +20,7 @@ package org.apache.james.webadmin.integration; import static io.restassured.RestAssured.when; -import static io.restassured.RestAssured.with; -import org.apache.james.CassandraJmapTestRule; -import org.apache.james.DockerCassandraRule; import org.apache.james.GuiceJamesServer; import org.apache.james.utils.WebAdminGuiceProbe; import org.apache.james.webadmin.WebAdminUtils; @@ -43,728 +40,149 @@ import org.apache.james.webadmin.routes.UserMailboxesRoutes; import org.apache.james.webadmin.routes.UserQuotaRoutes; import org.apache.james.webadmin.routes.UserRoutes; import org.eclipse.jetty.http.HttpStatus; -import org.junit.After; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import io.restassured.RestAssured; -public class UnauthorizedEndpointsTest { +@ExtendWith(CassandraJmapExtension.class) +class UnauthorizedEndpointsTest { - @ClassRule - public static DockerCassandraRule cassandra = new DockerCassandraRule(); - - @Rule - public CassandraJmapTestRule cassandraJmapTestRule = CassandraJmapTestRule.defaultTestRule(); - - private GuiceJamesServer guiceJamesServer; - - @Before - public void setUp() throws Exception { - guiceJamesServer = cassandraJmapTestRule.jmapServer(cassandra.getModule(), new UnauthorizedModule()) - .overrideWith(new WebAdminConfigurationModule()); - guiceJamesServer.start(); - WebAdminGuiceProbe webAdminGuiceProbe = guiceJamesServer.getProbe(WebAdminGuiceProbe.class); + @BeforeEach + void setup(GuiceJamesServer james) { + WebAdminGuiceProbe webAdminGuiceProbe = james.getProbe(WebAdminGuiceProbe.class); RestAssured.requestSpecification = WebAdminUtils.buildRequestSpecification(webAdminGuiceProbe.getWebAdminPort()) .build(); } - @After - public void tearDown() { - guiceJamesServer.stop(); - } - - @Test - public void getCassandraMigrationShouldBeAuthenticated() { - when() - .get(CassandraMigrationRoutes.VERSION_BASE) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void upgradeCassandraMigrationShouldBeAuthenticated() { - when() - .post(CassandraMigrationRoutes.VERSION_BASE + "/upgrade") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void upgradeLatestCassandraMigrationShouldBeAuthenticated() { - when() - .post(CassandraMigrationRoutes.VERSION_BASE + "/upgrade/latest") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getLatestCassandraMigrationShouldBeAuthenticated() { - when() - .get(CassandraMigrationRoutes.VERSION_BASE + "/latest") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void storeDLPShouldBeAuthenticated() { - String storeBody = - "{\"rules\": [" + - " {" + - " \"id\": \"1\"," + - " \"expression\": \"expression 1\"," + - " \"explanation\": \"explanation 1\"," + - " \"targetsSender\": true," + - " \"targetsRecipients\": true," + - " \"targetsContent\": true" + - " }," + - " {" + - " \"id\": \"2\"," + - " \"expression\": \"expression 2\"," + - " \"explanation\": \"explanation 2\"," + - " \"targetsSender\": false," + - " \"targetsRecipients\": false," + - " \"targetsContent\": false" + - " }]}"; - - with() - .body(storeBody) - .when() - .put(DLPConfigurationRoutes.BASE_PATH + "/james.org") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void clearDLPShouldBeAuthenticated() { - when() - .delete(DLPConfigurationRoutes.BASE_PATH + "/james.org") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void listDLPShouldBeAuthenticated() { - when() - .get(DLPConfigurationRoutes.BASE_PATH + "/james.org") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteDomainMappingShouldBeAuthenticated() { - with() - .body("to.com") - .when() - .delete(DomainMappingsRoutes.DOMAIN_MAPPINGS + "/from.com") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void addDomainMappingShouldBeAuthenticated() { - with() - .body("to.com") - .when() - .put(DomainMappingsRoutes.DOMAIN_MAPPINGS + "/from.com") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getDomainMappingsShouldBeAuthenticated() { - with() - .get(DomainMappingsRoutes.DOMAIN_MAPPINGS) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getDomainMappingShouldBeAuthenticated() { - with() - .get(DomainMappingsRoutes.DOMAIN_MAPPINGS + "/from.com") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getDomainQuotaShouldBeAuthenticated() { - with() - .get(DomainQuotaRoutes.BASE_PATH + "/james.org") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getCountDomainQuotaShouldBeAuthenticated() { - with() - .get(DomainQuotaRoutes.BASE_PATH + "/james.org/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getSizeDomainQuotaShouldBeAuthenticated() { - with() - .get(DomainQuotaRoutes.BASE_PATH + "/james.org/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteCountDomainQuotaShouldBeAuthenticated() { - with() - .delete(DomainQuotaRoutes.BASE_PATH + "/james.org/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteSizeDomainQuotaShouldBeAuthenticated() { - with() - .delete(DomainQuotaRoutes.BASE_PATH + "/james.org/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putCountDomainQuotaShouldBeAuthenticated() { - with() - .body("42") - .when() - .put(DomainQuotaRoutes.BASE_PATH + "/james.org/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putSizeDomainQuotaShouldBeAuthenticated() { - with() - .body("42") - .when() - .put(DomainQuotaRoutes.BASE_PATH + "/james.org/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putDomainQuotaShouldBeAuthenticated() { - with() - .body("{\"count\":52,\"size\":42}") - .when() - .put(DomainQuotaRoutes.BASE_PATH + "/james.org") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getDomainsShouldBeAuthenticated() { - when() - .get(DomainsRoutes.DOMAINS) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void createDomainShouldBeAuthenticated() { - when() - .put(DomainsRoutes.DOMAINS + "/james.org") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteDomainShouldBeAuthenticated() { - when() - .delete(DomainsRoutes.DOMAINS + "/james.org") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getUserMailboxesShouldBeAuthenticated() { - when() - .get(UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getMailboxUserMailboxesShouldBeAuthenticated() { - when() - .get(UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes/mymailbox") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteUserMailboxesShouldBeAuthenticated() { - when() - .delete(UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteMailboxUserMailboxesShouldBeAuthenticated() { - when() - .delete(UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes/mymailbox") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void createMailboxUserMailboxesShouldBeAuthenticated() { - when() - .put(UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes/mymailbox") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getUserQuotaShouldBeAuthenticated() { - when() - .get(UserQuotaRoutes.USERS_QUOTA_ENDPOINT) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getUserUserQuotaShouldBeAuthenticated() { - when() - .get(UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getCountUserQuotaShouldBeAuthenticated() { - when() - .get(UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getSizeUserQuotaShouldBeAuthenticated() { - when() - .get(UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteCountUserQuotaShouldBeAuthenticated() { - when() - .delete(UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteSizeUserQuotaShouldBeAuthenticated() { - when() - .delete(UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putUserQuotaShouldBeAuthenticated() { - with() - .body("{\"count\":52,\"size\":42}") - .when() - .put(UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putCountUserQuotaShouldBeAuthenticated() { - with() - .body("35") - .when() - .put(UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putSizeUserQuotaShouldBeAuthenticated() { - with() - .body("35") - .when() - .put(UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getUsersShouldBeAuthenticated() { - when() - .get(UserRoutes.USERS) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void createUserShouldBeAuthenticated() { - with() - .body("{\"password\":\"password\"}") - .when() - .put(UserRoutes.USERS + "/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteUserShouldBeAuthenticated() { - when() - .delete(UserRoutes.USERS + "/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getForwardsShouldBeAuthenticated() { - when() - .get(ForwardRoutes.ROOT_PATH) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getForwardShouldBeAuthenticated() { - when() - .get(ForwardRoutes.ROOT_PATH + "/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putForwardDestinationShouldBeAuthenticated() { - when() - .put(ForwardRoutes.ROOT_PATH + "/[email protected]/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteForwardDestinationShouldBeAuthenticated() { - when() - .delete(ForwardRoutes.ROOT_PATH + "/[email protected]/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getGlobalQuotaShouldBeAuthenticated() { - when() - .get(GlobalQuotaRoutes.QUOTA_ENDPOINT) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getCountGlobalQuotaShouldBeAuthenticated() { - when() - .get(GlobalQuotaRoutes.QUOTA_ENDPOINT + "/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getSizeGlobalQuotaShouldBeAuthenticated() { - when() - .get(GlobalQuotaRoutes.QUOTA_ENDPOINT + "/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteCountGlobalQuotaShouldBeAuthenticated() { - when() - .delete(GlobalQuotaRoutes.QUOTA_ENDPOINT + "/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteSizeGlobalQuotaShouldBeAuthenticated() { - when() - .delete(GlobalQuotaRoutes.QUOTA_ENDPOINT + "/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putCountGlobalQuotaShouldBeAuthenticated() { - with() - .body("42") - .when() - .put(GlobalQuotaRoutes.QUOTA_ENDPOINT + "/count") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putSizeGlobalQuotaShouldBeAuthenticated() { - with() - .body("42") - .when() - .put(GlobalQuotaRoutes.QUOTA_ENDPOINT + "/size") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putGlobalQuotaShouldBeAuthenticated() { - with() - .body("{\"count\":52,\"size\":42}") - .when() - .put(GlobalQuotaRoutes.QUOTA_ENDPOINT) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getGroupsShouldBeAuthenticated() { - when() - .get(GroupsRoutes.ROOT_PATH) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getGroupShouldBeAuthenticated() { - when() - .get(GroupsRoutes.ROOT_PATH + "/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putGroupMemberShouldBeAuthenticated() { - when() - .put(GroupsRoutes.ROOT_PATH + "/[email protected]/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteGroupMemberShouldBeAuthenticated() { - when() - .delete(GroupsRoutes.ROOT_PATH + "/[email protected]/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void listMailQueuesShouldBeAuthenticated() { - when() - .get(MailQueueRoutes.BASE_URL) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getMailQueueShouldBeAuthenticated() { - when() - .get(MailQueueRoutes.BASE_URL + "/first_queue") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteMailShouldBeAuthenticated() { - with() - .param("sender", "123") - .when() - .delete(MailQueueRoutes.BASE_URL + "/first_queue/mails") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void clearMailQueueShouldBeAuthenticated() { - when() - .delete(MailQueueRoutes.BASE_URL + "/second_queue/mails") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void flushMailQueueShouldBeAuthenticated() { - with() - .queryParam("delayed", "true") - .body("{\"delayed\": \"false\"}") - .when() - .patch(MailQueueRoutes.BASE_URL + "/first_queue/mails") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putMailRepositoriesShouldBeAuthenticated() { - with() - .params("protocol", "memory") - .when() - .put(MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void listMailRepositoriesShouldBeAuthenticated() { - when() - .get(MailRepositoriesRoutes.MAIL_REPOSITORIES) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getMailRepositoriesShouldBeAuthenticated() { - when() - .get(MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getMailsMailRepositoriesShouldBeAuthenticated() { - when() - .get(MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getMailMailRepositoriesShouldBeAuthenticated() { - when() - .get(MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails/1") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteAMailMailRepositoriesShouldBeAuthenticated() { - when() - .delete(MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails/1") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteMailsMailRepositoriesShouldBeAuthenticated() { - when() - .delete(MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void reprocessingAllMailRepositoriesShouldBeAuthenticated() { - with() - .param("action", "reprocess") - .when() - .patch(MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void reprocessingOneMailRepositoriesShouldBeAuthenticated() { - with() - .param("action", "reprocess") - .when() - .patch(MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails/name1") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getGlobalSieveQuotaShouldBeAuthenticated() { - when() - .get(SieveQuotaRoutes.DEFAULT_QUOTA_PATH) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deleteGlobalSieveQuotaShouldBeAuthenticated() { - when() - .delete(SieveQuotaRoutes.DEFAULT_QUOTA_PATH) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putGlobalSieveQuotaShouldBeAuthenticated() { - with() - .body("42") - .when() - .put(SieveQuotaRoutes.DEFAULT_QUOTA_PATH) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getPerUserSieveQuotaShouldBeAuthenticated() { - when() - .get(SieveQuotaRoutes.ROOT_PATH + "/users/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void deletePerUsersSieveQuotaShouldBeAuthenticated() { - when() - .delete(SieveQuotaRoutes.ROOT_PATH + "/users/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void putPerUserSieveQuotaShouldBeAuthenticated() { - with() - .body("42") - .when() - .put(SieveQuotaRoutes.ROOT_PATH + "/users/[email protected]") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getTasksRoutesShouldBeAuthenticated() { - when() - .get(TasksRoutes.BASE) - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void getTaskShouldBeAuthenticated() { - when() - .get(TasksRoutes.BASE + "/taskId") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void cancelTaskShouldBeAuthenticated() { - when() - .delete(TasksRoutes.BASE + "/taskId") - .then() - .statusCode(HttpStatus.UNAUTHORIZED_401); - } - - @Test - public void awaitTaskShouldBeAuthenticated() { - when() - .get(TasksRoutes.BASE + "/taskId/await") + @ParameterizedTest + @ValueSource(strings = { + CassandraMigrationRoutes.VERSION_BASE, + CassandraMigrationRoutes.VERSION_BASE + "/latest", + DLPConfigurationRoutes.BASE_PATH + "/james.org", + DomainMappingsRoutes.DOMAIN_MAPPINGS, + DomainMappingsRoutes.DOMAIN_MAPPINGS + "/from.com", + DomainQuotaRoutes.BASE_PATH + "/james.org", + DomainQuotaRoutes.BASE_PATH + "/james.org/count", + DomainQuotaRoutes.BASE_PATH + "/james.org/size", + DomainsRoutes.DOMAINS, + UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes", + UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes/mymailbox", + UserQuotaRoutes.USERS_QUOTA_ENDPOINT, + UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]", + UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/count", + UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/size", + UserRoutes.USERS, + ForwardRoutes.ROOT_PATH, + ForwardRoutes.ROOT_PATH + "/[email protected]", + GlobalQuotaRoutes.QUOTA_ENDPOINT, + GlobalQuotaRoutes.QUOTA_ENDPOINT + "/count", + GlobalQuotaRoutes.QUOTA_ENDPOINT + "/size", + GroupsRoutes.ROOT_PATH, + GroupsRoutes.ROOT_PATH + "/[email protected]", + MailQueueRoutes.BASE_URL + "/first_queue", + MailRepositoriesRoutes.MAIL_REPOSITORIES, + MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo", + MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails", + MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails/1", + SieveQuotaRoutes.DEFAULT_QUOTA_PATH, + SieveQuotaRoutes.ROOT_PATH + "/users/[email protected]", + TasksRoutes.BASE, + TasksRoutes.BASE + "/taskId", + TasksRoutes.BASE + "/taskId/await" + }) + void checkUrlProtectionOnGet(String url) { + when() + .get(url) + .then() + .statusCode(HttpStatus.UNAUTHORIZED_401); + } + + @ParameterizedTest + @ValueSource(strings = { + CassandraMigrationRoutes.VERSION_BASE + "/upgrade", + CassandraMigrationRoutes.VERSION_BASE + "/upgrade/latest" + }) + void checkUrlProtectionOnPost(String url) { + when() + .post(url) + .then() + .statusCode(HttpStatus.UNAUTHORIZED_401); + } + + @ParameterizedTest + @ValueSource(strings = { + DLPConfigurationRoutes.BASE_PATH + "/james.org", + DomainMappingsRoutes.DOMAIN_MAPPINGS + "/from.com", + DomainQuotaRoutes.BASE_PATH + "/james.org/count", + DomainQuotaRoutes.BASE_PATH + "/james.org/size", + DomainQuotaRoutes.BASE_PATH + "/james.org", + DomainsRoutes.DOMAINS + "/james.org", + UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes/mymailbox", + UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]", + UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/count", + UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/size", + UserRoutes.USERS + "/[email protected]", + ForwardRoutes.ROOT_PATH + "/[email protected]/[email protected]", + GlobalQuotaRoutes.QUOTA_ENDPOINT + "/count", + GlobalQuotaRoutes.QUOTA_ENDPOINT + "/size", + GlobalQuotaRoutes.QUOTA_ENDPOINT, + GroupsRoutes.ROOT_PATH + "/[email protected]/[email protected]", + MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo", + SieveQuotaRoutes.DEFAULT_QUOTA_PATH, + SieveQuotaRoutes.ROOT_PATH + "/users/[email protected]" + }) + void checkUrlProtectionOnPut(String url) { + when() + .put(url) + .then() + .statusCode(HttpStatus.UNAUTHORIZED_401); + } + + @ParameterizedTest + @ValueSource(strings = { + DLPConfigurationRoutes.BASE_PATH + "/james.org", + DomainQuotaRoutes.BASE_PATH + "/james.org/count", + DomainQuotaRoutes.BASE_PATH + "/james.org/size", + DomainMappingsRoutes.DOMAIN_MAPPINGS + "/from.com", + DomainsRoutes.DOMAINS + "/james.org", + UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes", + UserMailboxesRoutes.USERS_BASE + "/someuser/mailboxes/mymailbox", + UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/count", + UserQuotaRoutes.USERS_QUOTA_ENDPOINT + "/[email protected]/size", + UserRoutes.USERS + "/[email protected]", + ForwardRoutes.ROOT_PATH + "/[email protected]/[email protected]", + GlobalQuotaRoutes.QUOTA_ENDPOINT + "/count", + GlobalQuotaRoutes.QUOTA_ENDPOINT + "/size", + GroupsRoutes.ROOT_PATH + "/[email protected]/[email protected]", + MailQueueRoutes.BASE_URL, + MailQueueRoutes.BASE_URL + "/first_queue/mails", + MailQueueRoutes.BASE_URL + "/second_queue/mails", + MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails/1", + MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails", + SieveQuotaRoutes.DEFAULT_QUOTA_PATH, + SieveQuotaRoutes.ROOT_PATH + "/users/[email protected]", + TasksRoutes.BASE + "/taskId" + }) + void checkUrlProtectionOnDelete(String url) { + when() + .delete(url) + .then() + .statusCode(HttpStatus.UNAUTHORIZED_401); + } + + @ParameterizedTest + @ValueSource(strings = { + MailQueueRoutes.BASE_URL + "/first_queue/mails", + MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails", + MailRepositoriesRoutes.MAIL_REPOSITORIES + "/myRepo/mails/name1" + }) + void checkUrlProtectionOnPath(String url) { + when() + .patch(url) .then() .statusCode(HttpStatus.UNAUTHORIZED_401); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
