/**************************************************************** | |
* Licensed to the Apache Software Foundation (ASF) under one * | |
* or more contributor license agreements. See the NOTICE file * | |
* distributed with this work for additional information * | |
* regarding copyright ownership. The ASF licenses this file * | |
* to you 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 org.apache.james.mime4j.field; | |
import java.util.Date; | |
import junit.framework.TestCase; | |
import org.apache.log4j.BasicConfigurator; | |
public class ContentDispositionFieldTest extends TestCase { | |
@Override | |
public void setUp() { | |
BasicConfigurator.resetConfiguration(); | |
BasicConfigurator.configure(); | |
} | |
public void testDispositionTypeWithSemiColonNoParams() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline;"); | |
assertEquals("inline", f.getDispositionType()); | |
} | |
public void testGetDispositionType() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment"); | |
assertEquals("attachment", f.getDispositionType()); | |
f = (ContentDispositionField) AbstractField | |
.parse("content-disposition: InLiNe "); | |
assertEquals("inline", f.getDispositionType()); | |
f = (ContentDispositionField) AbstractField | |
.parse("CONTENT-DISPOSITION: x-yada ;" + " param = yada"); | |
assertEquals("x-yada", f.getDispositionType()); | |
f = (ContentDispositionField) AbstractField.parse("CONTENT-DISPOSITION: "); | |
assertEquals("", f.getDispositionType()); | |
} | |
public void testGetParameter() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField | |
.parse("CONTENT-DISPOSITION: inline ;" | |
+ " filename=yada yada"); | |
assertEquals("yada", f.getParameter("filename")); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: x-yada;" | |
+ " fileNAme= \"ya:\\\"*da\"; " + "\tSIZE\t = 1234"); | |
assertEquals("ya:\"*da", f.getParameter("filename")); | |
assertEquals("1234", f.getParameter("size")); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: x-yada; " | |
+ "fileNAme= \"ya \\\"\\\"\tda \\\"\"; " | |
+ "\tx-Yada\t = \"\\\"hepp\\\" =us\t-ascii\""); | |
assertEquals("ya \"\"\tda \"", f.getParameter("filename")); | |
assertEquals("\"hepp\" =us\t-ascii", f.getParameter("x-yada")); | |
} | |
public void testIsDispositionType() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField.parse("Content-Disposition:INline"); | |
assertTrue(f.isDispositionType("InLiNe")); | |
assertFalse(f.isDispositionType("NiLiNe")); | |
assertTrue(f.isInline()); | |
assertFalse(f.isAttachment()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment"); | |
assertTrue(f.isDispositionType("ATTACHMENT")); | |
assertFalse(f.isInline()); | |
assertTrue(f.isAttachment()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: x-something"); | |
assertTrue(f.isDispositionType("x-SomeThing")); | |
assertFalse(f.isInline()); | |
assertFalse(f.isAttachment()); | |
} | |
public void testGetFilename() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; filename=yada.txt"); | |
assertEquals("yada.txt", f.getFilename()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; filename=yada yada.txt"); | |
assertEquals("yada", f.getFilename()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; filename=\"yada yada.txt\""); | |
assertEquals("yada yada.txt", f.getFilename()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline"); | |
assertNull(f.getFilename()); | |
} | |
public void testGetCreationDate() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; " | |
+ "creation-date=\"Tue, 01 Jan 1970 00:00:00 +0000\""); | |
assertEquals(new Date(0), f.getCreationDate()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; " | |
+ "creation-date=Tue, 01 Jan 1970 00:00:00 +0000"); | |
assertNull(f.getCreationDate()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment"); | |
assertNull(f.getCreationDate()); | |
} | |
public void testGetModificationDate() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; " | |
+ "modification-date=\"Tue, 01 Jan 1970 00:00:00 +0000\""); | |
assertEquals(new Date(0), f.getModificationDate()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; " | |
+ "modification-date=\"Wed, 12 Feb 1997 16:29:51 -0500\""); | |
assertEquals(new Date(855782991000l), f.getModificationDate()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; " | |
+ "modification-date=yesterday"); | |
assertNull(f.getModificationDate()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment"); | |
assertNull(f.getModificationDate()); | |
} | |
public void testGetReadDate() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; " | |
+ "read-date=\"Tue, 01 Jan 1970 00:00:00 +0000\""); | |
assertEquals(new Date(0), f.getReadDate()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: inline; read-date="); | |
assertNull(f.getReadDate()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment"); | |
assertNull(f.getReadDate()); | |
} | |
public void testGetSize() throws Exception { | |
ContentDispositionField f = null; | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment; size=0"); | |
assertEquals(0, f.getSize()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment; size=matters"); | |
assertEquals(-1, f.getSize()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment"); | |
assertEquals(-1, f.getSize()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment; size=-12"); | |
assertEquals(-1, f.getSize()); | |
f = (ContentDispositionField) AbstractField | |
.parse("Content-Disposition: attachment; size=12"); | |
assertEquals(12, f.getSize()); | |
} | |
} |