JAMES-1589 Add default domain when missing
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/2bbfdcfb Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2bbfdcfb Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2bbfdcfb Branch: refs/heads/master Commit: 2bbfdcfbafe7efb3bfb6321581624dae3b1a68ca Parents: 975fcf1 Author: benwa <btell...@linagora.com> Authored: Fri Jul 28 15:09:26 2017 +0700 Committer: benwa <btell...@linagora.com> Committed: Tue Aug 8 17:08:50 2017 +0700 ---------------------------------------------------------------------- .../james/domainlist/xml/XMLDomainListTest.java | 35 ++++++++++---------- .../domainlist/lib/AbstractDomainList.java | 2 +- .../AbstractDomainListPrivateMethodsTest.java | 25 ++++++++++++++ 3 files changed, 43 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/2bbfdcfb/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java b/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java index 68e5363..d1b2d6b 100644 --- a/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java +++ b/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java @@ -32,6 +32,7 @@ import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.james.dnsservice.api.DNSService; import org.apache.james.dnsservice.api.mock.MockDNSService; import org.apache.james.domainlist.api.DomainListException; +import org.apache.james.domainlist.lib.EnvDetector; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -39,6 +40,8 @@ import org.slf4j.LoggerFactory; public class XMLDomainListTest { + public static final String DEFAULT_DOMAIN = "default.domain"; + @Rule public ExpectedException expectedException = ExpectedException.none(); @@ -50,7 +53,7 @@ public class XMLDomainListTest { for (String name : names) { configuration.addProperty("domainnames.domainname", name); } - configuration.addProperty("defaultDomain", "default.domain"); + configuration.addProperty("defaultDomain", DEFAULT_DOMAIN); return configuration; } @@ -78,12 +81,11 @@ public class XMLDomainListTest { @Test public void testNoConfiguredDomains() throws Exception { List<String> domains = new ArrayList<String>(); - XMLDomainList dom = new XMLDomainList(); + XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"), new EnvDetector()); dom.setLog(LoggerFactory.getLogger("MockLog")); dom.configure(setUpConfiguration(false, false, domains)); - dom.setDNSService(setUpDNSServer("localhost")); - assertThat(dom.getDomains()).describedAs("No domain found").isEmpty(); + assertThat(dom.getDomains()).describedAs("No domain found").containsOnly(DEFAULT_DOMAIN); } @Test @@ -92,12 +94,11 @@ public class XMLDomainListTest { domains.add("domain1."); domains.add("domain2."); - XMLDomainList dom = new XMLDomainList(); + XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"), new EnvDetector()); dom.setLog(LoggerFactory.getLogger("MockLog")); dom.configure(setUpConfiguration(false, false, domains)); - dom.setDNSService(setUpDNSServer("localhost")); - assertThat(dom.getDomains()).describedAs("Two domain found").hasSize(2); + assertThat(dom.getDomains()).describedAs("Three domain found").hasSize(3); } @Test @@ -105,12 +106,11 @@ public class XMLDomainListTest { List<String> domains = new ArrayList<String>(); domains.add("domain1."); - XMLDomainList dom = new XMLDomainList(); + XMLDomainList dom = new XMLDomainList(setUpDNSServer("local"), new EnvDetector()); dom.setLog(LoggerFactory.getLogger("MockLog")); dom.configure(setUpConfiguration(true, false, domains)); - dom.setDNSService(setUpDNSServer("local")); - assertThat(dom.getDomains()).describedAs("Two domains found").hasSize(2); + assertThat(dom.getDomains()).describedAs("Two domains found").hasSize(3); } @Test @@ -118,13 +118,12 @@ public class XMLDomainListTest { List<String> domains = new ArrayList<String>(); domains.add("domain1."); - XMLDomainList dom = new XMLDomainList(); + XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"), new EnvDetector()); dom.setLog(LoggerFactory.getLogger("MockLog")); dom.configure(setUpConfiguration(true, false, domains)); - dom.setDNSService(setUpDNSServer("localhost")); - assertThat(dom.getDomains()).describedAs("One domain found").hasSize(1); + assertThat(dom.getDomains()).describedAs("One domain found").hasSize(2); } @Test @@ -134,7 +133,7 @@ public class XMLDomainListTest { List<String> domains = new ArrayList<String>(); domains.add("domain1"); - XMLDomainList testee = new XMLDomainList(); + XMLDomainList testee = new XMLDomainList(setUpDNSServer("hostname"), new EnvDetector()); testee.setLog(LoggerFactory.getLogger("MockLog")); testee.configure(setUpConfiguration(true, false, domains)); @@ -148,7 +147,7 @@ public class XMLDomainListTest { List<String> domains = new ArrayList<String>(); domains.add("domain1"); - XMLDomainList testee = new XMLDomainList(); + XMLDomainList testee = new XMLDomainList(setUpDNSServer("localhost"), new EnvDetector()); testee.setLog(LoggerFactory.getLogger("MockLog")); testee.configure(setUpConfiguration(true, false, domains)); @@ -159,15 +158,15 @@ public class XMLDomainListTest { public void configureShouldNotFailWhenConfiguringDefaultDomain() throws Exception { DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder(); - configuration.addProperty("autodetect", true); + configuration.addProperty("autodetect", false); configuration.addProperty("autodetectIP", false); configuration.addProperty("domainnames.domainname", "domain1"); configuration.addProperty("defaultDomain", "localhost"); - XMLDomainList testee = new XMLDomainList(); + XMLDomainList testee = new XMLDomainList(setUpDNSServer("localhost"), new EnvDetector()); testee.setLog(LoggerFactory.getLogger("MockLog")); testee.configure(configuration); - assertThat(testee.getDomainListInternal()).hasSize(2); + assertThat(testee.getDomainListInternal()).hasSize(3); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/2bbfdcfb/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java ---------------------------------------------------------------------- diff --git a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java index 689d35c..d103a09 100644 --- a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java +++ b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java @@ -81,7 +81,7 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf @VisibleForTesting void configureDefaultDomain(HierarchicalConfiguration config) throws ConfigurationException { try { - defaultDomain = config.getString("defaultDomain", LOCALHOST); + setDefaultDomain(config.getString("defaultDomain", LOCALHOST)); String hostName = InetAddress.getLocalHost().getHostName(); if (mayChangeDefaultDomain()) { http://git-wip-us.apache.org/repos/asf/james-project/blob/2bbfdcfb/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java ---------------------------------------------------------------------- diff --git a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java index eb82d76..8dce3d8 100644 --- a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java +++ b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java @@ -119,4 +119,29 @@ public class AbstractDomainListPrivateMethodsTest { assertThat(domainList.getDomainListInternal()).containsOnlyOnce(expectedDefaultDomain); } + + @Test + public void setDefaultDomainShouldAddDomainWhenNotContained() throws Exception { + HierarchicalConfiguration configuration = mock(HierarchicalConfiguration.class); + String expectedDefaultDomain = "myDomain.org"; + when(configuration.getString("defaultDomain", AbstractDomainList.LOCALHOST)) + .thenReturn(expectedDefaultDomain); + + domainList.configureDefaultDomain(configuration); + + assertThat(domainList.getDomainListInternal()).contains(expectedDefaultDomain); + } + + @Test + public void setDefaultDomainNotFailWhenDomainContained() throws Exception { + HierarchicalConfiguration configuration = mock(HierarchicalConfiguration.class); + String expectedDefaultDomain = "myDomain.org"; + when(configuration.getString("defaultDomain", AbstractDomainList.LOCALHOST)) + .thenReturn(expectedDefaultDomain); + + domainList.addDomain(expectedDefaultDomain); + domainList.configureDefaultDomain(configuration); + + assertThat(domainList.getDomainListInternal()).contains(expectedDefaultDomain); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org