Search in sources :

Example 6 with MailboxInfo

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

the class TestImapClient method createTestMailbox.

private void createTestMailbox(String name, int count) throws IOException, MessagingException {
    if (!connection.exists(name)) {
        connection.create(name);
    }
    MailboxInfo mb = connection.select(name);
    for (int i = (int) mb.getExists(); i < count; i++) {
        MimeMessage mm = newTestMessage(i);
        long uid = uidAppend(mm, null, null);
        LOG.debug("Appended test message " + i + ", uid = " + uid);
    }
}
Also used : ZMimeMessage(com.zimbra.common.zmime.ZMimeMessage) MimeMessage(javax.mail.internet.MimeMessage) MailboxInfo(com.zimbra.cs.mailclient.imap.MailboxInfo)

Example 7 with MailboxInfo

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

the class TestImap method testStoreTagsDirty.

@Test
public void testStoreTagsDirty() throws Exception {
    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";
    ZFolder folder = 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) ServiceException(com.zimbra.common.service.ServiceException) CommandFailedException(com.zimbra.cs.mailclient.CommandFailedException) IOException(java.io.IOException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) ZMailbox(com.zimbra.client.ZMailbox) ZFolder(com.zimbra.client.ZFolder) MailboxInfo(com.zimbra.cs.mailclient.imap.MailboxInfo) Test(org.junit.Test)

Example 8 with MailboxInfo

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

the class TestImap method testStoreInvalidSystemFlag.

@Test
public void testStoreInvalidSystemFlag() throws Exception {
    ZMailbox mbox = TestUtil.getZMailbox(USER);
    mbox.addMessage(Mailbox.ID_FOLDER_INBOX + "", "u", "", System.currentTimeMillis(), simpleMessage("foo"), true);
    MailboxInfo info = connection.select("INBOX");
    Map<Long, MessageData> data = connection.fetch("1:*", "FLAGS");
    assertEquals(1, data.size());
    Iterator<Long> it = data.keySet().iterator();
    Long seq = it.next();
    storeInvalidFlag("\\Bulk", seq);
    storeInvalidFlag("\\Unread", seq);
    storeInvalidFlag("\\Forwarded", seq);
}
Also used : ZMailbox(com.zimbra.client.ZMailbox) MessageData(com.zimbra.cs.mailclient.imap.MessageData) MailboxInfo(com.zimbra.cs.mailclient.imap.MailboxInfo) Test(org.junit.Test)

Example 9 with MailboxInfo

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

the class TestImap method testAppendTagsDirty.

@Test
public void testAppendTagsDirty() throws Exception {
    Flags flags = Flags.fromSpec("afs");
    //new tag; does not exist in mbox
    final String tag1 = "NEWDIRTYTAG";
    MailboxInfo info = connection.select("INBOX");
    assertFalse("INBOX contains unexpected flag " + tag1, info.getFlags().isSet(tag1));
    flags.set(tag1);
    Date date = new Date(System.currentTimeMillis());
    Literal msg = message(10);
    try {
        ImapRequest req = connection.newRequest("APPEND", "INBOX", flags, date, msg);
        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(tag1));
                }
            }
        });
        req.sendCheckStatus();
    } finally {
        msg.dispose();
    }
}
Also used : ResponseHandler(com.zimbra.cs.mailclient.imap.ResponseHandler) Literal(com.zimbra.cs.mailclient.imap.Literal) ImapRequest(com.zimbra.cs.mailclient.imap.ImapRequest) MailboxInfo(com.zimbra.cs.mailclient.imap.MailboxInfo) ImapResponse(com.zimbra.cs.mailclient.imap.ImapResponse) Flags(com.zimbra.cs.mailclient.imap.Flags) Date(java.sql.Date) ServiceException(com.zimbra.common.service.ServiceException) CommandFailedException(com.zimbra.cs.mailclient.CommandFailedException) IOException(java.io.IOException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Test(org.junit.Test)

Example 10 with MailboxInfo

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

the class TestImapSync method testSync.

@Test
public void testSync() throws Exception {
    LOG.info("Testing adding message to local mailbox");
    ZFolder folder = TestUtil.createFolder(localMailbox, TEST_FOLDER_1);
    TestUtil.addMessage(localMailbox, "msg1", folder.getId(), "u");
    Assert.assertFalse(imapFolder1.exists());
    syncFolders();
    Assert.assertTrue(imapFolder1.exists());
    MailboxInfo mb = imapFolder1.select();
    Assert.assertEquals(1, mb.getExists());
    Assert.assertEquals(1, mb.getUnseen());
}
Also used : ZFolder(com.zimbra.client.ZFolder) MailboxInfo(com.zimbra.cs.mailclient.imap.MailboxInfo)

Aggregations

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