Search in sources :

Example 11 with ZHeaderCondition

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

the class TestFilter method testMarkRead.

@Test
public void testMarkRead() throws Exception {
    String folderName = NAME_PREFIX + " testMarkRead";
    // if the subject contains "testMarkRead", file into a folder and mark read
    List<ZFilterRule> rules = new ArrayList<ZFilterRule>();
    List<ZFilterCondition> conditions = new ArrayList<ZFilterCondition>();
    List<ZFilterAction> actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZHeaderCondition("subject", HeaderOp.CONTAINS, "testMarkRead"));
    actions.add(new ZFileIntoAction(folderName));
    actions.add(new ZMarkAction(MarkOp.READ));
    rules.add(new ZFilterRule("testMarkRead", true, false, conditions, actions));
    saveIncomingRules(mMbox, new ZFilterRules(rules));
    // Deliver message.
    String address = TestUtil.getAddress(USER_NAME);
    String subject = NAME_PREFIX + " testMarkRead";
    TestUtil.addMessageLmtp(subject, address, address);
    // Check folder and unread state.
    ZMessage msg = TestUtil.getMessage(mMbox, "in:\"" + folderName + "\" subject:\"" + subject + "\"");
    String flags = msg.getFlags();
    assertTrue("Unexpected flags: " + flags, flags == null || flags.indexOf(ZMessage.Flag.unread.getFlagChar()) < 0);
}
Also used : ZMessage(com.zimbra.client.ZMessage) ZHeaderCondition(com.zimbra.client.ZFilterCondition.ZHeaderCondition) ZFilterCondition(com.zimbra.client.ZFilterCondition) ArrayList(java.util.ArrayList) ZFilterRule(com.zimbra.client.ZFilterRule) ZFilterAction(com.zimbra.client.ZFilterAction) ZFileIntoAction(com.zimbra.client.ZFilterAction.ZFileIntoAction) ZMarkAction(com.zimbra.client.ZFilterAction.ZMarkAction) ZFilterRules(com.zimbra.client.ZFilterRules) Test(org.junit.Test)

Example 12 with ZHeaderCondition

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

the class TestFilter method testBackslashEscape.

public void testBackslashEscape() throws Exception {
    List<ZFilterCondition> conditions = new ArrayList<ZFilterCondition>();
    List<ZFilterAction> actions = new ArrayList<ZFilterAction>();
    List<ZFilterRule> rules = new ArrayList<ZFilterRule>();
    String folderName = NAME_PREFIX + " testBackslashEscape";
    TestUtil.createFolder(mMbox, folderName);
    // if subject contains "a \ b", file into folder
    ZFilterCondition condition = new ZHeaderCondition("subject", HeaderOp.CONTAINS, "a \\ b");
    ZFilterAction action = new ZFileIntoAction(folderName);
    conditions.add(condition);
    actions.add(action);
    rules.add(new ZFilterRule(folderName, true, false, conditions, actions));
    ZFilterRules zRules = new ZFilterRules(rules);
    saveIncomingRules(mMbox, zRules);
    // Add a message and confirm it gets filed into the correct folder
    String address = TestUtil.getAddress(USER_NAME);
    String subject = NAME_PREFIX + " a \\ b y z";
    TestUtil.addMessageLmtp(subject, address, address);
    TestUtil.getMessage(mMbox, "in:\"" + folderName + "\" subject:\"" + subject + "\"");
}
Also used : ZHeaderCondition(com.zimbra.client.ZFilterCondition.ZHeaderCondition) ZFilterCondition(com.zimbra.client.ZFilterCondition) ZFileIntoAction(com.zimbra.client.ZFilterAction.ZFileIntoAction) ArrayList(java.util.ArrayList) ZFilterAction(com.zimbra.client.ZFilterAction) ZFilterRule(com.zimbra.client.ZFilterRule) ZFilterRules(com.zimbra.client.ZFilterRules)

Example 13 with ZHeaderCondition

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

the class TestFilter method getTestIncomingRules.

