|
ferencd@0
|
1 //
|
|
ferencd@0
|
2 // VMime library (http://www.vmime.org)
|
|
ferencd@0
|
3 // Copyright (C) 2002-2013 Vincent Richard <vincent@vmime.org>
|
|
ferencd@0
|
4 //
|
|
ferencd@0
|
5 // This program is free software; you can redistribute it and/or
|
|
ferencd@0
|
6 // modify it under the terms of the GNU General Public License as
|
|
ferencd@0
|
7 // published by the Free Software Foundation; either version 3 of
|
|
ferencd@0
|
8 // the License, or (at your option) any later version.
|
|
ferencd@0
|
9 //
|
|
ferencd@0
|
10 // This program is distributed in the hope that it will be useful,
|
|
ferencd@0
|
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
ferencd@0
|
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
ferencd@0
|
13 // General Public License for more details.
|
|
ferencd@0
|
14 //
|
|
ferencd@0
|
15 // You should have received a copy of the GNU General Public License along
|
|
ferencd@0
|
16 // with this program; if not, write to the Free Software Foundation, Inc.,
|
|
ferencd@0
|
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
ferencd@0
|
18 //
|
|
ferencd@0
|
19 // Linking this library statically or dynamically with other modules is making
|
|
ferencd@0
|
20 // a combined work based on this library. Thus, the terms and conditions of
|
|
ferencd@0
|
21 // the GNU General Public License cover the whole combination.
|
|
ferencd@0
|
22 //
|
|
ferencd@0
|
23
|
|
ferencd@0
|
24 #include "tests/testUtils.hpp"
|
|
ferencd@0
|
25
|
|
ferencd@0
|
26
|
|
ferencd@0
|
27 VMIME_TEST_SUITE_BEGIN(headerTest)
|
|
ferencd@0
|
28
|
|
ferencd@0
|
29 VMIME_TEST_LIST_BEGIN
|
|
ferencd@0
|
30 VMIME_TEST(testHas1)
|
|
ferencd@0
|
31 VMIME_TEST(testHas2)
|
|
ferencd@0
|
32
|
|
ferencd@0
|
33 VMIME_TEST(testAppend1)
|
|
ferencd@0
|
34 VMIME_TEST(testAppend2)
|
|
ferencd@0
|
35
|
|
ferencd@0
|
36 VMIME_TEST(testInsertFieldBefore1)
|
|
ferencd@0
|
37 VMIME_TEST(testInsertFieldBefore2)
|
|
ferencd@0
|
38
|
|
ferencd@0
|
39 VMIME_TEST(testInsertFieldAfter1)
|
|
ferencd@0
|
40 VMIME_TEST(testInsertFieldAfter2)
|
|
ferencd@0
|
41
|
|
ferencd@0
|
42 VMIME_TEST(testReplaceField)
|
|
ferencd@0
|
43
|
|
ferencd@0
|
44 VMIME_TEST(testRemoveField1)
|
|
ferencd@0
|
45 VMIME_TEST(testRemoveField2)
|
|
ferencd@0
|
46
|
|
ferencd@0
|
47 VMIME_TEST(testRemoveAllFields)
|
|
ferencd@0
|
48
|
|
ferencd@0
|
49 VMIME_TEST(testgetFieldCount)
|
|
ferencd@0
|
50
|
|
ferencd@0
|
51 VMIME_TEST(testIsEmpty1)
|
|
ferencd@0
|
52 VMIME_TEST(testIsEmpty2)
|
|
ferencd@0
|
53
|
|
ferencd@0
|
54 VMIME_TEST(testGetFieldAt)
|
|
ferencd@0
|
55
|
|
ferencd@0
|
56 VMIME_TEST(testGetFieldList1)
|
|
ferencd@0
|
57 VMIME_TEST(testGetFieldList2)
|
|
ferencd@0
|
58
|
|
ferencd@0
|
59 VMIME_TEST(testFind1)
|
|
ferencd@0
|
60
|
|
ferencd@0
|
61 VMIME_TEST(testFindAllFields1)
|
|
ferencd@0
|
62 VMIME_TEST(testFindAllFields2)
|
|
ferencd@0
|
63 VMIME_TEST(testFindAllFields3)
|
|
ferencd@0
|
64 VMIME_TEST_LIST_END
|
|
ferencd@0
|
65
|
|
ferencd@0
|
66
|
|
ferencd@0
|
67 static const std::string getFieldValue(const vmime::headerField& field)
|
|
ferencd@0
|
68 {
|
|
ferencd@0
|
69 std::ostringstream oss;
|
|
ferencd@0
|
70 vmime::utility::outputStreamAdapter voss(oss);
|
|
ferencd@0
|
71 field.generate(voss);
|
|
ferencd@0
|
72
|
|
ferencd@0
|
73 return (oss.str());
|
|
ferencd@0
|
74 }
|
|
ferencd@0
|
75
|
|
ferencd@0
|
76 // has function tests
|
|
ferencd@0
|
77 void testHas1()
|
|
ferencd@0
|
78 {
|
|
ferencd@0
|
79 vmime::header hdr;
|
|
ferencd@0
|
80 hdr.parse("From: x\r\nTo: y\r\nTo: z\r\n");
|
|
ferencd@0
|
81
|
|
ferencd@0
|
82 bool res = hdr.hasField("Z");
|
|
ferencd@0
|
83
|
|
ferencd@0
|
84 VASSERT_EQ("Value", false, res);
|
|
ferencd@0
|
85 }
|
|
ferencd@0
|
86
|
|
ferencd@0
|
87 void testHas2()
|
|
ferencd@0
|
88 {
|
|
ferencd@0
|
89 vmime::header hdr;
|
|
ferencd@0
|
90 hdr.parse("X: x\r\nTo: y\r\nTo: z\r\n");
|
|
ferencd@0
|
91
|
|
ferencd@0
|
92 bool res = hdr.hasField("To");
|
|
ferencd@0
|
93
|
|
ferencd@0
|
94 VASSERT_EQ("Value", true, res);
|
|
ferencd@0
|
95 }
|
|
ferencd@0
|
96
|
|
ferencd@0
|
97 // appendField function tests
|
|
ferencd@0
|
98 void testAppend1()
|
|
ferencd@0
|
99 {
|
|
ferencd@0
|
100 vmime::header hdr;
|
|
ferencd@0
|
101 hdr.parse("");
|
|
ferencd@0
|
102
|
|
ferencd@0
|
103 vmime::shared_ptr <vmime::headerField> hf = vmime::headerFieldFactory::getInstance()->create("A", "a");
|
|
ferencd@0
|
104 hdr.appendField(hf);
|
|
ferencd@0
|
105
|
|
ferencd@0
|
106 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
107
|
|
ferencd@0
|
108 VASSERT_EQ("Count", static_cast <unsigned int>(1), res.size());
|
|
ferencd@0
|
109 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
110 }
|
|
ferencd@0
|
111
|
|
ferencd@0
|
112 void testAppend2()
|
|
ferencd@0
|
113 {
|
|
ferencd@0
|
114 vmime::header hdr;
|
|
ferencd@0
|
115 hdr.parse("A: a\r\n");
|
|
ferencd@0
|
116
|
|
ferencd@0
|
117 vmime::shared_ptr <vmime::headerField> hf = vmime::headerFieldFactory::getInstance()->create("B", "b");
|
|
ferencd@0
|
118 hdr.appendField(hf);
|
|
ferencd@0
|
119
|
|
ferencd@0
|
120 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
121
|
|
ferencd@0
|
122 VASSERT_EQ("Count", static_cast <unsigned int>(2), res.size());
|
|
ferencd@0
|
123 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
124 VASSERT_EQ("Second value", "B: b", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
125 }
|
|
ferencd@0
|
126
|
|
ferencd@0
|
127 // insertFieldBefore
|
|
ferencd@0
|
128 void testInsertFieldBefore1()
|
|
ferencd@0
|
129 {
|
|
ferencd@0
|
130 vmime::header hdr;
|
|
ferencd@0
|
131 hdr.parse("A: a\r\nC: c\r\n");
|
|
ferencd@0
|
132
|
|
ferencd@0
|
133 vmime::shared_ptr <vmime::headerField> hf = vmime::headerFieldFactory::getInstance()->create("B", "b");
|
|
ferencd@0
|
134 hdr.insertFieldBefore(hdr.getField("C"), hf);
|
|
ferencd@0
|
135
|
|
ferencd@0
|
136 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
137
|
|
ferencd@0
|
138 VASSERT_EQ("Count", static_cast <unsigned int>(3), res.size());
|
|
ferencd@0
|
139 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
140 VASSERT_EQ("Second value", "B: b", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
141 VASSERT_EQ("Third value", "C: c", headerTest::getFieldValue(*res[2]));
|
|
ferencd@0
|
142 }
|
|
ferencd@0
|
143
|
|
ferencd@0
|
144 void testInsertFieldBefore2()
|
|
ferencd@0
|
145 {
|
|
ferencd@0
|
146 vmime::header hdr;
|
|
ferencd@0
|
147 hdr.parse("A: a\r\nC: c\r\n");
|
|
ferencd@0
|
148
|
|
ferencd@0
|
149 vmime::shared_ptr <vmime::headerField> hf = vmime::headerFieldFactory::getInstance()->create("B", "b");
|
|
ferencd@0
|
150 hdr.insertFieldBefore(1, hf);
|
|
ferencd@0
|
151
|
|
ferencd@0
|
152 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
153
|
|
ferencd@0
|
154 VASSERT_EQ("Count", static_cast <unsigned int>(3), res.size());
|
|
ferencd@0
|
155 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
156 VASSERT_EQ("Second value", "B: b", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
157 VASSERT_EQ("Third value", "C: c", headerTest::getFieldValue(*res[2]));
|
|
ferencd@0
|
158 }
|
|
ferencd@0
|
159
|
|
ferencd@0
|
160 // insertFieldAfter
|
|
ferencd@0
|
161 void testInsertFieldAfter1()
|
|
ferencd@0
|
162 {
|
|
ferencd@0
|
163 vmime::header hdr;
|
|
ferencd@0
|
164 hdr.parse("A: a\r\nC: c\r\n");
|
|
ferencd@0
|
165
|
|
ferencd@0
|
166 vmime::shared_ptr <vmime::headerField> hf = vmime::headerFieldFactory::getInstance()->create("B", "b");
|
|
ferencd@0
|
167 hdr.insertFieldAfter(hdr.getField("A"), hf);
|
|
ferencd@0
|
168
|
|
ferencd@0
|
169 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
170
|
|
ferencd@0
|
171 VASSERT_EQ("Count", static_cast <unsigned int>(3), res.size());
|
|
ferencd@0
|
172 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
173 VASSERT_EQ("Second value", "B: b", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
174 VASSERT_EQ("Third value", "C: c", headerTest::getFieldValue(*res[2]));
|
|
ferencd@0
|
175 }
|
|
ferencd@0
|
176
|
|
ferencd@0
|
177 void testInsertFieldAfter2()
|
|
ferencd@0
|
178 {
|
|
ferencd@0
|
179 vmime::header hdr;
|
|
ferencd@0
|
180 hdr.parse("A: a\r\nC: c\r\n");
|
|
ferencd@0
|
181
|
|
ferencd@0
|
182 vmime::shared_ptr <vmime::headerField> hf = vmime::headerFieldFactory::getInstance()->create("B", "b");
|
|
ferencd@0
|
183 hdr.insertFieldAfter(0, hf);
|
|
ferencd@0
|
184
|
|
ferencd@0
|
185 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
186
|
|
ferencd@0
|
187 VASSERT_EQ("Count", static_cast <unsigned int>(3), res.size());
|
|
ferencd@0
|
188 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
189 VASSERT_EQ("Second value", "B: b", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
190 VASSERT_EQ("Third value", "C: c", headerTest::getFieldValue(*res[2]));
|
|
ferencd@0
|
191 }
|
|
ferencd@0
|
192
|
|
ferencd@0
|
193 // replaceField
|
|
ferencd@0
|
194 void testReplaceField()
|
|
ferencd@0
|
195 {
|
|
ferencd@0
|
196 vmime::header hdr;
|
|
ferencd@0
|
197 hdr.parse("A: a\r\nB: b\r\nC: c\r\n");
|
|
ferencd@0
|
198
|
|
ferencd@0
|
199 vmime::shared_ptr <vmime::headerField> hf = vmime::headerFieldFactory::getInstance()->create("Z", "z");
|
|
ferencd@0
|
200 hdr.replaceField(hdr.getField("B"), hf);
|
|
ferencd@0
|
201
|
|
ferencd@0
|
202 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
203
|
|
ferencd@0
|
204 VASSERT_EQ("Count", static_cast <unsigned int>(3), res.size());
|
|
ferencd@0
|
205 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
206 VASSERT_EQ("Second value", "Z: z", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
207 VASSERT_EQ("Third value", "C: c", headerTest::getFieldValue(*res[2]));
|
|
ferencd@0
|
208 }
|
|
ferencd@0
|
209
|
|
ferencd@0
|
210 // removeField
|
|
ferencd@0
|
211 void testRemoveField1()
|
|
ferencd@0
|
212 {
|
|
ferencd@0
|
213 vmime::header hdr1, hdr2;
|
|
ferencd@0
|
214 hdr1.parse("A: a\r\nB: b\r\nC: c\r\n");
|
|
ferencd@0
|
215 hdr2.parse("A: a\r\nB: b\r\nC: c\r\n");
|
|
ferencd@0
|
216
|
|
ferencd@0
|
217 hdr1.removeField(hdr1.getField("B"));
|
|
ferencd@0
|
218 hdr2.removeField(1);
|
|
ferencd@0
|
219
|
|
ferencd@0
|
220 std::vector <vmime::shared_ptr <vmime::headerField> > res1 = hdr1.getFieldList();
|
|
ferencd@0
|
221
|
|
ferencd@0
|
222 VASSERT_EQ("Count", static_cast <unsigned int>(2), res1.size());
|
|
ferencd@0
|
223 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res1[0]));
|
|
ferencd@0
|
224 VASSERT_EQ("Second value", "C: c", headerTest::getFieldValue(*res1[1]));
|
|
ferencd@0
|
225
|
|
ferencd@0
|
226 std::vector <vmime::shared_ptr <vmime::headerField> > res2 = hdr2.getFieldList();
|
|
ferencd@0
|
227
|
|
ferencd@0
|
228 VASSERT_EQ("Count", static_cast <unsigned int>(2), res2.size());
|
|
ferencd@0
|
229 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res2[0]));
|
|
ferencd@0
|
230 VASSERT_EQ("Second value", "C: c", headerTest::getFieldValue(*res2[1]));
|
|
ferencd@0
|
231 }
|
|
ferencd@0
|
232
|
|
ferencd@0
|
233 void testRemoveField2()
|
|
ferencd@0
|
234 {
|
|
ferencd@0
|
235 vmime::header hdr1, hdr2;
|
|
ferencd@0
|
236 hdr1.parse("A: a\r\n");
|
|
ferencd@0
|
237 hdr2.parse("A: a\r\n");
|
|
ferencd@0
|
238
|
|
ferencd@0
|
239 hdr1.removeField(hdr1.getField("A"));
|
|
ferencd@0
|
240 hdr2.removeField(0);
|
|
ferencd@0
|
241
|
|
ferencd@0
|
242 std::vector <vmime::shared_ptr <vmime::headerField> > res1 = hdr1.getFieldList();
|
|
ferencd@0
|
243 VASSERT_EQ("Count", static_cast <unsigned int>(0), res1.size());
|
|
ferencd@0
|
244
|
|
ferencd@0
|
245 std::vector <vmime::shared_ptr <vmime::headerField> > res2 = hdr2.getFieldList();
|
|
ferencd@0
|
246 VASSERT_EQ("Count", static_cast <unsigned int>(0), res2.size());
|
|
ferencd@0
|
247 }
|
|
ferencd@0
|
248
|
|
ferencd@0
|
249 // removeAllFields
|
|
ferencd@0
|
250 void testRemoveAllFields()
|
|
ferencd@0
|
251 {
|
|
ferencd@0
|
252 vmime::header hdr1, hdr2;
|
|
ferencd@0
|
253 hdr1.parse("A: a\r\n");
|
|
ferencd@0
|
254 hdr2.parse("A: a\r\nB: b\r\n");
|
|
ferencd@0
|
255
|
|
ferencd@0
|
256 hdr1.removeAllFields();
|
|
ferencd@0
|
257 hdr2.removeAllFields();
|
|
ferencd@0
|
258
|
|
ferencd@0
|
259 std::vector <vmime::shared_ptr <vmime::headerField> > res1 = hdr1.getFieldList();
|
|
ferencd@0
|
260 VASSERT_EQ("Count", static_cast <unsigned int>(0), res1.size());
|
|
ferencd@0
|
261
|
|
ferencd@0
|
262 std::vector <vmime::shared_ptr <vmime::headerField> > res2 = hdr2.getFieldList();
|
|
ferencd@0
|
263 VASSERT_EQ("Count", static_cast <unsigned int>(0), res2.size());
|
|
ferencd@0
|
264 }
|
|
ferencd@0
|
265
|
|
ferencd@0
|
266 // getFieldCount
|
|
ferencd@0
|
267 void testgetFieldCount()
|
|
ferencd@0
|
268 {
|
|
ferencd@0
|
269 vmime::header hdr;
|
|
ferencd@0
|
270 hdr.parse("A: a\r\nB: b\r\nC: c\r\nD: d\r\n");
|
|
ferencd@0
|
271
|
|
ferencd@0
|
272 VASSERT_EQ("Value", 4, hdr.getFieldCount());
|
|
ferencd@0
|
273 }
|
|
ferencd@0
|
274
|
|
ferencd@0
|
275 // isEmpty
|
|
ferencd@0
|
276 void testIsEmpty1()
|
|
ferencd@0
|
277 {
|
|
ferencd@0
|
278 vmime::header hdr;
|
|
ferencd@0
|
279 hdr.parse("A: a\r\nB: b\r\nC: c\r\n");
|
|
ferencd@0
|
280
|
|
ferencd@0
|
281 VASSERT_EQ("Value", false, hdr.isEmpty());
|
|
ferencd@0
|
282 }
|
|
ferencd@0
|
283
|
|
ferencd@0
|
284 void testIsEmpty2()
|
|
ferencd@0
|
285 {
|
|
ferencd@0
|
286 vmime::header hdr;
|
|
ferencd@0
|
287 hdr.parse("\r\n");
|
|
ferencd@0
|
288
|
|
ferencd@0
|
289 VASSERT_EQ("Value", true, hdr.isEmpty());
|
|
ferencd@0
|
290 }
|
|
ferencd@0
|
291
|
|
ferencd@0
|
292 // getFieldAt
|
|
ferencd@0
|
293 void testGetFieldAt()
|
|
ferencd@0
|
294 {
|
|
ferencd@0
|
295 vmime::header hdr;
|
|
ferencd@0
|
296 hdr.parse("B: b\r\nA: a\r\nC: c\r\n");
|
|
ferencd@0
|
297
|
|
ferencd@0
|
298 vmime::shared_ptr <vmime::headerField> res = hdr.getFieldAt(2);
|
|
ferencd@0
|
299
|
|
ferencd@0
|
300 VASSERT_EQ("Value", "C: c", getFieldValue(*res));
|
|
ferencd@0
|
301 }
|
|
ferencd@0
|
302
|
|
ferencd@0
|
303 // getFieldList
|
|
ferencd@0
|
304 void testGetFieldList1()
|
|
ferencd@0
|
305 {
|
|
ferencd@0
|
306 vmime::header hdr;
|
|
ferencd@0
|
307 hdr.parse("A: a\r\nB: b1\r\nC: c\r\nB: b2\r\n");
|
|
ferencd@0
|
308
|
|
ferencd@0
|
309 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
310
|
|
ferencd@0
|
311 VASSERT_EQ("Count", static_cast <unsigned int>(4), res.size());
|
|
ferencd@0
|
312 VASSERT_EQ("First value", "A: a", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
313 VASSERT_EQ("Second value", "B: b1", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
314 VASSERT_EQ("Third value", "C: c", headerTest::getFieldValue(*res[2]));
|
|
ferencd@0
|
315 VASSERT_EQ("Thourth value", "B: b2", headerTest::getFieldValue(*res[3]));
|
|
ferencd@0
|
316 }
|
|
ferencd@0
|
317
|
|
ferencd@0
|
318 void testGetFieldList2()
|
|
ferencd@0
|
319 {
|
|
ferencd@0
|
320 vmime::header hdr;
|
|
ferencd@0
|
321 hdr.parse("\r\n");
|
|
ferencd@0
|
322
|
|
ferencd@0
|
323 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.getFieldList();
|
|
ferencd@0
|
324
|
|
ferencd@0
|
325 VASSERT_EQ("Count", static_cast <unsigned int>(0), res.size());
|
|
ferencd@0
|
326 }
|
|
ferencd@0
|
327
|
|
ferencd@0
|
328 // find function tests
|
|
ferencd@0
|
329 void testFind1()
|
|
ferencd@0
|
330 {
|
|
ferencd@0
|
331 vmime::header hdr;
|
|
ferencd@0
|
332 hdr.parse("A: a\r\nB: b\r\nC: c\r\nB: d\r\n");
|
|
ferencd@0
|
333
|
|
ferencd@0
|
334 vmime::shared_ptr <vmime::headerField> res = hdr.findField("B");
|
|
ferencd@0
|
335
|
|
ferencd@0
|
336 VASSERT_EQ("Value", "B: b", getFieldValue(*res));
|
|
ferencd@0
|
337 }
|
|
ferencd@0
|
338
|
|
ferencd@0
|
339 // getAllByName function tests
|
|
ferencd@0
|
340 void testFindAllFields1()
|
|
ferencd@0
|
341 {
|
|
ferencd@0
|
342 vmime::header hdr;
|
|
ferencd@0
|
343 hdr.parse("A: a1\nC: c1\n");
|
|
ferencd@0
|
344
|
|
ferencd@0
|
345 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.findAllFields("B");
|
|
ferencd@0
|
346
|
|
ferencd@0
|
347 VASSERT_EQ("Count", static_cast <unsigned int>(0), res.size());
|
|
ferencd@0
|
348 }
|
|
ferencd@0
|
349
|
|
ferencd@0
|
350 void testFindAllFields2()
|
|
ferencd@0
|
351 {
|
|
ferencd@0
|
352 vmime::header hdr;
|
|
ferencd@0
|
353 hdr.parse("A: a1\nB: b1\nB: b2\nC: c1\n");
|
|
ferencd@0
|
354
|
|
ferencd@0
|
355 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.findAllFields("B");
|
|
ferencd@0
|
356
|
|
ferencd@0
|
357 VASSERT_EQ("Count", static_cast <unsigned int>(2), res.size());
|
|
ferencd@0
|
358 VASSERT_EQ("First value", "B: b1", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
359 VASSERT_EQ("Second value", "B: b2", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
360 }
|
|
ferencd@0
|
361
|
|
ferencd@0
|
362 void testFindAllFields3()
|
|
ferencd@0
|
363 {
|
|
ferencd@0
|
364 vmime::header hdr;
|
|
ferencd@0
|
365 hdr.parse("A: a1\nB: b1\nB: b2\nC: c1\nC: c3\nC: c2\n");
|
|
ferencd@0
|
366
|
|
ferencd@0
|
367 std::vector <vmime::shared_ptr <vmime::headerField> > res = hdr.findAllFields("C");
|
|
ferencd@0
|
368
|
|
ferencd@0
|
369 VASSERT_EQ("Count", static_cast <unsigned int>(3), res.size());
|
|
ferencd@0
|
370 VASSERT_EQ("First value", "C: c1", headerTest::getFieldValue(*res[0]));
|
|
ferencd@0
|
371 VASSERT_EQ("Second value", "C: c3", headerTest::getFieldValue(*res[1]));
|
|
ferencd@0
|
372 VASSERT_EQ("Second value", "C: c2", headerTest::getFieldValue(*res[2]));
|
|
ferencd@0
|
373 }
|
|
ferencd@0
|
374
|
|
ferencd@0
|
375 VMIME_TEST_SUITE_END
|
|
ferencd@0
|
376
|