Search in sources :

Example 6 with ZSearchParams

use of com.zimbra.client.ZSearchParams in project zm-mailbox by Zimbra.

the class TestSearchJunkTrash method testTrash.

@Test
public void testTrash() throws ServiceException {
    ZSearchParams params = new ZSearchParams(String.format("(in:trash) (inid:%s OR is:local)", folder.getId()));
    ZSearchResult results = mbox.search(params);
    assertEquals(1, results.getHits().size());
}
Also used : ZSearchResult(com.zimbra.client.ZSearchResult) ZSearchParams(com.zimbra.client.ZSearchParams) Test(org.junit.Test)

Example 7 with ZSearchParams

use of com.zimbra.client.ZSearchParams in project zm-mailbox by Zimbra.

the class TestAccessKeyGrant method disable_testKeyGrant.

public void disable_testKeyGrant() throws Exception {
    ZMailbox mbox = getZMailboxByKey();
    // ZFolder folder = mbox.getFolderByPath(FOLDER_PATH);
    StringBuffer query = new StringBuffer();
    query.append("(inid:");
    // query.append(folder.getId());
    query.append("10");
    query.append(")");
    ZSearchParams sp = new ZSearchParams(query.toString());
    sp.setTypes(ZSearchParams.TYPE_APPOINTMENT);
    mbox.search(sp);
}
Also used : ZMailbox(com.zimbra.client.ZMailbox) ZSearchParams(com.zimbra.client.ZSearchParams)

Example 8 with ZSearchParams

use of com.zimbra.client.ZSearchParams in project zm-mailbox by Zimbra.

the class TestLongSearchResultSets method testMessages.

@Test
public void testMessages() {
    try {
        Mailbox recieverMbox = TestUtil.getMailbox(RECIPIENT);
        long timestamp = System.currentTimeMillis() - 3600 * 60 * 1000;
        int numMessages = 2257;
        int firstLimit = 100;
        int incLimit = 50;
        int offset = 0;
        ArrayList<String> expectedIds = new ArrayList<String>();
        for (int i = 0; i < numMessages; i++) {
            Message msg = TestUtil.addMessage(recieverMbox, TestUtil.getAddress(RECIPIENT), TestUtil.getAddress(SENDER), NAME_PREFIX + " testing bug " + i, String.format("this message contains a search string %s which we are searching for and a number %d and timestamp %d", SEARCH_STRING, i, timestamp), timestamp);
            expectedIds.add(Integer.toString(msg.getId()));
            timestamp += 1000;
            Thread.sleep(100);
        }
        Collections.reverse(expectedIds);
        Thread.sleep(100);
        ZMailbox zmbx = TestUtil.getZMailbox(RECIPIENT);
        ZSearchParams searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
        searchParams.setSortBy(SearchSortBy.dateDesc);
        searchParams.setLimit(firstLimit);
        searchParams.setTypes(ZSearchParams.TYPE_MESSAGE);
        List<String> msgIds = TestUtil.searchMessageIds(zmbx, searchParams);
        assertEquals(firstLimit, msgIds.size());
        int gotMessages = msgIds.size();
        List<String> seenIds = new ArrayList<String>();
        seenIds.addAll(msgIds);
        int recCount = 1;
        offset += firstLimit;
        while (gotMessages > 0) {
            searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
            searchParams.setSortBy(SearchSortBy.dateDesc);
            searchParams.setLimit(incLimit);
            searchParams.setTypes(ZSearchParams.TYPE_MESSAGE);
            searchParams.setOffset(offset);
            msgIds = TestUtil.searchMessageIds(zmbx, searchParams);
            recCount++;
            gotMessages = msgIds.size();
            int resCount = 0;
            for (String szId : msgIds) {
                assertFalse(String.format("Request %d, result %d, encountered duplicate ID %s. Previously seen at %d", recCount, resCount, szId, seenIds.indexOf(szId)), seenIds.contains(szId));
                seenIds.add(szId);
                resCount++;
            }
            //jetty sometimes crashes on Mac when bombarded with request without a timeout
            Thread.sleep(100);
            offset += incLimit;
        }
        for (int i = 0; i < expectedIds.size(); i++) {
            assertEquals("IDs at index " + i + " do not match", expectedIds.get(i), seenIds.get(i));
        }
        assertEquals("Returned incorrect number of messages", numMessages, seenIds.size());
    } catch (ServiceException e) {
        e.printStackTrace();
        fail(e.getMessage());
    } catch (Exception e) {
        e.printStackTrace();
        fail(e.getMessage());
    }
}
Also used : ZMailbox(com.zimbra.client.ZMailbox) Mailbox(com.zimbra.cs.mailbox.Mailbox) ZMailbox(com.zimbra.client.ZMailbox) Message(com.zimbra.cs.mailbox.Message) ServiceException(com.zimbra.common.service.ServiceException) ZSearchParams(com.zimbra.client.ZSearchParams) ArrayList(java.util.ArrayList) ServiceException(com.zimbra.common.service.ServiceException) Test(org.junit.Test)

Example 9 with ZSearchParams

use of com.zimbra.client.ZSearchParams in project zm-mailbox by Zimbra.

the class TestLongSearchResultSets method testConversations2.

