From 6280c6a3d1daad83b8054730d430edbc91bc6d2d Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 27 Jun 2013 23:56:19 -0700 Subject: Allows for custom headers to be set in message * Adds setHeaders, addHeader, getHeader to {MCO,MC}MessageHeader * Exposes MCHashMap iterator for more effecient iteration --- tests/test-all.mm | 1 + 1 file changed, 1 insertion(+) (limited to 'tests') diff --git a/tests/test-all.mm b/tests/test-all.mm index 2201d6d5..d4b00762 100644 --- a/tests/test-all.mm +++ b/tests/test-all.mm @@ -53,6 +53,7 @@ static mailcore::Data * testMessageBuilder() bcc->addObject(mailcore::Address::addressWithDisplayName(MCSTR("Hidden Recipient"), MCSTR("foobar@bcc-recipient.org"))); msg->header()->setTo(to); msg->header()->setBcc(bcc); + msg->header()->addHeader(MCSTR("X-Custom-Header"), MCSTR("Custom Header Value")); to->release(); bcc->release(); msg->header()->setSubject(MCSTR("Mon projet d'été")); -- cgit v1.2.3 From 6594f1527f9392ed74201d726b0c6aa6897e372b Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 11 Jul 2013 18:45:04 -0500 Subject: Adds NULL check and style cleanup * Adds check for mExtraHeaders == NULL to all allExtraHeadersNames() * Makes mExtraHeaders == NULL checks more consistent * Cleans up code formatting to be more consistent --- src/core/abstract/MCMessageHeader.cc | 33 +++++++++++++++++++-------------- tests/test-all.mm | 3 ++- 2 files changed, 21 insertions(+), 15 deletions(-) (limited to 'tests') diff --git a/src/core/abstract/MCMessageHeader.cc b/src/core/abstract/MCMessageHeader.cc index 2a3552fa..bdeb6907 100644 --- a/src/core/abstract/MCMessageHeader.cc +++ b/src/core/abstract/MCMessageHeader.cc @@ -295,32 +295,37 @@ String * MessageHeader::userAgent() return mUserAgent; } -void MessageHeader::setExtraHeaders(HashMap * headers) { +void MessageHeader::setExtraHeaders(HashMap * headers) +{ MC_SAFE_REPLACE_COPY(HashMap, mExtraHeaders, headers); } -Array * MessageHeader::allExtraHeadersNames() { +Array * MessageHeader::allExtraHeadersNames() +{ + if (mExtraHeaders == NULL) + return Array::array(); return mExtraHeaders->allKeys(); } -void MessageHeader::addHeader(String * name, String * object) { - if (mExtraHeaders == NULL) { +void MessageHeader::addHeader(String * name, String * object) +{ + if (mExtraHeaders == NULL) mExtraHeaders = new HashMap(); - } mExtraHeaders->setObjectForKey(name, object); } -void MessageHeader::removeHeader(String * name) { - if (mExtraHeaders != NULL) { - mExtraHeaders->removeObjectForKey(name); - } +void MessageHeader::removeHeader(String * name) +{ + if (mExtraHeaders == NULL) + return; + mExtraHeaders->removeObjectForKey(name); } -String * MessageHeader::headerValueForName(String * name) { - if (mExtraHeaders) { - return (String *) mExtraHeaders->objectForKey(name); - } - return NULL; +String * MessageHeader::headerValueForName(String * name) +{ + if (mExtraHeaders == NULL) + return NULL; + return (String *) mExtraHeaders->objectForKey(name); } String * MessageHeader::extractedSubject() diff --git a/tests/test-all.mm b/tests/test-all.mm index d4b00762..88eeabf1 100644 --- a/tests/test-all.mm +++ b/tests/test-all.mm @@ -53,9 +53,10 @@ static mailcore::Data * testMessageBuilder() bcc->addObject(mailcore::Address::addressWithDisplayName(MCSTR("Hidden Recipient"), MCSTR("foobar@bcc-recipient.org"))); msg->header()->setTo(to); msg->header()->setBcc(bcc); - msg->header()->addHeader(MCSTR("X-Custom-Header"), MCSTR("Custom Header Value")); to->release(); bcc->release(); + MCAssert(msg->header()->allExtraHeadersNames()->count() == 0); + msg->header()->addHeader(MCSTR("X-Custom-Header"), MCSTR("Custom Header Value")); msg->header()->setSubject(MCSTR("Mon projet d'été")); msg->setHTMLBody(MCSTR("
Hello
")); msg->addAttachment(mailcore::Attachment::attachmentWithContentsOfFile(MCSTR("first-filename"))); -- cgit v1.2.3