diff options
author | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2014-10-21 20:50:13 -0700 |
---|---|---|
committer | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2014-10-21 20:50:13 -0700 |
commit | c58220701ada0ccca85cd290a57b3e2277537b75 (patch) | |
tree | 5308105b610dd50f7cc66734e857e4bc7999ce96 /src/core/rfc822 | |
parent | df800fed1079fb0b9f49681d7b1688c1d3b97539 (diff) |
Implement unit tests for message builder and message parsers
Diffstat (limited to 'src/core/rfc822')
-rw-r--r-- | src/core/rfc822/MCAttachment.cc | 6 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageBuilder.cc | 5 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageBuilder.h | 1 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageParser.cc | 9 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageParser.h | 2 |
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; |