@Test
public void testConversations2() {
    try {
        Mailbox recieverMbox = TestUtil.getMailbox(RECIPIENT2);
        long timestamp = System.currentTimeMillis() - 3600 * 60 * 1000;
        int numMessages = 3207;
        int firstLimit = 100;
        int incLimit = 50;
        int offset = 0;
        ArrayList<String> expectedIds = new ArrayList<String>();
        for (int i = 0; i < numMessages; i++) {
            Message msg = TestUtil.addMessage(recieverMbox, TestUtil.getAddress(RECIPIENT2), TestUtil.getAddress(SENDER), NAME_PREFIX + " testing bug " + i, String.format("this message contains a search string %s which we are searching for and a number %d and timestamp %d", SEARCH_STRING, i, timestamp), timestamp);
            expectedIds.add(Integer.toString(msg.getId()));
            timestamp += 1000;
            Thread.sleep(100);
        }
        Collections.reverse(expectedIds);
        Thread.sleep(100);
        ZMailbox zmbx = TestUtil.getZMailbox(RECIPIENT2);
        ZSearchParams searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
        searchParams.setSortBy(SearchSortBy.dateDesc);
        searchParams.setLimit(firstLimit);
        searchParams.setTypes(ZSearchParams.TYPE_CONVERSATION);
        List<String> msgIds = TestUtil.searchMessageIds(zmbx, searchParams);
        assertEquals(firstLimit, msgIds.size());
        int gotMessages = msgIds.size();
        List<String> seenIds = new ArrayList<String>();
        seenIds.addAll(msgIds);
        int recCount = 1;
        offset += firstLimit;
        while (gotMessages > 0) {
            searchParams = new ZSearchParams("in:inbox " + SEARCH_STRING);
            searchParams.setSortBy(SearchSortBy.dateDesc);
            searchParams.setLimit(incLimit);
            searchParams.setTypes(ZSearchParams.TYPE_CONVERSATION);
            searchParams.setOffset(offset);
            msgIds = TestUtil.searchMessageIds(zmbx, searchParams);
            recCount++;
            gotMessages = msgIds.size();
            int resCount = 0;
            for (String szId : msgIds) {
                assertFalse(String.format("Request %d, result %d, encountered duplicate ID %s. Previously seen at %d", recCount, resCount, szId, seenIds.indexOf(szId)), seenIds.contains(szId));
                seenIds.add(szId);
                resCount++;
            }
            //jetty sometimes crashes on Mac when bombarded with request without a timeout
            Thread.sleep(100);
            offset += incLimit;
        }
        assertEquals("Returned incorrect number of conversations", numMessages, seenIds.size());
    } catch (ServiceException e) {
        e.printStackTrace();
        fail(e.getMessage());
    } catch (Exception e) {
        e.printStackTrace();
        fail(e.getMessage());
    }
}
Also used : ZMailbox(com.zimbra.client.ZMailbox) Mailbox(com.zimbra.cs.mailbox.Mailbox) ZMailbox(com.zimbra.client.ZMailbox) Message(com.zimbra.cs.mailbox.Message) ServiceException(com.zimbra.common.service.ServiceException) ZSearchParams(com.zimbra.client.ZSearchParams) ArrayList(java.util.ArrayList) ServiceException(com.zimbra.common.service.ServiceException) Test(org.junit.Test)

Example 10 with ZSearchParams

use of com.zimbra.client.ZSearchParams in project zm-mailbox by Zimbra.

the class TestMinusOperator method testExcludeRecipient.

@Test
public void testExcludeRecipient() throws ServiceException {
    ZSearchResult search1 = mbox.search(new ZSearchParams("in:sent to:" + REMOTE_USER_NAME));
    assertEquals(search1.getHits().size(), 1);
    ZSearchResult search2 = mbox.search(new ZSearchParams("in:sent -to:" + REMOTE_USER_NAME));
    assertEquals(search2.getHits().size(), 0);
}
Also used : ZSearchResult(com.zimbra.client.ZSearchResult) ZSearchParams(com.zimbra.client.ZSearchParams) Test(org.junit.Test)

Aggregations

ZSearchParams (com.zimbra.client.ZSearchParams)31 Test (org.junit.Test)21 ZSearchResult (com.zimbra.client.ZSearchResult)17 ArrayList (java.util.ArrayList)12 ZMailbox (com.zimbra.client.ZMailbox)11 ZSearchHit (com.zimbra.client.ZSearchHit)9 ServiceException (com.zimbra.common.service.ServiceException)9 Mailbox (com.zimbra.cs.mailbox.Mailbox)9 Message (com.zimbra.cs.mailbox.Message)9 ZMessage (com.zimbra.client.ZMessage)5 Cursor (com.zimbra.client.ZSearchParams.Cursor)4 ParsedMessage (com.zimbra.cs.mime.ParsedMessage)2 SearchSortBy (com.zimbra.soap.type.SearchSortBy)2 ZMessageHit (com.zimbra.client.ZMessageHit)1 ZSearchPagerResult (com.zimbra.client.ZSearchPagerResult)1 SoapFaultException (com.zimbra.common.soap.SoapFaultException)1 Account (com.zimbra.cs.account.Account)1 Date (java.util.Date)1