1
2
3
4
5
6
7 package org.mule.transport.email.transformers;
8
9 import static org.junit.Assert.assertEquals;
10 import static org.junit.Assert.assertNotNull;
11 import static org.junit.Assert.assertTrue;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MuleMessage;
15 import org.mule.api.transformer.Transformer;
16 import org.mule.config.i18n.LocaleMessageHandler;
17 import org.mule.transport.email.MailProperties;
18
19 import java.util.HashMap;
20 import java.util.Locale;
21 import java.util.Map;
22
23 import javax.mail.internet.MimeMessage;
24
25 import org.junit.Test;
26
27 public class MailMessageTransformersNonAsciiTestCase extends MailMessageTransformersTestCase
28 {
29
30 @Override
31 protected String getContentType()
32 {
33 return "text/plain; charset=iso-2022-jp";
34 }
35
36 @Override
37 public Object getResultData()
38 {
39 return LocaleMessageHandler.getString("test-data", Locale.JAPAN,
40 "MailMessageTransformersNonAsciiTestCase.getResultData", new Object[] {});
41 }
42
43 @Test
44 public void testNonAsciiSubjectEncodingInRoundtripTransformation() throws Exception
45 {
46 Transformer roundTripTransformer = super.getRoundTripTransformer();
47
48
49 Map<String, Object> outboundProperties = new HashMap<String, Object>();
50 String testSubject = (String) getResultData();
51 outboundProperties.put(MailProperties.SUBJECT_PROPERTY, testSubject);
52 MuleMessage message = new DefaultMuleMessage(testSubject, outboundProperties, muleContext);
53
54
55 System.setProperty("mail.mime.charset", "iso-8859-1");
56
57
58 Object result = roundTripTransformer.transform(message, "iso-2022-jp");
59
60 assertNotNull("The result of the roundtrip transform shouldn't be null", result);
61 assertTrue(result instanceof MimeMessage);
62
63 assertEquals(((MimeMessage) result).getSubject(), testSubject);
64 }
65 }