diff --git a/MailCore.xcodeproj/mronge.mode1v3 b/MailCore.xcodeproj/mronge.mode1v3
index 5656c5b..5694974 100644
--- a/MailCore.xcodeproj/mronge.mode1v3
+++ b/MailCore.xcodeproj/mronge.mode1v3
@@ -328,7 +328,7 @@
_historyCapacity
0
bookmark
- F8430B2C0C72A21F00753941
+ F8430B2F0C72A3E600753941
history
F869B8E10C618FA80033E640
diff --git a/MailCore.xcodeproj/mronge.pbxuser b/MailCore.xcodeproj/mronge.pbxuser
index 2d83781..73c5838 100644
--- a/MailCore.xcodeproj/mronge.pbxuser
+++ b/MailCore.xcodeproj/mronge.pbxuser
@@ -552,6 +552,8 @@
F8430B2A0C72A21F00753941 /* PBXTextBookmark */ = F8430B2A0C72A21F00753941 /* PBXTextBookmark */;
F8430B2B0C72A21F00753941 /* PBXTextBookmark */ = F8430B2B0C72A21F00753941 /* PBXTextBookmark */;
F8430B2C0C72A21F00753941 /* PBXTextBookmark */ = F8430B2C0C72A21F00753941 /* PBXTextBookmark */;
+ F8430B2D0C72A3D300753941 /* PBXTextBookmark */ = F8430B2D0C72A3D300753941 /* PBXTextBookmark */;
+ F8430B2F0C72A3E600753941 /* PBXTextBookmark */ = F8430B2F0C72A3E600753941 /* PBXTextBookmark */;
F8584AAE0C4B0CE1007B6EF3 = F8584AAE0C4B0CE1007B6EF3 /* PBXTextBookmark */;
F8584B4B0C4B2675007B6EF3 = F8584B4B0C4B2675007B6EF3 /* PBXTextBookmark */;
F858CC950C51E42100EF1B3D = F858CC950C51E42100EF1B3D /* PBXTextBookmark */;
@@ -732,9 +734,9 @@
};
F81A8AEC0C03FC58002F780A /* CTMIMETests.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1046, 1568}}";
- sepNavSelRange = "{6194, 0}";
- sepNavVisRange = "{0, 2255}";
+ sepNavIntBoundsRect = "{{0, 0}, {1046, 1778}}";
+ sepNavSelRange = "{7316, 0}";
+ sepNavVisRange = "{4285, 3099}";
};
};
F81B88500A74AA7100143DF6 /* CTCoreAccount.h */ = {
@@ -5441,6 +5443,26 @@
vrLen = 2255;
vrLoc = 0;
};
+ F8430B2D0C72A3D300753941 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = F81A8AEC0C03FC58002F780A /* CTMIMETests.m */;
+ name = "CTMIMETests.m: 122";
+ rLen = 0;
+ rLoc = 7261;
+ rType = 0;
+ vrLen = 3101;
+ vrLoc = 4285;
+ };
+ F8430B2F0C72A3E600753941 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = F81A8AEC0C03FC58002F780A /* CTMIMETests.m */;
+ name = "CTMIMETests.m: 123";
+ rLen = 0;
+ rLoc = 7316;
+ rType = 0;
+ vrLen = 3099;
+ vrLoc = 4285;
+ };
F8584AAE0C4B0CE1007B6EF3 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88560A74AA7100143DF6 /* CTCoreMessage.h */;
diff --git a/TestData/mime-tests/png_attachment b/TestData/mime-tests/png_attachment
new file mode 100644
index 0000000..96fed9b
--- /dev/null
+++ b/TestData/mime-tests/png_attachment
@@ -0,0 +1,388 @@
+Return-Path:
+X-Original-To: mronge@theronge.com
+Delivered-To: mronge@theronge.com
+Received: from relay7.cso.uiuc.edu (relay7.cso.uiuc.edu [128.174.5.108])
+ by theronge.com (Postfix) with ESMTP id D9110B847D
+ for ; Tue, 14 Aug 2007 19:56:25 -0700 (PDT)
+Received: from theronge.com (theronge.com [69.12.216.205])
+ by relay7.cso.uiuc.edu (8.14.1/8.14.1) with ESMTP id l7F2uKEQ009515
+ for ; Tue, 14 Aug 2007 21:56:26 -0500 (CDT)
+Received: from [192.168.0.197] (66-117-168-58.rev.dls.net [66.117.168.58])
+ by theronge.com (Postfix) with ESMTP id 4B8E5B847D
+ for ; Tue, 14 Aug 2007 19:56:15 -0700 (PDT)
+Date: Tue, 14 Aug 2007 21:56:13 -0500 (CDT)
+From: Matt Ronge
+X-X-Sender: mronge@Compie.local
+To: mronge2@uiuc.edu
+Subject: Test Message with Image Attachment
+Message-ID:
+MIME-Version: 1.0
+Content-Type: MULTIPART/MIXED; BOUNDARY="0-1595289667-1187146577=:11724"
+X-Spam-Score: 0
+X-Spam-Details: rule=aggressive_notspam policy=aggressive score=0 spamscore=0
+ ipscore=0 phishscore=1 bulkscore=1 adultscore=0 classifier=spam
+ adjust=0 reason=mlx engine=3.1.0-0708060001
+ definitions=main-0708140149
+X-Spam-OrigSender: mronge@theronge.com
+X-Spam-Bar:
+X-Spambayes-Classification: ham; 0.05
+
+ This message is in MIME format. The first part should be readable text,
+ while the remaining parts are likely unreadable without MIME-aware tools.
+
+--0-1595289667-1187146577=:11724
+Content-Type: TEXT/PLAIN; format=flowed; charset=us-ascii
+
+Test message with an image attachment.
+--0-1595289667-1187146577=:11724
+Content-Type: IMAGE/png; name="Picture 1.png"
+Content-Transfer-Encoding: BASE64
+Content-ID:
+Content-Description:
+Content-Disposition: attachment; filename="Picture 1.png"
+
+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
+
+--0-1595289667-1187146577=:11724--
+
diff --git a/Tests/CTMIMETests.m b/Tests/CTMIMETests.m
index 38fd5cd..00743eb 100644
--- a/Tests/CTMIMETests.m
+++ b/Tests/CTMIMETests.m
@@ -108,4 +108,19 @@ const NSString *filePrefix = @"/Users/mronge/Projects/MailCore/";
STAssertEqualObjects(img.filename, @"mytestimage.jpg", @"Filename of inline image not correct");
[msg release];
}
+
+- (void)testImagePNGAttachment {
+ CTCoreMessage *msg = [[CTCoreMessage alloc] initWithFileAtPath:[NSString stringWithFormat:@"%@%@",filePrefix,@"TestData/mime-tests/png_attachment"]];
+ CTMIME *mime = [CTMIMEFactory createMIMEWithMIMEStruct:[msg messageStruct]->msg_mime forMessage:[msg messageStruct]];
+ STAssertTrue([mime isKindOfClass:[CTMIME_MessagePart class]],@"Outmost MIME type should be Message but it's not!");
+ STAssertTrue([[mime content] isKindOfClass:[CTMIME_MultiPart class]],@"Incorrect MIME structure found!");
+ NSArray *multiPartContent = [[mime content] content];
+ STAssertTrue([multiPartContent count] == 2, @"Incorrect MIME structure found!");
+ STAssertTrue([[multiPartContent objectAtIndex:0] isKindOfClass:[CTMIME_TextPart class]], @"Incorrect MIME structure found!");
+ STAssertTrue([[multiPartContent objectAtIndex:1] isKindOfClass:[CTMIME_ImagePart class]], @"Incorrect MIME structure found!");
+ CTMIME_ImagePart *img = [multiPartContent objectAtIndex:1];
+ STAssertTrue(img.attached == TRUE, @"Image is should be attached");
+ STAssertEqualObjects(img.filename, @"Picture 1.png", @"Filename of inline image not correct");
+ [msg release];
+}
@end