Search in sources :

Example 96 with ZMailbox

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

the class TestJaxb method testBrowseRequestDomainsBadRegex.

/**
 * BrowseRequest should fail as regex is too complex
 */
@Test
public void testBrowseRequestDomainsBadRegex() throws Exception {
    TestUtil.createAccount(USER_NAME);
    ZMailbox zmbox = TestUtil.getZMailbox(USER_NAME);
    // If there are no messages to match at all, the browse will pass because the regex doesn't get
    // used.  Need some messages containing email addresses with domains in to match against
    TestUtil.addMessage(zmbox, NAME_PREFIX);
    forceIndexing(USER_NAME);
    BrowseRequest browseRequest = new BrowseRequest("domains", /* browseBy */
    BAD_REGEX, /* regex */
    10);
    Element envelope = doBadBrowseRequest(browseRequest);
    Assert.assertNotNull("Envelope", envelope);
    Assert.assertTrue("Error contained in SOAP response", envelope.toString().contains("regular expression match involved more than 100000 accesses for pattern"));
}
Also used : ZMailbox(com.zimbra.client.ZMailbox) Element(com.zimbra.common.soap.Element) BrowseRequest(com.zimbra.soap.mail.message.BrowseRequest) Test(org.junit.Test)

Example 97 with ZMailbox

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

the class TestJaxb method doBrowseRequest.

public BrowseResponse doBrowseRequest(BrowseRequest browseRequest) throws Exception {
    ZMailbox mbox = TestUtil.getZMailbox(USER_NAME);
    String authToken = mbox.getAuthToken().getValue();
    DocumentResult dr = new DocumentResult();
    marshaller.marshal(browseRequest, dr);
    Document doc = dr.getDocument();
    ZimbraLog.test.debug(doc.getRootElement().asXML());
    return (BrowseResponse) sendReq(envelope(authToken, doc.getRootElement().asXML()), "BrowseRequest");
}
Also used : BrowseResponse(com.zimbra.soap.mail.message.BrowseResponse) ZMailbox(com.zimbra.client.ZMailbox) DocumentResult(org.dom4j.io.DocumentResult) Document(org.dom4j.Document)

Example 98 with ZMailbox

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

the class TestJaxb method testBrowseRequestAttachmentsBadRegex.

/**
 * BrowseRequest should fail as regex is too complex
 */
@Test
public void testBrowseRequestAttachmentsBadRegex() throws Exception {
    TestUtil.createAccount(USER_NAME);
    ZMailbox zmbox = TestUtil.getZMailbox(USER_NAME);
    MessageBuilder mb = new MessageBuilder();
    String raw = mb.withSubject(NAME_PREFIX).withBody(bodyWithObject).withContentType(MimeConstants.CT_APPLICATION_PDF).create();
    TestUtil.addRawMessage(zmbox, raw);
    forceIndexing(USER_NAME);
    BrowseRequest browseRequest = new BrowseRequest("attachments", /* browseBy */
    BAD_REGEX, /* regex */
    10);
    Element envelope = doBadBrowseRequest(browseRequest);
    Assert.assertNotNull("Envelope", envelope);
    Assert.assertTrue("Error contained in SOAP response", envelope.toString().contains("regular expression match involved more than 100000 accesses for pattern"));
}
Also used : ZMailbox(com.zimbra.client.ZMailbox) Element(com.zimbra.common.soap.Element) BrowseRequest(com.zimbra.soap.mail.message.BrowseRequest) Test(org.junit.Test)

Example 99 with ZMailbox

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

the class TestFilterRFCCompliantNotify method cleanUp.

private void cleanUp() throws Exception {
    TestUtil.deleteTestData(USER_NAME, NAME_PREFIX);
    TestUtil.deleteTestData(REMOTE_USER_NAME, NAME_PREFIX);
    // Clean up messages created by testBase64Subject()
    // bug 36705 for (ZMessage msg : TestUtil.search(mMbox, "villanueva")) {
    ZMailbox mbox = TestUtil.getZMailbox(USER_NAME);
    for (ZMessage msg : TestUtil.search(mbox, "cortes de luz")) {
        mbox.deleteMessage(msg.getId());
    }
}
Also used : ZMessage(com.zimbra.client.ZMessage) ZMailbox(com.zimbra.client.ZMailbox)

Example 100 with ZMailbox

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

the class TestFilterRFCCompliantNotify method testNotifyAction.

