Add stanza about packaging copyright.
[debian/mimetic.git] / test / t.parser.h
1 #ifndef _T_PARSER_H_
2 #define _T_PARSER_H_
3 #include <iostream>
4 #include <fstream>
5 #include <iterator>
6 #include <string>
7 #include <list>
8 #include <mimetic/mimeentity.h>
9 #include <mimetic/parser/itparser.h>
10 #include <mimetic/os/file.h>
11 #include <mimetic/utils.h>
12 #include <string.h>
13 #include "cutee.h"
14
15 namespace mimetic
16 {
17
18 struct TEST_CLASS( parser_fixed_bugs )
19 {
20     void TEST_FUNCTION( t0_input_iterator )
21     {
22         // bug: the body of multipart msgs include the newline char
23         //      preceding the boundary
24         using namespace std;
25         ifstream ifs("test3.msg");
26         MimeEntity me(ifs);
27         TEST_ASSERT(me.body().parts().size());
28         ContentType& ct = me.header().contentType();
29         TEST_ASSERT_EQUALS_P(ct.type(), "multipart");
30         TEST_ASSERT_EQUALS_P(ct.subtype(), "form-data");
31         MimeEntityList& mel = me.body().parts();
32         MimeEntityList::iterator bit = mel.begin(), eit = mel.end();
33         for( int i = 0; bit != eit; ++bit, ++i)
34         {
35             stringstream ss;
36             ss << setfill('0') << setw(3) << i;
37             TEST_ASSERT_EQUALS_P(ss.str(), (*bit)->body());
38         }
39     }
40     void TEST_FUNCTION( t0_random_iterator )
41     {
42         using namespace std;
43         File in("test3.msg");
44         MimeEntity me(in.begin(), in.end());
45         TEST_ASSERT(me.body().parts().size());
46         ContentType& ct = me.header().contentType();
47         TEST_ASSERT_EQUALS_P(ct.type(), "multipart");
48         TEST_ASSERT_EQUALS_P(ct.subtype(), "form-data");
49         MimeEntityList& mel = me.body().parts();
50         MimeEntityList::iterator bit = mel.begin(), eit = mel.end();
51         for( int i = 0; bit != eit; ++bit, ++i)
52         {
53             stringstream ss;
54             ss << setfill('0') << setw(3) << i;
55             TEST_ASSERT_EQUALS_P(ss.str(), (*bit)->body());
56         }
57     }
58 };
59
60 };
61
62 #endif
63