Search in sources :

Example 11 with ImapResponse

use of com.zimbra.cs.mailclient.imap.ImapResponse in project zm-mailbox by Zimbra.

the class SharedImapTests method testOverflowAppend.

@Test(timeout = 100000)
public void testOverflowAppend() throws Exception {
    connection = connectAndSelectInbox();
    assertTrue(connection.hasCapability("UIDPLUS"));
    int oldReadTimeout = connection.getConfig().getReadTimeout();
    try {
        connection.setReadTimeout(10);
        ImapRequest req = connection.newRequest(CAtom.APPEND, new MailboxName("INBOX"));
        req.addParam("{" + ((long) (Integer.MAX_VALUE) + 1) + "+}");
        ImapResponse resp = req.send();
        assertTrue("response should be NO or BAD", resp.isNO() || resp.isBAD());
        req = connection.newRequest(CAtom.APPEND, new MailboxName("INBOX"));
        req.addParam("{" + ((long) (Integer.MAX_VALUE) + 1) + "}");
        resp = req.send();
        assertTrue("response should be NO or BAD", resp.isNO() || resp.isBAD());
    } finally {
        connection.setReadTimeout(oldReadTimeout);
    }
}
Also used : MailboxName(com.zimbra.cs.mailclient.imap.MailboxName) ImapRequest(com.zimbra.cs.mailclient.imap.ImapRequest) ImapResponse(com.zimbra.cs.mailclient.imap.ImapResponse) Test(org.junit.Test)

Example 12 with ImapResponse

use of com.zimbra.cs.mailclient.imap.ImapResponse in project zm-mailbox by Zimbra.

the class SharedImapTests method testStoreTagsDirty.

@Test(timeout = 100000)
public void testStoreTagsDirty() throws Exception {
    connection = connectAndSelectInbox();
    ZMailbox mbox = TestUtil.getZMailbox(USER);
    List<ZTag> tags = mbox.getAllTags();
    assertTrue(tags == null || tags.size() == 0);
    String tagName = "T1";
    final String tagName2 = "T2";
    ZTag tag = mbox.getTag(tagName);
    if (tag == null) {
        tag = mbox.createTag(tagName, Color.blue);
    }
    tags = mbox.getAllTags();
    assertTrue(tags != null && tags.size() == 1);
    assertEquals("T1", tags.get(0).getName());
    String folderName = "newfolder1";
    mbox.createFolder(Mailbox.ID_FOLDER_USER_ROOT + "", folderName, ZFolder.View.message, ZFolder.Color.DEFAULTCOLOR, null, null);
    mbox.addMessage(Mailbox.ID_FOLDER_INBOX + "", "u", tag.getId(), System.currentTimeMillis(), simpleMessage("foo1"), true);
    MailboxInfo info = connection.select("INBOX");
    assertTrue("INBOX does not contain expected flag " + tagName, info.getFlags().isSet(tagName));
    assertFalse("INBOX contain unexpected flag " + tagName2, info.getFlags().isSet(tagName2));
    Map<Long, MessageData> data = connection.fetch("1:*", "FLAGS");
    assertEquals(1, data.size());
    Iterator<Long> it = data.keySet().iterator();
    Long seq = it.next();
    assertTrue("flag not set on first message", data.get(seq).getFlags().isSet(tagName));
    ImapRequest req = connection.newRequest("STORE", seq + "", "+FLAGS", tagName2);
    req.setResponseHandler(new ResponseHandler() {

        @Override
        public void handleResponse(ImapResponse res) throws Exception {
            if (res.isUntagged() && res.getCCode() == CAtom.FLAGS) {
                Flags flags = (Flags) res.getData();
                assertTrue(flags.isSet(tagName2));
            }
        }
    });
    req.sendCheckStatus();
}
Also used : ResponseHandler(com.zimbra.cs.mailclient.imap.ResponseHandler) MessageData(com.zimbra.cs.mailclient.imap.MessageData) ImapRequest(com.zimbra.cs.mailclient.imap.ImapRequest) ZTag(com.zimbra.client.ZTag) ImapResponse(com.zimbra.cs.mailclient.imap.ImapResponse) Flags(com.zimbra.cs.mailclient.imap.Flags) MessagingException(javax.mail.MessagingException) CommandFailedException(com.zimbra.cs.mailclient.CommandFailedException) ServiceException(com.zimbra.common.service.ServiceException) IOException(java.io.IOException) ZMailbox(com.zimbra.client.ZMailbox) MailboxInfo(com.zimbra.cs.mailclient.imap.MailboxInfo) Test(org.junit.Test)

Aggregations

ImapResponse (com.zimbra.cs.mailclient.imap.ImapResponse)12 Test (org.junit.Test)12 CommandFailedException (com.zimbra.cs.mailclient.CommandFailedException)8 ImapRequest (com.zimbra.cs.mailclient.imap.ImapRequest)8 ResponseHandler (com.zimbra.cs.mailclient.imap.ResponseHandler)8 IOException (java.io.IOException)8 Flags (com.zimbra.cs.mailclient.imap.Flags)7 ServiceException (com.zimbra.common.service.ServiceException)6 MailboxInfo (com.zimbra.cs.mailclient.imap.MailboxInfo)6 MessagingException (javax.mail.MessagingException)6 MessageData (com.zimbra.cs.mailclient.imap.MessageData)4 ZMailbox (com.zimbra.client.ZMailbox)3 Date (java.sql.Date)3 CountDownLatch (java.util.concurrent.CountDownLatch)3 ZTag (com.zimbra.client.ZTag)2 MailException (com.zimbra.cs.mailclient.MailException)2 Literal (com.zimbra.cs.mailclient.imap.Literal)2 MailboxName (com.zimbra.cs.mailclient.imap.MailboxName)2 UnsupportedEncodingException (java.io.UnsupportedEncodingException)2 AtomicLong (java.util.concurrent.atomic.AtomicLong)2