aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/rfc822
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2014-10-21 20:50:13 -0700
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2014-10-21 20:50:13 -0700
commitc58220701ada0ccca85cd290a57b3e2277537b75 (patch)
tree5308105b610dd50f7cc66734e857e4bc7999ce96 /src/core/rfc822
parentdf800fed1079fb0b9f49681d7b1688c1d3b97539 (diff)
Implement unit tests for message builder and message parsers
Diffstat (limited to 'src/core/rfc822')
-rw-r--r--src/core/rfc822/MCAttachment.cc6
-rw-r--r--src/core/rfc822/MCMessageBuilder.cc5
-rw-r--r--src/core/rfc822/MCMessageBuilder.h1
-rw-r--r--src/core/rfc822/MCMessageParser.cc9
-rw-r--r--src/core/rfc822/MCMessageParser.h2
5 files changed, 22 insertions, 1 deletions
diff --git a/src/core/rfc822/MCAttachment.cc b/src/core/rfc822/MCAttachment.cc
index 63551b6a..71eea11d 100644
--- a/src/core/rfc822/MCAttachment.cc
+++ b/src/core/rfc822/MCAttachment.cc
@@ -130,13 +130,17 @@ String * Attachment::mimeTypeForFilename(String * filename)
Attachment * Attachment::attachmentWithContentsOfFile(String * filename)
{
+ if (filename == NULL) {
+ return attachmentWithData(NULL, Data::data());
+ }
+
const char * cPath = filename->fileSystemRepresentation();
struct stat statinfo;
int r;
r = stat(cPath, &statinfo);
if (r < 0) {
- return NULL;
+ return attachmentWithData(filename, Data::data());
}
if (S_ISDIR(statinfo.st_mode)) {
diff --git a/src/core/rfc822/MCMessageBuilder.cc b/src/core/rfc822/MCMessageBuilder.cc
index 0ffe0819..efccbee0 100644
--- a/src/core/rfc822/MCMessageBuilder.cc
+++ b/src/core/rfc822/MCMessageBuilder.cc
@@ -948,3 +948,8 @@ void MessageBuilder::resetBoundaries()
mBoundaries->removeAllObjects();
}
+void MessageBuilder::setBoundaries(Array * boundaries)
+{
+ resetBoundaries();
+ mBoundaries->addObjectsFromArray(boundaries);
+}
diff --git a/src/core/rfc822/MCMessageBuilder.h b/src/core/rfc822/MCMessageBuilder.h
index aef594a1..07c4795e 100644
--- a/src/core/rfc822/MCMessageBuilder.h
+++ b/src/core/rfc822/MCMessageBuilder.h
@@ -58,6 +58,7 @@ namespace mailcore {
public: // private
virtual String * nextBoundary();
virtual void resetBoundaries();
+ virtual void setBoundaries(Array * boundaries);
private:
String * mHTMLBody;
diff --git a/src/core/rfc822/MCMessageParser.cc b/src/core/rfc822/MCMessageParser.cc
index 21e2e985..4eb6046e 100644
--- a/src/core/rfc822/MCMessageParser.cc
+++ b/src/core/rfc822/MCMessageParser.cc
@@ -103,6 +103,15 @@ String * MessageParser::description()
return result;
}
+HashMap * MessageParser::serializable()
+{
+ HashMap * result = AbstractMessage::serializable();
+ if (mMainPart != NULL) {
+ result->setObjectForKey(MCSTR("mainPart"), mMainPart->serializable());
+ }
+ return result;
+}
+
Object * MessageParser::copy()
{
return new MessageParser(this);
diff --git a/src/core/rfc822/MCMessageParser.h b/src/core/rfc822/MCMessageParser.h
index 11de9b58..bf4687cb 100644
--- a/src/core/rfc822/MCMessageParser.h
+++ b/src/core/rfc822/MCMessageParser.h
@@ -37,6 +37,8 @@ namespace mailcore {
virtual AbstractPart * partForContentID(String * contentID);
virtual AbstractPart * partForUniqueID(String * uniqueID);
+ virtual HashMap * serializable();
+
private:
Data * mData;
AbstractPart * mMainPart;