You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/01/17 06:50:43 UTC
[27/27] james-project git commit: JAMES-2642 Refactor and cleanup
code for alias, group and forward integration tests
JAMES-2642 Refactor and cleanup code for alias, group and forward integration tests
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/21cde6d2
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/21cde6d2
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/21cde6d2
Branch: refs/heads/master
Commit: 21cde6d28b4b81dc9b01ccb45e2579ad4bb30e7e
Parents: 1819ae1
Author: Rene Cordier <rc...@linagora.com>
Authored: Wed Jan 16 16:27:46 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Jan 17 13:49:10 2019 +0700
----------------------------------------------------------------------
.../james/cli/probe/impl/JmxDataProbe.java | 66 ------------------
.../org/apache/james/utils/DataProbeImpl.java | 36 ----------
.../java/org/apache/james/probe/DataProbe.java | 12 ----
.../RecipientRewriteTableManagementMBean.java | 72 --------------------
.../lib/RecipientRewriteTableManagement.java | 36 ----------
.../RecipientRewriteTableIntegrationTest.java | 18 ++++-
.../transport/mailets/AliasMappingTest.java | 46 +++++++++----
.../transport/mailets/GroupMappingTest.java | 5 +-
.../WebAdminServerIntegrationTest.java | 43 ++++++++----
9 files changed, 82 insertions(+), 252 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
index cb50af9..6006916 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
@@ -237,70 +237,4 @@ public class JmxDataProbe implements DataProbe, JmxProbe {
virtualUserTableProxy.addDomainMapping(aliasDomain, deliveryDomain);
}
}
-
- @Override
- public void addForwardMapping(String user, String domain, String address) throws Exception {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, JMX)
- .addContext(MDCBuilder.ACTION, "addForwardMapping")
- .build()) {
- virtualUserTableProxy.addForwardMapping(user, domain, address);
- }
- }
-
- @Override
- public void removeForwardMapping(String user, String domain, String address) throws Exception {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, JMX)
- .addContext(MDCBuilder.ACTION, "removeForwardMapping")
- .build()) {
- virtualUserTableProxy.removeForwardMapping(user, domain, address);
- }
- }
-
- @Override
- public void addGroupMapping(String toUser, String toDomain, String fromAddress) throws Exception {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, JMX)
- .addContext(MDCBuilder.ACTION, "removeForwardMapping")
- .build()) {
- virtualUserTableProxy.addGroupMapping(toUser, toDomain, fromAddress);
- }
- }
-
- @Override
- public void removeGroupMapping(String toUser, String toDomain, String fromAddress) throws Exception {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, JMX)
- .addContext(MDCBuilder.ACTION, "removeForwardMapping")
- .build()) {
- virtualUserTableProxy.removeGroupMapping(toUser, toDomain, fromAddress);
- }
- }
-
- @Override
- public void addAliasMapping(String fromAlias, String fromDomain, String toAddress) throws Exception {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, JMX)
- .addContext(MDCBuilder.ACTION, "addAliasMapping")
- .build()) {
- virtualUserTableProxy.addAliasMapping(fromAlias, fromDomain, toAddress);
- }
- }
-
- @Override
- public void removeAliasMapping(String fromAlias, String fromDomain, String toAddress) throws Exception {
- try (Closeable closeable =
- MDCBuilder.create()
- .addContext(MDCBuilder.PROTOCOL, JMX)
- .addContext(MDCBuilder.ACTION, "removeAliasMapping")
- .build()) {
- virtualUserTableProxy.removeAliasMapping(fromAlias, fromDomain, toAddress);
- }
- }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
index e56c8b5..ec318b1 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
@@ -144,40 +144,4 @@ public class DataProbeImpl implements GuiceProbe, DataProbe {
public void addDomainAliasMapping(String aliasDomain, String deliveryDomain) throws Exception {
recipientRewriteTable.addAliasDomainMapping(MappingSource.fromDomain(Domain.of(aliasDomain)), Domain.of(deliveryDomain));
}
-
- @Override
- public void addForwardMapping(String user, String domain, String address) throws Exception {
- MappingSource source = MappingSource.fromUser(user, domain);
- recipientRewriteTable.addForwardMapping(source, address);
- }
-
- @Override
- public void removeForwardMapping(String user, String domain, String address) throws Exception {
- MappingSource source = MappingSource.fromUser(user, domain);
- recipientRewriteTable.removeForwardMapping(source, address);
- }
-
- @Override
- public void addGroupMapping(String toUser, String toDomain, String fromAddress) throws Exception {
- MappingSource source = MappingSource.fromUser(toUser, toDomain);
- recipientRewriteTable.addGroupMapping(source, fromAddress);
- }
-
- @Override
- public void removeGroupMapping(String toUser, String toDomain, String fromAddress) throws Exception {
- MappingSource source = MappingSource.fromUser(toUser, toDomain);
- recipientRewriteTable.removeGroupMapping(source, fromAddress);
- }
-
- @Override
- public void addAliasMapping(String fromAlias, String fromDomain, String toAddress) throws Exception {
- MappingSource source = MappingSource.fromUser(fromAlias, fromDomain);
- recipientRewriteTable.addAliasMapping(source, toAddress);
- }
-
- @Override
- public void removeAliasMapping(String fromAlias, String fromDomain, String toAddress) throws Exception {
- MappingSource source = MappingSource.fromUser(fromAlias, fromDomain);
- recipientRewriteTable.removeAliasMapping(source, toAddress);
- }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java b/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
index cdaf8fc..30d8050 100644
--- a/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
+++ b/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
@@ -84,16 +84,4 @@ public interface DataProbe {
void removeRegexMapping(String user, String domain, String regex) throws Exception;
void addDomainAliasMapping(String aliasDomain, String deliveryDomain) throws Exception;
-
- void addForwardMapping(String toUser, String toDomain, String fromAddress) throws Exception;
-
- void removeForwardMapping(String toUser, String toDomain, String fromAddress) throws Exception;
-
- void addGroupMapping(String toUser, String toDomain, String fromAddress) throws Exception;
-
- void removeGroupMapping(String toUser, String toDomain, String fromAddress) throws Exception;
-
- void addAliasMapping(String fromAlias, String fromDomain, String toAddress) throws Exception;
-
- void removeAliasMapping(String fromAlias, String fromDomain, String toAddress) throws Exception;
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java b/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
index 7afc90b..e49a162 100644
--- a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
+++ b/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
@@ -184,76 +184,4 @@ public interface RecipientRewriteTableManagementMBean {
* If an error occurred
*/
Map<String, Mappings> getAllMappings() throws Exception;
-
- /***
- * Add forward mapping
- *
- * @param user
- * the username part of the mail address destination defined for this forward.
- * @param domain
- * the domain part of the mail address destination defined for this forward.
- * @param address The base address of the forward. Mails for this address will be sent to the added forward destination.
- * @throws Exception If an error occurred
- */
- void addForwardMapping(String user, String domain, String address) throws Exception;
-
- /**
- * Remove forward mapping
- *
- * @param toUser
- * the username part of the mail address destination defined for this forward.
- * @param toDomain
- * the domain part of the mail address destination defined for this forward.
- * @param fromAddress The base address of the forward. Mails for this address will no more sent to the removed forward destination.
- * @throws Exception If an error occurred
- */
- void removeForwardMapping(String toUser, String toDomain, String fromAddress) throws Exception;
-
- /***
- * Add group mapping
- *
- * @param user
- * the username part of the mail address destination defined for this group.
- * @param domain
- * the domain part of the mail address destination defined for this group.
- * @param address The base address of the group. Mails for this address will be sent to the added group destination.
- * @throws Exception If an error occurred
- */
- void addGroupMapping(String user, String domain, String address) throws Exception;
-
- /**
- * Remove group mapping
- *
- * @param toUser
- * the username part of the mail address destination defined for this group.
- * @param toDomain
- * the domain part of the mail address destination defined for this group.
- * @param fromAddress The base address of the forward. Mails for this address will no more sent to the removed group destination.
- * @throws Exception If an error occurred
- */
- void removeGroupMapping(String toUser, String toDomain, String fromAddress) throws Exception;
-
- /***
- * Add alias mapping
- *
- * @param fromAlias
- * the name part of the alias source.
- * @param fromDomain
- * the domain part of the alias source.
- * @param toAddress the mail address destination of the alias. Mails sent to the alias will be redirected to this destination mail.
- * @throws Exception If an error occurred
- */
- void addAliasMapping(String fromAlias, String fromDomain, String toAddress) throws Exception;
-
- /**
- * Remove alias mapping
- *
- * @param fromAlias
- * the name part of the alias source.
- * @param fromDomain
- * the domain part of the alias source.
- * @param toAddress the mail address destination of the alias. Mails sent to the alias will not be redirected anymore to this destination mail.
- * @throws Exception If an error occurred
- */
- void removeAliasMapping(String fromAlias, String fromDomain, String toAddress) throws Exception;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
index fe18351..2fb789c 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
@@ -120,40 +120,4 @@ public class RecipientRewriteTableManagement extends StandardMBean implements Re
entry -> entry.getKey().asString(),
entry -> entry.getValue()));
}
-
- @Override
- public void addForwardMapping(String user, String domain, String address) throws RecipientRewriteTableException {
- MappingSource source = MappingSource.fromUser(user, domain);
- rrt.addForwardMapping(source, address);
- }
-
- @Override
- public void removeForwardMapping(String user, String domain, String address) throws RecipientRewriteTableException {
- MappingSource source = MappingSource.fromUser(user, domain);
- rrt.removeForwardMapping(source, address);
- }
-
- @Override
- public void addGroupMapping(String toUser, String toDomain, String fromAddress) throws RecipientRewriteTableException {
- MappingSource source = MappingSource.fromUser(toUser, toDomain);
- rrt.addGroupMapping(source, fromAddress);
- }
-
- @Override
- public void removeGroupMapping(String toUser, String toDomain, String fromAddress) throws RecipientRewriteTableException {
- MappingSource source = MappingSource.fromUser(toUser, toDomain);
- rrt.removeForwardMapping(source, fromAddress);
- }
-
- @Override
- public void addAliasMapping(String fromAlias, String fromDomain, String toAddress) throws RecipientRewriteTableException {
- MappingSource source = MappingSource.fromUser(fromAlias, fromDomain);
- rrt.addAliasMapping(source, toAddress);
- }
-
- @Override
- public void removeAliasMapping(String fromAlias, String fromDomain, String toAddress) throws RecipientRewriteTableException {
- MappingSource source = MappingSource.fromUser(fromAlias, fromDomain);
- rrt.removeAliasMapping(source, toAddress);
- }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
index 2b5d709..5f60ecb 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
@@ -19,6 +19,7 @@
package org.apache.james.mailets;
+import static io.restassured.RestAssured.given;
import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
@@ -31,12 +32,17 @@ import org.apache.james.probe.DataProbe;
import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.IMAPMessageReader;
import org.apache.james.utils.SMTPMessageSender;
+import org.apache.james.utils.WebAdminGuiceProbe;
+import org.apache.james.webadmin.WebAdminUtils;
+import org.apache.james.webadmin.routes.ForwardRoutes;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
+import io.restassured.specification.RequestSpecification;
+
public class RecipientRewriteTableIntegrationTest {
private static final String JAMES_ANOTHER_DOMAIN = "james.com";
@@ -60,6 +66,7 @@ public class RecipientRewriteTableIntegrationTest {
private TemporaryJamesServer jamesServer;
private DataProbe dataProbe;
+ private RequestSpecification webAdminApi;
@Before
public void setup() throws Exception {
@@ -72,6 +79,11 @@ public class RecipientRewriteTableIntegrationTest {
dataProbe.addUser(RECIPIENT, PASSWORD);
dataProbe.addUser(ANY_AT_JAMES, PASSWORD);
dataProbe.addUser(OTHER_AT_JAMES, PASSWORD);
+
+ WebAdminGuiceProbe webAdminGuiceProbe = jamesServer.getProbe(WebAdminGuiceProbe.class);
+ webAdminGuiceProbe.await();
+ webAdminApi = given()
+ .spec(WebAdminUtils.buildRequestSpecification(webAdminGuiceProbe.getWebAdminPort()).build());
}
@After
@@ -182,8 +194,8 @@ public class RecipientRewriteTableIntegrationTest {
@Test
public void rrtServiceShouldDeliverEmailToForwardRecipients() throws Exception {
- dataProbe.addForwardMapping(RECIPIENT_LOCAL_PART, DEFAULT_DOMAIN, ANY_AT_JAMES);
- dataProbe.addForwardMapping(RECIPIENT_LOCAL_PART, DEFAULT_DOMAIN, OTHER_AT_JAMES);
+ webAdminApi.put(ForwardRoutes.ROOT_PATH + "/" + RECIPIENT + "/targets/" + ANY_AT_JAMES);
+ webAdminApi.put(ForwardRoutes.ROOT_PATH + "/" + RECIPIENT + "/targets/" + OTHER_AT_JAMES);
messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
.sendMessage(FROM, RECIPIENT);
@@ -203,7 +215,7 @@ public class RecipientRewriteTableIntegrationTest {
public void rrtServiceShouldFollowForwardWhenSendingToAGroup() throws Exception {
dataProbe.addAddressMapping(GROUP_LOCAL_PART, DEFAULT_DOMAIN, ANY_AT_JAMES);
- dataProbe.addForwardMapping(ANY_LOCAL_PART, DEFAULT_DOMAIN, OTHER_AT_JAMES);
+ webAdminApi.put(ForwardRoutes.ROOT_PATH + "/" + ANY_AT_JAMES + "/targets/" + OTHER_AT_JAMES);
messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
.sendMessage(FROM, GROUP);
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AliasMappingTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AliasMappingTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AliasMappingTest.java
index e400712..05d2dcd 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AliasMappingTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AliasMappingTest.java
@@ -32,6 +32,7 @@ import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.jmap.mailet.VacationMailet;
import org.apache.james.jmap.mailet.filter.JMAPFiltering;
import org.apache.james.mailbox.model.MailboxConstants;
+import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailets.TemporaryJamesServer;
import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -47,10 +48,13 @@ import org.apache.james.transport.matchers.IsSenderInRRTLoop;
import org.apache.james.transport.matchers.RecipientIsLocal;
import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.IMAPMessageReader;
+import org.apache.james.utils.MailRepositoryProbeImpl;
import org.apache.james.utils.SMTPMessageSender;
import org.apache.james.utils.WebAdminGuiceProbe;
import org.apache.james.webadmin.WebAdminUtils;
import org.apache.james.webadmin.routes.AliasRoutes;
+import org.apache.james.webadmin.routes.ForwardRoutes;
+import org.apache.james.webadmin.routes.GroupsRoutes;
import org.apache.mailet.base.test.FakeMail;
import org.junit.After;
import org.junit.Before;
@@ -118,10 +122,7 @@ public class AliasMappingTest {
.addProperty("repositoryPath", RRT_ERROR_REPOSITORY.asString()))
.addMailet(MailetConfiguration.builder()
.matcher(IsSenderInRRTLoop.class)
- .mailet(Null.class))
- .addMailet(MailetConfiguration.builder()
- .matcher(All.class)
- .mailet(Bounce.class)));
+ .mailet(Null.class)));
jamesServer = TemporaryJamesServer.builder()
.withMailetContainer(mailetContainer)
@@ -134,9 +135,9 @@ public class AliasMappingTest {
dataProbe.addUser(ALICE_ADDRESS, PASSWORD);
dataProbe.addUser(CEDRIC_ADDRESS, PASSWORD);
- jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxConstants.USER_NAMESPACE, BOB_ADDRESS, "INBOX");
- jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxConstants.USER_NAMESPACE, ALICE_ADDRESS, "INBOX");
- jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxConstants.USER_NAMESPACE, CEDRIC_ADDRESS, "INBOX");
+ jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxPath.forUser(BOB_ADDRESS, MailboxConstants.INBOX));
+ jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxPath.forUser(ALICE_ADDRESS, MailboxConstants.INBOX));
+ jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxPath.forUser(CEDRIC_ADDRESS, MailboxConstants.INBOX));
WebAdminGuiceProbe webAdminGuiceProbe = jamesServer.getProbe(WebAdminGuiceProbe.class);
webAdminGuiceProbe.await();
@@ -174,7 +175,7 @@ public class AliasMappingTest {
@Test
public void messageShouldRedirectToForwardOfUserWhenSentToHisAlias() throws Exception {
webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + BOB_ADDRESS + "/sources/" + BOB_ALIAS);
- dataProbe.addForwardMapping(BOB_USER, DOMAIN, CEDRIC_ADDRESS);
+ webAdminApi.put(ForwardRoutes.ROOT_PATH + "/" + BOB_ADDRESS + "/targets/" + CEDRIC_ADDRESS);
messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
.sendMessage(FakeMail.builder()
@@ -192,7 +193,7 @@ public class AliasMappingTest {
@Test
public void messageShouldRedirectToUserWhenForwardedToHisAlias() throws Exception {
webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + BOB_ADDRESS + "/sources/" + BOB_ALIAS);
- dataProbe.addForwardMapping(ALICE_USER, DOMAIN, BOB_ALIAS);
+ webAdminApi.put(ForwardRoutes.ROOT_PATH + "/" + ALICE_ADDRESS + "/targets/" + BOB_ALIAS);
messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
.sendMessage(FakeMail.builder()
@@ -210,7 +211,7 @@ public class AliasMappingTest {
@Test
public void messageShouldRedirectToUserWhenHisAliasIsPartOfGroup() throws Exception {
webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + BOB_ADDRESS + "/sources/" + BOB_ALIAS);
- dataProbe.addGroupMapping(GROUP, DOMAIN, BOB_ALIAS);
+ webAdminApi.put(GroupsRoutes.ROOT_PATH + "/" + GROUP_ADDRESS + "/" + BOB_ALIAS);
messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
.sendMessage(FakeMail.builder()
@@ -228,7 +229,7 @@ public class AliasMappingTest {
@Test
public void messageShouldRedirectToMembersWhenSentToGroupAlias() throws Exception {
webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + GROUP_ADDRESS + "/sources/" + GROUP_ALIAS);
- dataProbe.addGroupMapping(GROUP, DOMAIN, BOB_ADDRESS);
+ webAdminApi.put(GroupsRoutes.ROOT_PATH + "/" + GROUP_ADDRESS + "/" + BOB_ADDRESS);
messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
.sendMessage(FakeMail.builder()
@@ -244,7 +245,7 @@ public class AliasMappingTest {
}
@Test
- public void messageShouldRedirectToUserWhithAliasesCascading() throws Exception {
+ public void messageShouldRedirectToUserWithAliasesCascading() throws Exception {
webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + BOB_ADDRESS + "/sources/" + BOB_ALIAS);
webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + BOB_ALIAS + "/sources/" + BOB_ALIAS_2);
@@ -341,4 +342,25 @@ public class AliasMappingTest {
.awaitMessage(awaitAtMostOneMinute);
}
+ @Test
+ public void messageShouldBeStoredInRepositoryWhenAliasLoopMapping() throws Exception {
+ String bobAlias3 = BOB_USER + "-alias3@" + DOMAIN;
+
+ webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + BOB_ALIAS_2 + "/sources/" + BOB_ALIAS);
+
+ webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + bobAlias3 + "/sources/" + BOB_ALIAS_2);
+
+ webAdminApi.put(AliasRoutes.ROOT_PATH + "/" + BOB_ALIAS + "/sources/" + bobAlias3);
+
+ messageSender.connect(LOCALHOST_IP, jamesServer.getProbe(SmtpGuiceProbe.class).getSmtpPort())
+ .sendMessage(FakeMail.builder()
+ .mimeMessage(message)
+ .sender(ALICE_ADDRESS)
+ .recipient(BOB_ALIAS));
+
+ awaitAtMostOneMinute.until(
+ () -> jamesServer.getProbe(MailRepositoryProbeImpl.class)
+ .getRepositoryMailCount(RRT_ERROR_REPOSITORY) == 1);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
index a2ff045..6dde31f 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
@@ -32,6 +32,7 @@ import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.jmap.mailet.VacationMailet;
import org.apache.james.jmap.mailet.filter.JMAPFiltering;
import org.apache.james.mailbox.model.MailboxConstants;
+import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailets.TemporaryJamesServer;
import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -130,8 +131,8 @@ public class GroupMappingTest {
dataProbe.addUser(USER_DOMAIN1, PASSWORD);
dataProbe.addUser(USER_DOMAIN2, PASSWORD);
- jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxConstants.USER_NAMESPACE, USER_DOMAIN1, "INBOX");
- jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxConstants.USER_NAMESPACE, USER_DOMAIN2, "INBOX");
+ jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxPath.forUser(USER_DOMAIN1, MailboxConstants.INBOX));
+ jamesServer.getProbe(MailboxProbeImpl.class).createMailbox(MailboxPath.forUser(USER_DOMAIN2, MailboxConstants.INBOX));
WebAdminGuiceProbe webAdminGuiceProbe = jamesServer.getProbe(WebAdminGuiceProbe.class);
webAdminGuiceProbe.await();
http://git-wip-us.apache.org/repos/asf/james-project/blob/21cde6d2/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
index 33b53da..153a76e 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
@@ -40,7 +40,10 @@ import org.apache.james.probe.DataProbe;
import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.WebAdminGuiceProbe;
import org.apache.james.webadmin.WebAdminUtils;
+import org.apache.james.webadmin.routes.AliasRoutes;
import org.apache.james.webadmin.routes.DomainsRoutes;
+import org.apache.james.webadmin.routes.ForwardRoutes;
+import org.apache.james.webadmin.routes.GroupsRoutes;
import org.apache.james.webadmin.routes.HealthCheckRoutes;
import org.apache.james.webadmin.routes.MailQueueRoutes;
import org.apache.james.webadmin.routes.MailRepositoriesRoutes;
@@ -60,6 +63,8 @@ public class WebAdminServerIntegrationTest {
private static final String DOMAIN = "domain";
private static final String USERNAME = "username@" + DOMAIN;
+ private static final String USERNAME_2 = "username2@" + DOMAIN;
+ private static final String GROUP = "group@" + DOMAIN;
private static final String SPECIFIC_DOMAIN = DomainsRoutes.DOMAINS + SEPARATOR + DOMAIN;
private static final String SPECIFIC_USER = UserRoutes.USERS + SEPARATOR + USERNAME;
private static final String MAILBOX = "mailbox";
@@ -279,50 +284,62 @@ public class WebAdminServerIntegrationTest {
@Test
public void addressGroupsEndpointShouldHandleRequests() throws Exception {
- dataProbe.addGroupMapping("group", "domain.com", "user1@domain.com");
- dataProbe.addGroupMapping("group", "domain.com", "user2@domain.com");
+ dataProbe.addDomain(DOMAIN);
+
+ with()
+ .put(GroupsRoutes.ROOT_PATH + SEPARATOR + GROUP + SEPARATOR + USERNAME);
+ with()
+ .put(GroupsRoutes.ROOT_PATH + SEPARATOR + GROUP + SEPARATOR + USERNAME_2);
List<String> members = when()
- .get("/address/groups/group@domain.com")
+ .get(GroupsRoutes.ROOT_PATH + SEPARATOR + GROUP)
.then()
.statusCode(HttpStatus.OK_200)
.contentType(JSON_CONTENT_TYPE)
.extract()
.jsonPath()
.getList(".");
- assertThat(members).containsOnly("user1@domain.com", "user2@domain.com");
+ assertThat(members).containsOnly(USERNAME, USERNAME_2);
}
@Test
public void addressForwardsEndpointShouldListForwardAddresses() throws Exception {
- dataProbe.addForwardMapping("from1", "domain.com", "user1@domain.com");
- dataProbe.addForwardMapping("from2", "domain.com", "user2@domain.com");
+ dataProbe.addDomain(DOMAIN);
+ dataProbe.addUser(USERNAME, "anyPassword");
+ dataProbe.addUser(USERNAME_2, "anyPassword");
+
+ with()
+ .put(ForwardRoutes.ROOT_PATH + SEPARATOR + USERNAME + "/targets/to1@domain.com");
+ with()
+ .put(ForwardRoutes.ROOT_PATH + SEPARATOR + USERNAME_2 + "/targets/to2@domain.com");
List<String> members = when()
- .get("/address/forwards")
+ .get(ForwardRoutes.ROOT_PATH)
.then()
.statusCode(HttpStatus.OK_200)
.contentType(JSON_CONTENT_TYPE)
.extract()
.jsonPath()
.getList(".");
- assertThat(members).containsOnly("from1@domain.com", "from2@domain.com");
+ assertThat(members).containsOnly(USERNAME, USERNAME_2);
}
@Test
- public void addressAliasesEndpointShouldListAliasesAddresses() throws Exception {
- dataProbe.addAliasMapping("alias1", "domain.com", "to1@domain.com");
- dataProbe.addAliasMapping("alias2", "domain.com", "to2@domain.com");
+ public void addressAliasesEndpointShouldListAliasesAddresses() {
+ with()
+ .put(AliasRoutes.ROOT_PATH + SEPARATOR + USERNAME + "/sources/alias1@domain.com");
+ with()
+ .put(AliasRoutes.ROOT_PATH + SEPARATOR + USERNAME_2 + "/sources/alias2@domain.com");
List<String> members = when()
- .get("/address/aliases")
+ .get(AliasRoutes.ROOT_PATH)
.then()
.statusCode(HttpStatus.OK_200)
.contentType(JSON_CONTENT_TYPE)
.extract()
.jsonPath()
.getList(".");
- assertThat(members).containsOnly("to1@domain.com", "to2@domain.com");
+ assertThat(members).containsOnly(USERNAME, USERNAME_2);
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org