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/10/31 09:48:42 UTC
[james-project] 04/06: JAMES-2936 add a method to check for empty
names in the hierarchy in a mailbox path
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 63d8419fb6b655243423f795647104e2ce227f03
Author: RĂ©mi KOWALSKI <rk...@linagora.com>
AuthorDate: Mon Oct 28 15:14:49 2019 +0100
JAMES-2936 add a method to check for empty names in the hierarchy in a mailbox path
---
.../apache/james/mailbox/model/MailboxPath.java | 7 +++
.../james/mailbox/model/MailboxPathTest.java | 56 ++++++++++++++++++++++
2 files changed, 63 insertions(+)
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
index ec6a2ee..d6c2621 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
@@ -147,6 +147,13 @@ public class MailboxPath {
return this;
}
+ public boolean hasEmptyNameInHierarchy(char pathDelimiter) {
+ String delimiterString = String.valueOf(pathDelimiter);
+ return this.name.isEmpty()
+ || this.name.contains(delimiterString + delimiterString)
+ || this.name.startsWith(delimiterString)
+ || this.name.endsWith(delimiterString);
+ }
public String asString() {
return namespace + ":" + user + ":" + name;
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java
index 422d587..d6606cc 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxPathTest.java
@@ -126,6 +126,62 @@ public class MailboxPathTest {
}
@Test
+ public void hasEmptyNameInHierarchyShouldBeFalseIfSingleLevelPath() {
+ assertThat(MailboxPath.forUser("user", "a")
+ .hasEmptyNameInHierarchy('.'))
+ .isFalse();
+ }
+
+ @Test
+ public void hasEmptyNameInHierarchyShouldBeFalseIfNestedLevelWithNonEmptyNames() {
+ assertThat(MailboxPath.forUser("user", "a.b.c")
+ .hasEmptyNameInHierarchy('.'))
+ .isFalse();
+ }
+
+ @Test
+ public void hasEmptyNameInHierarchyShouldBeTrueIfEmptyPath() {
+ assertThat(MailboxPath.forUser("user", "")
+ .hasEmptyNameInHierarchy('.'))
+ .isTrue();
+ }
+
+ @Test
+ public void hasEmptyNameInHierarchyShouldBeTrueIfPathWithTwoEmptyNames() {
+ assertThat(MailboxPath.forUser("user", ".")
+ .hasEmptyNameInHierarchy('.'))
+ .isTrue();
+ }
+
+ @Test
+ public void hasEmptyNameInHierarchyShouldBeTrueIfPathWithAnEmptyNameBetweenTwoNames() {
+ assertThat(MailboxPath.forUser("user", "a..b")
+ .hasEmptyNameInHierarchy('.'))
+ .isTrue();
+ }
+
+ @Test
+ public void hasEmptyNameInHierarchyShouldBeTrueIfPathWithHeadingEmptyNames() {
+ assertThat(MailboxPath.forUser("user", "..a")
+ .hasEmptyNameInHierarchy('.'))
+ .isTrue();
+ }
+
+ @Test
+ public void hasEmptyNameInHierarchyShouldBeTrueIfPathWithATrailingEmptyName() {
+ assertThat(MailboxPath.forUser("user", "a.")
+ .hasEmptyNameInHierarchy('.'))
+ .isTrue();
+ }
+
+ @Test
+ public void hasEmptyNameInHierarchyShouldBeTrueIfPathWithTrailingEmptyNames() {
+ assertThat(MailboxPath.forUser("user", "a..")
+ .hasEmptyNameInHierarchy('.'))
+ .isTrue();
+ }
+
+ @Test
public void isInboxShouldReturnTrueWhenINBOX() {
MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", DefaultMailboxes.INBOX);
assertThat(mailboxPath.isInbox()).isTrue();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org