1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.jsieve;
21
22 import junit.framework.TestCase;
23
24 import org.apache.jsieve.exception.SieveException;
25 import org.apache.jsieve.exception.SyntaxException;
26 import org.apache.jsieve.mail.ActionFileInto;
27 import org.apache.jsieve.mail.MailAdapter;
28 import org.apache.jsieve.parser.generated.ParseException;
29 import org.apache.jsieve.utils.JUnitUtils;
30
31
32
33
34 public class FileIntoTest extends TestCase {
35
36
37
38
39 public void testFileInto() {
40 boolean isTestPassed = false;
41 String script = "fileinto \"INBOX.test1\"; fileinto \"INBOX.test2\";";
42
43 try {
44 MailAdapter mail = JUnitUtils.createMail();
45 JUnitUtils.interpret(mail, script);
46 assertTrue(mail.getActions().size() == 2);
47 assertTrue(mail.getActions().get(0) instanceof ActionFileInto);
48 assertTrue(((ActionFileInto) mail.getActions().get(0))
49 .getDestination().equals("INBOX.test1"));
50 assertTrue(mail.getActions().get(1) instanceof ActionFileInto);
51 assertTrue(((ActionFileInto) mail.getActions().get(1))
52 .getDestination().equals("INBOX.test2"));
53 isTestPassed = true;
54 } catch (ParseException e) {
55 } catch (SieveException e) {
56 }
57 assertTrue(isTestPassed);
58 }
59
60
61
62
63
64 public void testDuplicateFileInto() {
65 boolean isTestPassed = false;
66 String script = "fileinto \"INBOX.test1\"; fileinto \"INBOX.test1\";";
67
68 try {
69 MailAdapter mail = JUnitUtils.createMail();
70 JUnitUtils.interpret(mail, script);
71 assertTrue(mail.getActions().size() == 1);
72 assertTrue(mail.getActions().get(0) instanceof ActionFileInto);
73 assertTrue(((ActionFileInto) mail.getActions().get(0))
74 .getDestination().equals("INBOX.test1"));
75 isTestPassed = true;
76 } catch (ParseException e) {
77 } catch (SieveException e) {
78 }
79 assertTrue(isTestPassed);
80 }
81
82
83
84
85 public void testInvalidArgumentType() {
86 boolean isTestPassed = false;
87 String script = "fileinto 1 ;";
88
89 try {
90 JUnitUtils.interpret(JUnitUtils.createMail(), script);
91 } catch (SyntaxException e) {
92 isTestPassed = true;
93 } catch (ParseException e) {
94 } catch (SieveException e) {
95 }
96 assertTrue(isTestPassed);
97 }
98
99
100
101
102 public void testInvalidArgumentNumber() {
103 boolean isTestPassed = false;
104 String script = "fileinto [\"INBOX.test\", \"elsewhere\"];";
105
106 try {
107 JUnitUtils.interpret(JUnitUtils.createMail(), script);
108 } catch (SyntaxException e) {
109 isTestPassed = true;
110 } catch (ParseException e) {
111 } catch (SieveException e) {
112 }
113 assertTrue(isTestPassed);
114 }
115
116
117
118
119 public void testInvalidBlock() {
120 boolean isTestPassed = false;
121 String script = "fileinto 1 {throwTestException;}";
122
123 try {
124 JUnitUtils.interpret(JUnitUtils.createMail(), script);
125 } catch (SyntaxException e) {
126 isTestPassed = true;
127 } catch (ParseException e) {
128 } catch (SieveException e) {
129 }
130 assertTrue(isTestPassed);
131 }
132
133 }