1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.james.transport.mailets;
21
22 import org.apache.mailet.base.test.FakeMail;
23 import org.apache.mailet.base.test.FakeMailContext;
24 import org.apache.mailet.base.test.FakeMailetConfig;
25 import org.apache.mailet.Mail;
26 import org.apache.mailet.Mailet;
27
28 import javax.mail.MessagingException;
29 import javax.mail.Session;
30 import javax.mail.internet.MimeBodyPart;
31 import javax.mail.internet.MimeMessage;
32 import javax.mail.internet.MimeMultipart;
33
34 import java.io.IOException;
35 import java.util.Properties;
36
37 import junit.framework.TestCase;
38
39 public class OnlyTextTest extends TestCase {
40
41
42
43
44
45
46
47
48
49 public void testService() throws MessagingException, IOException {
50 Mailet mailet;
51 FakeMailetConfig mci;
52 MimeMessage message;
53 Mail mail;
54
55 mailet = new OnlyText();
56 mci = new FakeMailetConfig("Test", new FakeMailContext());
57 mailet.init(mci);
58
59
60
61 message = new MimeMessage(Session.getDefaultInstance(new Properties()));
62 message.setSubject("prova");
63 message.setText("Questa \u00E8 una prova");
64 message.saveChanges();
65
66 mail = new FakeMail(message);
67 mailet.service(mail);
68
69 assertEquals("prova", mail.getMessage().getSubject());
70 assertEquals("Questa \u00E8 una prova", mail.getMessage().getContent());
71
72
73
74 message = new MimeMessage(Session.getDefaultInstance(new Properties()));
75 message.setSubject("prova");
76 MimeMultipart mp = new MimeMultipart();
77 MimeBodyPart bp = new MimeBodyPart();
78 bp.setText("Questo \u00E8 un part interno1");
79 mp.addBodyPart(bp);
80 bp = new MimeBodyPart();
81 bp.setText("Questo \u00E8 un part interno2");
82 mp.addBodyPart(bp);
83 bp = new MimeBodyPart();
84 MimeMessage message2 = new MimeMessage(Session
85 .getDefaultInstance(new Properties()));
86 bp.setContent(message2, "message/rfc822");
87 mp.addBodyPart(bp);
88 message.setContent(mp);
89 message.saveChanges();
90
91 mail = new FakeMail(message);
92 mailet.service(mail);
93
94 assertEquals("prova", mail.getMessage().getSubject());
95 assertEquals("Questo \u00E8 un part interno1", mail.getMessage()
96 .getContent());
97
98
99
100 message = new MimeMessage(Session.getDefaultInstance(new Properties()));
101 message.setSubject("prova");
102 mp = new MimeMultipart();
103 bp = new MimeBodyPart();
104 bp.setText("Questo \u00E8 un part interno1");
105 mp.addBodyPart(bp);
106 bp = new MimeBodyPart();
107 bp.setText("Questo \u00E8 un part interno2");
108 mp.addBodyPart(bp);
109 bp = new MimeBodyPart();
110 message2 = new MimeMessage(Session.getDefaultInstance(new Properties()));
111 bp.setContent(message2, "message/rfc822");
112 mp.addBodyPart(bp);
113
114 MimeMultipart mpext = new MimeMultipart();
115 bp = new MimeBodyPart();
116 bp.setContent(mp);
117 mpext.addBodyPart(bp);
118
119 message.setContent(mpext);
120 message.saveChanges();
121
122 mail = new FakeMail(message);
123 mailet.service(mail);
124
125 assertEquals("prova", mail.getMessage().getSubject());
126 assertEquals("Questo \u00E8 un part interno1", mail.getMessage()
127 .getContent());
128
129
130
131 message = new MimeMessage(Session.getDefaultInstance(new Properties()));
132 message.setSubject("prova");
133 message.setContent("<p>Questa \u00E8 una prova<br />di html</p>",
134 "text/html");
135 message.saveChanges();
136
137 mail = new FakeMail(message);
138 mailet.service(mail);
139
140 assertEquals("prova", mail.getMessage().getSubject());
141 assertEquals("Questa \u00E8 una prova\ndi html\n", mail.getMessage()
142 .getContent());
143 assertTrue(mail.getMessage().isMimeType("text/plain"));
144
145
146
147 message = new MimeMessage(Session.getDefaultInstance(new Properties()));
148 message.setSubject("prova");
149 mp = new MimeMultipart();
150 bp = new MimeBodyPart();
151 message2 = new MimeMessage(Session.getDefaultInstance(new Properties()));
152 bp.setContent(message2, "message/rfc822");
153 mp.addBodyPart(bp);
154 bp = new MimeBodyPart();
155 bp.setContent("<p>Questa \u00E8 una prova<br />di html</p>", "text/html");
156 mp.addBodyPart(bp);
157 message.setContent(mp);
158 message.saveChanges();
159
160 mail = new FakeMail(message);
161 mailet.service(mail);
162
163 assertEquals("prova", mail.getMessage().getSubject());
164 assertEquals("Questa \u00E8 una prova\ndi html\n", mail.getMessage()
165 .getContent());
166 assertTrue(mail.getMessage().isMimeType("text/plain"));
167 }
168
169 public void testHtml2Text() throws MessagingException {
170 OnlyText mailet = new OnlyText();
171 mailet.init(new FakeMailetConfig("Test", new FakeMailContext()));
172
173 String html;
174 html = "<b>Prova di html</b><br /><p>Un paragrafo</p><LI>e ci mettiamo anche una lista</LI><br>";
175 assertEquals(
176 "Prova di html\nUn paragrafo\n\n* e ci mettiamo anche una lista\n",
177 mailet.html2Text(html));
178
179 html = "<b>Vediamo invece come andiamo con gli entities</b><br />èà &grave;<br>";
180 assertEquals(
181 "Vediamo invece come andiamo con gli entities\n\u00E8\u00E0 `\n",
182 mailet.html2Text(html));
183 }
184
185 }