Change Section to debug for libmimetic0-dbg.
[debian/mimetic.git] / test / t.mimemessage.h
1 #ifndef _T_MIME_H_
2 #define _T_MIME_H_
3 #include <iostream>
4 #include <fstream>
5 #include <string>
6 #include <cstdlib>
7 #include <mimetic/mimetic.h>
8 #include "cutee.h"
9
10
11 namespace mimetic
12 {
13
14 class TEST_CLASS( test_mime )
15 {
16     std::ofstream m_out;
17 public:
18 #define    SEP "................................................\n"
19     test_mime()
20     : m_out("tests.out")
21     {
22     }
23     void TEST_FUNCTION( testMimeEntityBuild )
24     {
25         MimeEntity mm;
26
27         mm.header().from("stefano@codesink.org");
28         mm.header().to("you@home.net");
29         mm.header().subject("Hi!");
30
31         mm.body().assign("Hi!\n\nThank you for trying mimetic!");
32         TEST_ASSERT_EQUALS_P(mm.size(), 96);
33         m_out << std::endl << SEP << mm << std::endl;
34     }
35     void TEST_FUNCTION( testMimeBinaryQpAttach )
36     {
37         MimeEntity me;
38         QP::Encoder qp;
39         me.body().load("file.bin", qp);
40         TEST_ASSERT_EQUALS_P(me.size(), 50650);
41         m_out << std::endl << SEP << me << std::endl;
42     }
43     void TEST_FUNCTION( testMimeBinaryQpBinaryAttach )
44     {
45         MimeEntity me;
46         QP::Encoder qp(true);
47         me.body().load("file.bin", qp);
48         TEST_ASSERT_EQUALS_P(me.size(), 50650);
49         m_out << std::endl << SEP << me << std::endl;
50     }
51     void TEST_FUNCTION( testMimeBinaryBase64Attach )
52     {
53         MimeEntity me;
54         Base64::Encoder b64;
55         me.body().load("file.bin", b64);
56         TEST_ASSERT_EQUALS_P(me.size(), 30631);
57         m_out << std::endl << SEP << me << std::endl;
58     }
59     void TEST_FUNCTION( testMimeMessageRfc822 )
60     {
61         MimeEntity mm;
62         mm.header().from("stefano@codesink.org");
63         mm.header().to("you@home.net");
64         mm.header().subject("Hi!");
65         mm.body().assign("Hi!\n\nThank you for trying mimetic!");
66
67         MessageRfc822 mr(mm);
68         TEST_ASSERT_EQUALS_P(mr.size(), 126);
69         m_out << std::endl << SEP << mr << std::endl;
70     }
71     void TEST_FUNCTION( testMimeHeaderFold )
72     {
73         /* test for the bug reported by M.Pinna (2008-09-23)*/
74
75         string in(100, 'X');
76
77         MimeEntity mm;
78         mm.header().subject(in);
79
80         std::ostringstream buf;
81         buf << mm;
82         string str = buf.str();
83
84         MimeEntity mm2(str.begin(), str.end());
85         string out = mm2.header().subject();
86
87         TEST_ASSERT_EQUALS_P(in, out);
88         m_out << std::endl << SEP << mm << std::endl;
89     }
90 };
91
92 };
93
94 #endif
95