public void testNotifyAction() throws Exception {
    if (!mAvailableRFCCompliantNotify) {
        fail("Unable to test because 'zimbraSieveNotifyActionRFCCompliant' is set to FALSE");
        return;
    }
    List<ZFilterRule> rules = new ArrayList<ZFilterRule>();
    List<ZFilterCondition> conditions = new ArrayList<ZFilterCondition>();
    List<ZFilterAction> actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZFilterCondition.ZTrueCondition());
    String notifyMsg = "This is the notification email alert";
    StringBuilder mailto = new StringBuilder("mailto:").append(TestUtil.getAddress(REMOTE_USER_NAME)).append("?body=").append(notifyMsg).append("&Importance=High&X-Priority=1");
    String subject = NAME_PREFIX + " testRFCCompliantNotifyAction";
    // add an action to notify user2
    actions.add(new ZFilterAction.ZRFCCompliantNotifyAction(TestUtil.getAddress(USER_NAME), subject, mailto.toString()));
    rules.add(new ZFilterRule("testRFCCompliantNotifyAction", true, false, conditions, actions));
    saveIncomingRules(mMbox, new ZFilterRules(rules));
    String body = "Hi, How are you today?";
    String msg = new MessageBuilder().withFrom(REMOTE_USER_NAME).withSubject(subject).withBody(body).create();
    // send msg to user1
    TestUtil.addMessageLmtp(new String[] { USER_NAME }, REMOTE_USER_NAME, msg);
    // check msg got filed into user1's mailbox
    TestUtil.getMessage(mMbox, "in:inbox subject:\"" + subject + "\"");
    // check notification msg from user1 in user2's mailbox, it should have the same subject
    ZMailbox zMailbox = TestUtil.getZMailbox(REMOTE_USER_NAME);
    List<ZMessage> msgs = TestUtil.waitForMessages(zMailbox, "in:inbox subject:\"" + subject + "\"", 1, 120000);
    ZMessage zMessage = msgs.get(0);
    // ZMessage zMessage = TestUtil.waitForMessage(zMailbox, "in:inbox subject:\"" + subject + "\"");
    ZMessage.ZMimePart mimeStructure = zMessage.getMimeStructure();
    String bodyContent = mimeStructure.getContent();
    // check body text of the notification msg
    assertTrue(bodyContent.contains(notifyMsg));
    // check headers of the notification msg
    String content = TestUtil.getContent(zMailbox, zMessage.getId());
    assertTrue(content.contains("From: " + USER_NAME));
    assertTrue(content.contains("To: " + REMOTE_USER_NAME));
    assertTrue(content.contains("Subject: " + subject));
    assertTrue(content.contains("Auto-Submitted: auto-notified;"));
    assertTrue(content.contains("X-Zimbra-Forwarded: " + USER_NAME));
}
Also used : ZMessage(com.zimbra.client.ZMessage) ZFilterCondition(com.zimbra.client.ZFilterCondition) ZFilterRule(com.zimbra.client.ZFilterRule) ArrayList(java.util.ArrayList) ZFilterAction(com.zimbra.client.ZFilterAction) ZRFCCompliantNotifyAction(com.zimbra.client.ZFilterAction.ZRFCCompliantNotifyAction) ZMailbox(com.zimbra.client.ZMailbox) ZFilterRules(com.zimbra.client.ZFilterRules)

Aggregations

ZMailbox (com.zimbra.client.ZMailbox)383 Test (org.junit.Test)288 ZFolder (com.zimbra.client.ZFolder)90 ZMessage (com.zimbra.client.ZMessage)82 Mailbox (com.zimbra.cs.mailbox.Mailbox)61 Account (com.zimbra.cs.account.Account)60 ServiceException (com.zimbra.common.service.ServiceException)55 ArrayList (java.util.ArrayList)38 IOException (java.io.IOException)35 MessageData (com.zimbra.cs.mailclient.imap.MessageData)28 ZMountpoint (com.zimbra.client.ZMountpoint)26 Message (com.zimbra.cs.mailbox.Message)24 HashMap (java.util.HashMap)23 ZOutgoingMessage (com.zimbra.client.ZMailbox.ZOutgoingMessage)21 ZTag (com.zimbra.client.ZTag)21 SoapFaultException (com.zimbra.common.soap.SoapFaultException)21 MailServiceException (com.zimbra.cs.mailbox.MailServiceException)21 ParsedMessage (com.zimbra.cs.mime.ParsedMessage)20 HttpClient (org.apache.http.client.HttpClient)19 ZSearchParams (com.zimbra.client.ZSearchParams)18