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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
