You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jl...@apache.org on 2006/04/01 00:36:36 UTC
svn commit: r390527 - in /geronimo/specs/trunk/geronimo-spec-javamail: ./
src/main/java/javax/mail/internet/MimeBodyPart.java
src/test/java/javax/mail/internet/MimeBodyPartTest.java
Author: jlaskowski
Date: Fri Mar 31 14:36:35 2006
New Revision: 390527
URL: http://svn.apache.org/viewcvs?rev=390527&view=rev
Log:
GERONIMO-1793 - MimeBodyPart setDescription()/getDescription() is not properly encoding header description data
Submitted by: Rick McGuire
Added:
geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/mail/internet/MimeBodyPartTest.java (with props)
Modified:
geronimo/specs/trunk/geronimo-spec-javamail/ (props changed)
geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/internet/MimeBodyPart.java
Propchange: geronimo/specs/trunk/geronimo-spec-javamail/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Mar 31 14:36:35 2006
@@ -1,5 +1,6 @@
*.iml
.project
+.settings
.classpath
maven.log
junit*.properties
Modified: geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/internet/MimeBodyPart.java
URL: http://svn.apache.org/viewcvs/geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/internet/MimeBodyPart.java?rev=390527&r1=390526&r2=390527&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/internet/MimeBodyPart.java (original)
+++ geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/mail/internet/MimeBodyPart.java Fri Mar 31 14:36:35 2006
@@ -253,7 +253,17 @@
}
public String getDescription() throws MessagingException {
- return getSingleHeader("Content-Description");
+ String description = getSingleHeader("Content-Description");
+ if (description != null) {
+ try {
+ // this could be both folded and encoded. Return this to usable form.
+ return MimeUtility.decodeText(ASCIIUtil.unfold(description));
+ } catch (UnsupportedEncodingException e) {
+ // ignore
+ }
+ }
+ // return the raw version for any errors.
+ return description;
}
public void setDescription(String description) throws MessagingException {
Added: geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/mail/internet/MimeBodyPartTest.java
URL: http://svn.apache.org/viewcvs/geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/mail/internet/MimeBodyPartTest.java?rev=390527&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/mail/internet/MimeBodyPartTest.java (added)
+++ geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/mail/internet/MimeBodyPartTest.java Fri Mar 31 14:36:35 2006
@@ -0,0 +1,101 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.mail.internet;
+
+import java.io.UnsupportedEncodingException;
+
+import javax.mail.MessagingException;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class MimeBodyPartTest extends TestCase {
+
+ public void testGetSize() throws MessagingException {
+ MimeBodyPart part = new MimeBodyPart();
+ assertEquals(part.getSize(), -1);
+
+ part = new MimeBodyPart(new InternetHeaders(), new byte[] {'a', 'b', 'c'});
+ assertEquals(part.getSize(), 3);
+ }
+
+ public void testGetLineCount() throws MessagingException {
+ MimeBodyPart part = new MimeBodyPart();
+ assertEquals(part.getLineCount(), -1);
+
+ part = new MimeBodyPart(new InternetHeaders(), new byte[] {'a', 'b', 'c'});
+ assertEquals(part.getLineCount(), -1);
+ }
+
+
+ public void testGetContentType() throws MessagingException {
+ MimeBodyPart part = new MimeBodyPart();
+ assertEquals(part.getContentType(), "text/plain");
+
+ part.setHeader("Content-Type", "text/xml");
+ assertEquals(part.getContentType(), "text/xml");
+
+ part = new MimeBodyPart();
+ part.setText("abc");
+ assertEquals(part.getContentType(), "text/plain");
+ }
+
+
+ public void testIsMimeType() throws MessagingException {
+ MimeBodyPart part = new MimeBodyPart();
+ assertTrue(part.isMimeType("text/plain"));
+ assertTrue(part.isMimeType("text/*"));
+
+ part.setHeader("Content-Type", "text/xml");
+ assertTrue(part.isMimeType("text/xml"));
+ assertTrue(part.isMimeType("text/*"));
+ }
+
+
+ public void testGetDisposition() throws MessagingException {
+ MimeBodyPart part = new MimeBodyPart();
+ assertNull(part.getDisposition());
+
+ part.setDisposition("inline");
+ assertEquals(part.getDisposition(), "inline");
+ }
+
+
+ public void testSetDescription() throws MessagingException, UnsupportedEncodingException {
+ MimeBodyPart part = new MimeBodyPart();
+
+ String simpleSubject = "Yada, yada";
+
+ String complexSubject = "Yada, yada\u0081";
+
+ String mungedSubject = "Yada, yada\u003F";
+
+ part.setDescription(simpleSubject);
+ assertEquals(part.getDescription(), simpleSubject);
+
+ part.setDescription(complexSubject, "UTF-8");
+ assertEquals(part.getDescription(), complexSubject);
+ assertEquals(part.getHeader("Content-Description", null), MimeUtility.encodeText(complexSubject, "UTF-8", null));
+
+ part.setDescription(null);
+ assertNull(part.getDescription());
+ }
+}
+
Propchange: geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/mail/internet/MimeBodyPartTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/mail/internet/MimeBodyPartTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/mail/internet/MimeBodyPartTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain