1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.james.mime4j.field;
21
22 import java.util.Date;
23
24 import junit.framework.TestCase;
25
26 import org.apache.log4j.BasicConfigurator;
27
28 public class ContentDispositionFieldTest extends TestCase {
29
30 @Override
31 public void setUp() {
32 BasicConfigurator.resetConfiguration();
33 BasicConfigurator.configure();
34 }
35
36 public void testDispositionTypeWithSemiColonNoParams() throws Exception {
37 ContentDispositionField f = null;
38
39 f = (ContentDispositionField) AbstractField
40 .parse("Content-Disposition: inline;");
41 assertEquals("inline", f.getDispositionType());
42 }
43
44 public void testGetDispositionType() throws Exception {
45 ContentDispositionField f = null;
46
47 f = (ContentDispositionField) AbstractField
48 .parse("Content-Disposition: attachment");
49 assertEquals("attachment", f.getDispositionType());
50
51 f = (ContentDispositionField) AbstractField
52 .parse("content-disposition: InLiNe ");
53 assertEquals("inline", f.getDispositionType());
54
55 f = (ContentDispositionField) AbstractField
56 .parse("CONTENT-DISPOSITION: x-yada ;" + " param = yada");
57 assertEquals("x-yada", f.getDispositionType());
58
59 f = (ContentDispositionField) AbstractField.parse("CONTENT-DISPOSITION: ");
60 assertEquals("", f.getDispositionType());
61 }
62
63 public void testGetParameter() throws Exception {
64 ContentDispositionField f = null;
65
66 f = (ContentDispositionField) AbstractField
67 .parse("CONTENT-DISPOSITION: inline ;"
68 + " filename=yada yada");
69 assertEquals("yada", f.getParameter("filename"));
70
71 f = (ContentDispositionField) AbstractField
72 .parse("Content-Disposition: x-yada;"
73 + " fileNAme= \"ya:\\\"*da\"; " + "\tSIZE\t = 1234");
74 assertEquals("ya:\"*da", f.getParameter("filename"));
75 assertEquals("1234", f.getParameter("size"));
76
77 f = (ContentDispositionField) AbstractField
78 .parse("Content-Disposition: x-yada; "
79 + "fileNAme= \"ya \\\"\\\"\tda \\\"\"; "
80 + "\tx-Yada\t = \"\\\"hepp\\\" =us\t-ascii\"");
81 assertEquals("ya \"\"\tda \"", f.getParameter("filename"));
82 assertEquals("\"hepp\" =us\t-ascii", f.getParameter("x-yada"));
83 }
84
85 public void testIsDispositionType() throws Exception {
86 ContentDispositionField f = null;
87
88 f = (ContentDispositionField) AbstractField.parse("Content-Disposition:INline");
89 assertTrue(f.isDispositionType("InLiNe"));
90 assertFalse(f.isDispositionType("NiLiNe"));
91 assertTrue(f.isInline());
92 assertFalse(f.isAttachment());
93
94 f = (ContentDispositionField) AbstractField
95 .parse("Content-Disposition: attachment");
96 assertTrue(f.isDispositionType("ATTACHMENT"));
97 assertFalse(f.isInline());
98 assertTrue(f.isAttachment());
99
100 f = (ContentDispositionField) AbstractField
101 .parse("Content-Disposition: x-something");
102 assertTrue(f.isDispositionType("x-SomeThing"));
103 assertFalse(f.isInline());
104 assertFalse(f.isAttachment());
105 }
106
107 public void testGetFilename() throws Exception {
108 ContentDispositionField f = null;
109
110 f = (ContentDispositionField) AbstractField
111 .parse("Content-Disposition: inline; filename=yada.txt");
112 assertEquals("yada.txt", f.getFilename());
113
114 f = (ContentDispositionField) AbstractField
115 .parse("Content-Disposition: inline; filename=yada yada.txt");
116 assertEquals("yada", f.getFilename());
117
118 f = (ContentDispositionField) AbstractField
119 .parse("Content-Disposition: inline; filename=\"yada yada.txt\"");
120 assertEquals("yada yada.txt", f.getFilename());
121
122 f = (ContentDispositionField) AbstractField
123 .parse("Content-Disposition: inline");
124 assertNull(f.getFilename());
125 }
126
127 public void testGetCreationDate() throws Exception {
128 ContentDispositionField f = null;
129
130 f = (ContentDispositionField) AbstractField
131 .parse("Content-Disposition: inline; "
132 + "creation-date=\"Tue, 01 Jan 1970 00:00:00 +0000\"");
133 assertEquals(new Date(0), f.getCreationDate());
134
135 f = (ContentDispositionField) AbstractField
136 .parse("Content-Disposition: inline; "
137 + "creation-date=Tue, 01 Jan 1970 00:00:00 +0000");
138 assertNull(f.getCreationDate());
139
140 f = (ContentDispositionField) AbstractField
141 .parse("Content-Disposition: attachment");
142 assertNull(f.getCreationDate());
143 }
144
145 public void testGetModificationDate() throws Exception {
146 ContentDispositionField f = null;
147
148 f = (ContentDispositionField) AbstractField
149 .parse("Content-Disposition: inline; "
150 + "modification-date=\"Tue, 01 Jan 1970 00:00:00 +0000\"");
151 assertEquals(new Date(0), f.getModificationDate());
152
153 f = (ContentDispositionField) AbstractField
154 .parse("Content-Disposition: inline; "
155 + "modification-date=\"Wed, 12 Feb 1997 16:29:51 -0500\"");
156 assertEquals(new Date(855782991000l), f.getModificationDate());
157
158 f = (ContentDispositionField) AbstractField
159 .parse("Content-Disposition: inline; "
160 + "modification-date=yesterday");
161 assertNull(f.getModificationDate());
162
163 f = (ContentDispositionField) AbstractField
164 .parse("Content-Disposition: attachment");
165 assertNull(f.getModificationDate());
166 }
167
168 public void testGetReadDate() throws Exception {
169 ContentDispositionField f = null;
170
171 f = (ContentDispositionField) AbstractField
172 .parse("Content-Disposition: inline; "
173 + "read-date=\"Tue, 01 Jan 1970 00:00:00 +0000\"");
174 assertEquals(new Date(0), f.getReadDate());
175
176 f = (ContentDispositionField) AbstractField
177 .parse("Content-Disposition: inline; read-date=");
178 assertNull(f.getReadDate());
179
180 f = (ContentDispositionField) AbstractField
181 .parse("Content-Disposition: attachment");
182 assertNull(f.getReadDate());
183 }
184
185 public void testGetSize() throws Exception {
186 ContentDispositionField f = null;
187
188 f = (ContentDispositionField) AbstractField
189 .parse("Content-Disposition: attachment; size=0");
190 assertEquals(0, f.getSize());
191
192 f = (ContentDispositionField) AbstractField
193 .parse("Content-Disposition: attachment; size=matters");
194 assertEquals(-1, f.getSize());
195
196 f = (ContentDispositionField) AbstractField
197 .parse("Content-Disposition: attachment");
198 assertEquals(-1, f.getSize());
199
200 f = (ContentDispositionField) AbstractField
201 .parse("Content-Disposition: attachment; size=-12");
202 assertEquals(-1, f.getSize());
203
204 f = (ContentDispositionField) AbstractField
205 .parse("Content-Disposition: attachment; size=12");
206 assertEquals(12, f.getSize());
207 }
208
209 }