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