From 2de63f795b5e56f942a5b7d6ad4c908e21fdf407 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Tue, 26 May 2015 21:54:12 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud) 104819: Merged 5.0.N (5.0.2) to HEAD-BUG-FIX (5.1/Cloud) 104792: Merged DEV to 5.0.N (5.0.2) 104003 : MNT-12773: IMAP UID SEARCH not implemented. - Implemented imap methods git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@104877 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/imap/ImapServiceImplTest.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/source/test-java/org/alfresco/repo/imap/ImapServiceImplTest.java b/source/test-java/org/alfresco/repo/imap/ImapServiceImplTest.java index 9cddd9aa92..80dbae2b6c 100644 --- a/source/test-java/org/alfresco/repo/imap/ImapServiceImplTest.java +++ b/source/test-java/org/alfresco/repo/imap/ImapServiceImplTest.java @@ -22,8 +22,11 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.Serializable; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Date; +import java.util.GregorianCalendar; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -33,7 +36,17 @@ import java.util.Properties; import javax.mail.Flags; import javax.mail.Session; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; +import javax.mail.search.AndTerm; +import javax.mail.search.BodyTerm; +import javax.mail.search.ComparisonTerm; +import javax.mail.search.FromTerm; +import javax.mail.search.ReceivedDateTerm; +import javax.mail.search.SearchTerm; +import javax.mail.search.SentDateTerm; +import javax.mail.search.SubjectTerm; import javax.transaction.UserTransaction; import junit.framework.TestCase; @@ -1089,4 +1102,45 @@ public class ImapServiceImplTest extends TestCase List nodeRefs = searchService.selectNodes(storeRootNodeRef, APP_COMPANY_HOME, null, namespaceService, false); return nodeRefs.get(0); } + + /** + * MNT-12773 + * @throws AddressException + */ + public void testSearchTerms() throws AddressException + { + List mf = imapService.listMailboxes(user, IMAP_ROOT+"/"+TEST_IMAP_FOLDER_NAME+"/_*", false); + ArrayList res = new ArrayList(); + SearchTerm st = null; + + st = new SentDateTerm(ComparisonTerm.LT, new Date()); + extractSearchTermResultsToList(mf, st, res); + assertEquals("Size of mails isn't correct. Search by sent date", 3, res.size()); + + res.clear(); + st = new SubjectTerm("For Test"); + extractSearchTermResultsToList(mf, st, res); + assertEquals("Size of mails isn't correct. Search by subject", 1, res.size()); + + res.clear(); + st = new FromTerm(new InternetAddress("admin@alfresco.com")); + extractSearchTermResultsToList(mf, st, res); + assertEquals("Size of mails isn't correct. Search by \"From\" term", 1, res.size()); + + res.clear(); + st = new AndTerm(st, new SubjectTerm("For Test")); + extractSearchTermResultsToList(mf, st, res); + assertEquals("Size of mails isn't correct. Search by \"From\" and \"Subject\" terms", 1, res.size()); + } + + private void extractSearchTermResultsToList(List folders, SearchTerm searchTerm, ArrayList resList) + { + for (AlfrescoImapFolder folder : folders) + { + for (long l : folder.search(searchTerm)) + { + resList.add(l); + } + } + } }