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 <ARGS> not implemented.
            - Implemented imap methods


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@104877 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2015-05-26 21:54:12 +00:00
parent 95a81a4fe7
commit 2de63f795b

View File

@@ -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<NodeRef> nodeRefs = searchService.selectNodes(storeRootNodeRef, APP_COMPANY_HOME, null, namespaceService, false);
return nodeRefs.get(0);
}
/**
* MNT-12773
* @throws AddressException
*/
public void testSearchTerms() throws AddressException
{
List<AlfrescoImapFolder> mf = imapService.listMailboxes(user, IMAP_ROOT+"/"+TEST_IMAP_FOLDER_NAME+"/_*", false);
ArrayList<Long> res = new ArrayList<Long>();
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<AlfrescoImapFolder> folders, SearchTerm searchTerm, ArrayList<Long> resList)
{
for (AlfrescoImapFolder folder : folders)
{
for (long l : folder.search(searchTerm))
{
resList.add(l);
}
}
}
}