Author: btellier Date: Wed Jun 17 09:03:48 2015 New Revision: 1685957 URL: http://svn.apache.org/r1685957 Log: MAILBOX-239 Add tests to demonstrate Cassandra backend does not take namespace nor user into account
Modified: james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMailboxMapperTest.java Modified: james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMailboxMapperTest.java URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMailboxMapperTest.java?rev=1685957&r1=1685956&r2=1685957&view=diff ============================================================================== --- james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMailboxMapperTest.java (original) +++ james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMailboxMapperTest.java Wed Jun 17 09:03:48 2015 @@ -60,6 +60,8 @@ public abstract class AbstractMailboxMap private MailboxPath benwaWorkDonePath; private SimpleMailbox<Id> benwaWorkDoneMailbox; private MailboxPath bobInboxPath; + private SimpleMailbox<Id> bobyMailbox; + private MailboxPath bobyMailboxPath; private SimpleMailbox<Id> bobInboxMailbox; private MailboxPath esnDevGroupInboxPath; private SimpleMailbox<Id> esnDevGroupInboxMailbox; @@ -73,6 +75,8 @@ public abstract class AbstractMailboxMap private SimpleMailbox<Id> obmTeamGroupOPushMailbox; private MailboxPath obmTeamGroupRoundCubePath; private SimpleMailbox<Id> obmTeamGroupRoundCubeMailbox; + private MailboxPath bobDifferentNamespacePath; + private SimpleMailbox<Id> bobDifferentNamespaceMailbox; public AbstractMailboxMapperTest(MapperProvider<Id> mapperProvider) { this.mapperProvider = mapperProvider; @@ -83,6 +87,8 @@ public abstract class AbstractMailboxMap benwaPersoPath = new MailboxPath("#private", "benwa", "INBOX"+DELIMITER+"perso"); benwaWorkDonePath = new MailboxPath("#private", "benwa", "INBOX"+DELIMITER+"work"+DELIMITER+"done"); bobInboxPath = new MailboxPath("#private", "bob", "INBOX"); + bobyMailboxPath = new MailboxPath("#private", "boby", "INBOX.that.is.a.trick"); + bobDifferentNamespacePath = new MailboxPath("#private_bob", "bob", "INBOX.bob"); esnDevGroupInboxPath = new MailboxPath("#community_ESN_DEV", null, "INBOX"); esnDevGroupHublinPath = new MailboxPath("#community_ESN_DEV", null, "INBOX"+DELIMITER+"hublin"); esnDevGroupJamesPath = new MailboxPath("#community_ESN_DEV", null, "INBOX"+DELIMITER+"james"); @@ -102,6 +108,8 @@ public abstract class AbstractMailboxMap obmTeamGroupInboxMailbox = createMailbox(obmTeamGroupInboxPath); obmTeamGroupOPushMailbox = createMailbox(obmTeamGroupOPushPath); obmTeamGroupRoundCubeMailbox = createMailbox(obmTeamGroupRoundCubePath); + bobyMailbox = createMailbox(bobyMailboxPath); + bobDifferentNamespaceMailbox = createMailbox(bobDifferentNamespacePath); } @Before @@ -164,6 +172,21 @@ public abstract class AbstractMailboxMap assertThat(mailboxMapper.hasChildren(esnDevGroupInboxMailbox, DELIMITER)).isTrue(); } + @Ignore("See MAILBOX-11 and JWC-125") + @Test + public void hasChildrenShouldNotBeAcrossUsersAndNamespace() throws MailboxException { + saveAll(); + assertThat(mailboxMapper.hasChildren(bobInboxMailbox, '.')).isFalse(); + } + + @Ignore("See MAILBOX-11 and JWC-125") + @Test + public void findMailboxWithPathLikeShouldBeLimitedToUserAndNamespace() throws MailboxException { + saveAll(); + MailboxPath mailboxPathQuery = new MailboxPath(bobInboxMailbox.getNamespace(), bobInboxMailbox.getUser(), "IN" + WILDCARD); + assertThat(mailboxMapper.findMailboxWithPathLike(mailboxPathQuery)).containsOnly(bobInboxMailbox); + } + @Test(expected=MailboxNotFoundException.class) public void deleteShouldEraseTheGivenMailbox() throws MailboxException { try { @@ -223,6 +246,14 @@ public abstract class AbstractMailboxMap MailboxPath regexPath = new MailboxPath(esnDevGroupInboxPath.getNamespace(), esnDevGroupInboxPath.getUser(), WILDCARD + "X"); assertThat(mailboxMapper.findMailboxWithPathLike(regexPath)).contains(esnDevGroupInboxMailbox); } + + @Ignore("Mailbox name is not escaped") + @Test + public void findMailboxWithPathLikeShouldEscapeMailboxName() throws MailboxException { + saveAll(); + MailboxPath regexPath = new MailboxPath(benwaInboxPath.getNamespace(), benwaInboxPath.getUser(), "INB?X"); + assertThat(mailboxMapper.findMailboxWithPathLike(regexPath)).isEmpty(); + } private void saveAll() throws MailboxException{ mailboxMapper.save(benwaInboxMailbox); @@ -230,13 +261,15 @@ public abstract class AbstractMailboxMap mailboxMapper.save(benwaWorkTodoMailbox); mailboxMapper.save(benwaPersoMailbox); mailboxMapper.save(benwaWorkDoneMailbox); - mailboxMapper.save(bobInboxMailbox); mailboxMapper.save(esnDevGroupInboxMailbox); mailboxMapper.save(esnDevGroupHublinMailbox); mailboxMapper.save(esnDevGroupJamesMailbox); mailboxMapper.save(obmTeamGroupInboxMailbox); mailboxMapper.save(obmTeamGroupOPushMailbox); mailboxMapper.save(obmTeamGroupRoundCubeMailbox); + mailboxMapper.save(bobyMailbox); + mailboxMapper.save(bobDifferentNamespaceMailbox); + mailboxMapper.save(bobInboxMailbox); } private SimpleMailbox<Id> createMailbox(MailboxPath mailboxPath) { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org