private ZFilterRules getTestIncomingRules() throws Exception {
    List<ZFilterRule> rules = new ArrayList<ZFilterRule>();
    List<ZFilterCondition> conditions = new ArrayList<ZFilterCondition>();
    List<ZFilterAction> actions = new ArrayList<ZFilterAction>();
    // if subject contains "folder1", file into folder1 and tag with tag1
    conditions = new ArrayList<ZFilterCondition>();
    actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZHeaderCondition("subject", HeaderOp.CONTAINS, "folder1"));
    actions.add(new ZFileIntoAction(FOLDER1_PATH));
    actions.add(new ZTagAction(TAG1_NAME));
    rules.add(new ZFilterRule("testMatchMultipleFilters1", true, false, conditions, actions));
    // if from contains "multiplefilters", file into folder 2, tag with tag2 and flag
    conditions = new ArrayList<ZFilterCondition>();
    actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZHeaderCondition("from", HeaderOp.CONTAINS, "multiplefilters"));
    actions.add(new ZFileIntoAction(FOLDER2_PATH));
    actions.add(new ZTagAction(TAG2_NAME));
    actions.add(new ZMarkAction(MarkOp.FLAGGED));
    rules.add(new ZFilterRule("testMatchMultipleFilters2", true, false, conditions, actions));
    // if subject contains bug5455, flag, file into folder1, tag with tag1, file into folder2
    conditions = new ArrayList<ZFilterCondition>();
    actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZHeaderCondition("subject", HeaderOp.CONTAINS, "bug5455"));
    actions.add(new ZMarkAction(MarkOp.FLAGGED));
    actions.add(new ZFileIntoAction(FOLDER1_PATH));
    actions.add(new ZTagAction(TAG1_NAME));
    actions.add(new ZFileIntoAction(FOLDER2_PATH));
    rules.add(new ZFilterRule("testBug5455", true, false, conditions, actions));
    // if subject contains "discard", discard the message
    conditions = new ArrayList<ZFilterCondition>();
    actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZHeaderCondition("subject", HeaderOp.CONTAINS, "doDiscard"));
    actions.add(new ZDiscardAction());
    rules.add(new ZFilterRule("testDiscard", true, false, conditions, actions));
    // if subject contains "mountpointRoot", file into the mountpoint root folder
    conditions = new ArrayList<ZFilterCondition>();
    actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZHeaderCondition("subject", HeaderOp.CONTAINS, "mountpointRoot"));
    actions.add(new ZFileIntoAction("/" + MOUNTPOINT_FOLDER_NAME));
    rules.add(new ZFilterRule("testMountpoint", true, false, conditions, actions));
    // if subject contains "mountpointSub", file into the mountpoint subfolder
    conditions = new ArrayList<ZFilterCondition>();
    actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZHeaderCondition("subject", HeaderOp.CONTAINS, "mountpointSub"));
    actions.add(new ZFileIntoAction(MOUNTPOINT_SUBFOLDER_PATH));
    rules.add(new ZFilterRule("testMountpointSubfolder", true, false, conditions, actions));
    return new ZFilterRules(rules);
}
Also used : ZDiscardAction(com.zimbra.client.ZFilterAction.ZDiscardAction) ZHeaderCondition(com.zimbra.client.ZFilterCondition.ZHeaderCondition) ZFilterCondition(com.zimbra.client.ZFilterCondition) ArrayList(java.util.ArrayList) ZFilterRule(com.zimbra.client.ZFilterRule) ZFilterAction(com.zimbra.client.ZFilterAction) ZFileIntoAction(com.zimbra.client.ZFilterAction.ZFileIntoAction) ZTagAction(com.zimbra.client.ZFilterAction.ZTagAction) ZMarkAction(com.zimbra.client.ZFilterAction.ZMarkAction) ZFilterRules(com.zimbra.client.ZFilterRules)

Example 14 with ZHeaderCondition

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

the class TestFilterRFCCompliantNotify method getTestIncomingRules.

private ZFilterRules getTestIncomingRules() throws Exception {
    List<ZFilterRule> rules = new ArrayList<ZFilterRule>();
    List<ZFilterCondition> conditions = new ArrayList<ZFilterCondition>();
    List<ZFilterAction> actions = new ArrayList<ZFilterAction>();
    // if subject contains "folder1", file into folder1 and tag with tag1
    conditions = new ArrayList<ZFilterCondition>();
    actions = new ArrayList<ZFilterAction>();
    conditions.add(new ZHeaderCondition("subject", HeaderOp.CONTAINS, NAME_PREFIX));
    actions.add(new ZRFCCompliantNotifyAction(USER_NAME, "", "", "Notify You've got a mail!", "mailto:" + REMOTE_USER_NAME + "?body=This is the notification email alert&Importance=High&X-Priority=1"));
    rules.add(new ZFilterRule("testRFCCompliantNotify", true, false, conditions, actions));
    return new ZFilterRules(rules);
}
Also used : ZHeaderCondition(com.zimbra.client.ZFilterCondition.ZHeaderCondition) ZFilterCondition(com.zimbra.client.ZFilterCondition) ArrayList(java.util.ArrayList) ZFilterRule(com.zimbra.client.ZFilterRule) ZFilterAction(com.zimbra.client.ZFilterAction) ZFilterRules(com.zimbra.client.ZFilterRules) ZRFCCompliantNotifyAction(com.zimbra.client.ZFilterAction.ZRFCCompliantNotifyAction)

Example 15 with ZHeaderCondition

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

the class TestFilter method testHeaderFolding.

/**
     * Confirms that the header test works with headers that are folded.
     * See section 2.2.3 of RFC 2822 and bug 14942.
     */
@Test
public void testHeaderFolding() throws Exception {
    List<ZFilterCondition> conditions = new ArrayList<ZFilterCondition>();
    List<ZFilterAction> actions = new ArrayList<ZFilterAction>();
    List<ZFilterRule> rules = new ArrayList<ZFilterRule>();
    // if subject contains "a b c", mark as flagged
    conditions.add(new ZHeaderCondition("subject", HeaderOp.CONTAINS, "a b c"));
    actions.add(new ZMarkAction(MarkOp.FLAGGED));
    rules.add(new ZFilterRule("testHeaderFolding", true, false, conditions, actions));
    ZFilterRules zRules = new ZFilterRules(rules);
    saveIncomingRules(mMbox, zRules);
    // Add a message and confirm it is flagged
    String address = TestUtil.getAddress(USER_NAME);
    String subject = NAME_PREFIX + " a b\r\n c";
    TestUtil.addMessageLmtp(subject, address, address);
    ZMessage msg = TestUtil.getMessage(mMbox, "in:inbox subject:\"a b c\"");
    assertTrue("Message was not flagged", msg.isFlagged());
}
Also used : ZMessage(com.zimbra.client.ZMessage) ZHeaderCondition(com.zimbra.client.ZFilterCondition.ZHeaderCondition) ZFilterCondition(com.zimbra.client.ZFilterCondition) ArrayList(java.util.ArrayList) ZFilterAction(com.zimbra.client.ZFilterAction) ZFilterRule(com.zimbra.client.ZFilterRule) ZMarkAction(com.zimbra.client.ZFilterAction.ZMarkAction) ZFilterRules(com.zimbra.client.ZFilterRules) Test(org.junit.Test)

Aggregations

ZHeaderCondition (com.zimbra.client.ZFilterCondition.ZHeaderCondition)20 ZFilterAction (com.zimbra.client.ZFilterAction)19 ZFilterCondition (com.zimbra.client.ZFilterCondition)19 ZFilterRule (com.zimbra.client.ZFilterRule)19 ZFilterRules (com.zimbra.client.ZFilterRules)19 ArrayList (java.util.ArrayList)19 ZMessage (com.zimbra.client.ZMessage)11 ZFileIntoAction (com.zimbra.client.ZFilterAction.ZFileIntoAction)10 ZTagAction (com.zimbra.client.ZFilterAction.ZTagAction)8 Test (org.junit.Test)8 ZMarkAction (com.zimbra.client.ZFilterAction.ZMarkAction)6 ZMailbox (com.zimbra.client.ZMailbox)5 ZRedirectAction (com.zimbra.client.ZFilterAction.ZRedirectAction)4 ZDiscardAction (com.zimbra.client.ZFilterAction.ZDiscardAction)3 ZKeepAction (com.zimbra.client.ZFilterAction.ZKeepAction)3 ZRFCCompliantNotifyAction (com.zimbra.client.ZFilterAction.ZRFCCompliantNotifyAction)2 ZBodyCondition (com.zimbra.client.ZFilterCondition.ZBodyCondition)2 ZFolder (com.zimbra.client.ZFolder)2 MimeMessage (com.zimbra.common.mime.MimeMessage)2 Config (com.zimbra.cs.account.Config)2