mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 09:04:13 +00:00
fix leaks
This commit is contained in:
parent
1536c24331
commit
a1e17402cf
2 changed files with 37 additions and 30 deletions
|
@ -27,7 +27,6 @@ int main(int argc,char **argv)
|
|||
NSString *string = nil;
|
||||
GSMimeDocument *doc = AUTORELEASE([[GSMimeDocument alloc] init]);
|
||||
GSMimeDocument *mul;
|
||||
GSMimeHeader *hdr;
|
||||
NSMutableDictionary *par = AUTORELEASE([[NSMutableDictionary alloc] init]);
|
||||
|
||||
[par setObject: @"my/type" forKey: @"type"];
|
||||
|
@ -63,9 +62,11 @@ int main(int argc,char **argv)
|
|||
value: @"€"
|
||||
parameters: nil]];
|
||||
data = [doc rawMimeData];
|
||||
/*
|
||||
const char *bytes = "MIME-Version: 1.0\r\n"
|
||||
"Content-Type: text/plain; type=\"my/type\"\r\n"
|
||||
"Subject: =?utf-8?B?4oKs?=\r\n\r\n";
|
||||
*/
|
||||
PASS(find((char*)[data bytes], (unsigned)[data length], "?B?4oKs?=") > 0,
|
||||
"encodes utf-8 euro in subject");
|
||||
|
||||
|
|
|
@ -8,8 +8,8 @@ int main()
|
|||
NSAutoreleasePool *arp = [NSAutoreleasePool new];
|
||||
GSMimeParser *parser = [GSMimeParser mimeParser];
|
||||
NSStringEncoding enc = [GSMimeDocument encodingFromCharset: @"utf-8"];
|
||||
NSData *data;
|
||||
GSMimeDocument *doc = [[parser mimeDocument] retain];
|
||||
NSData *data;
|
||||
GSMimeDocument *doc = [parser mimeDocument];
|
||||
GSMimeHeader *hdr;
|
||||
NSString *val;
|
||||
NSString *raw;
|
||||
|
@ -50,41 +50,46 @@ int main()
|
|||
|
||||
PASS([doc contentType] == nil, "First Header not complete until next starts");
|
||||
|
||||
data = [@"Content-id: <" dataUsingEncoding:enc];
|
||||
PASS([parser parse: data] &&
|
||||
[parser isInHeaders],
|
||||
"Adding partial headers is ok");
|
||||
data = [@"Content-id: <" dataUsingEncoding: enc];
|
||||
PASS([parser parse: data] && [parser isInHeaders],
|
||||
"Adding partial headers is ok")
|
||||
|
||||
PASS([[doc contentType] isEqual: @"application"] &&
|
||||
[[doc contentSubtype] isEqual:@"xxx"],"Parsed first header as expected");
|
||||
PASS([[doc contentType] isEqual: @"application"]
|
||||
&& [[doc contentSubtype] isEqual:@"xxx"],"Parsed first header as expected")
|
||||
|
||||
data = [@"hello>\r\n" dataUsingEncoding: enc];
|
||||
PASS([parser parse: data] &&
|
||||
[parser isInHeaders],
|
||||
"Completing partial header is ok");
|
||||
PASS([parser parse: data] && [parser isInHeaders],
|
||||
"Completing partial header is ok")
|
||||
|
||||
PASS([doc contentID] == nil, "Partial header not complete until next starts");
|
||||
PASS([doc contentID] == nil, "Partial header not complete until next starts")
|
||||
|
||||
data = [@"Folded\r\n : testing\r\n" dataUsingEncoding:enc];
|
||||
PASS([parser parse:data] && [parser isInHeaders], "Folded header is ok");
|
||||
PASS([parser parse: data] && [parser isInHeaders], "Folded header is ok")
|
||||
|
||||
PASS([@"<hello>" isEqual: [doc contentID]],"Parsed partial header as expected %s",[[doc contentID] UTF8String]);
|
||||
PASS([@"<hello>" isEqual: [doc contentID]],
|
||||
"Parsed partial header as expected %s", [[doc contentID] UTF8String])
|
||||
|
||||
PASS([doc headerNamed: @"Folded"] == nil,"Folded header not complete until next starts");
|
||||
PASS([doc headerNamed: @"Folded"] == nil,
|
||||
"Folded header not complete until next starts")
|
||||
|
||||
data = [@"\r" dataUsingEncoding:enc];
|
||||
PASS([parser parse:data] && [parser isInHeaders], "partial end-of-line is ok");
|
||||
data = [@"\r" dataUsingEncoding: enc];
|
||||
PASS([parser parse:data] && [parser isInHeaders],
|
||||
"partial end-of-line is ok")
|
||||
|
||||
PASS([[[doc headerNamed:@"Folded"] value] isEqual: @"testing"],"Parsed folded header as expected %s",[[[doc headerNamed:@"Folded"] value] UTF8String]);
|
||||
PASS([[[doc headerNamed:@"Folded"] value] isEqual: @"testing"],
|
||||
"Parsed folded header as expected %s",
|
||||
[[[doc headerNamed:@"Folded"] value] UTF8String])
|
||||
|
||||
data = [@"\n" dataUsingEncoding:enc];
|
||||
PASS([parser parse:data] && ![parser isInHeaders], "completing end-of-line is ok");
|
||||
PASS([parser parse:data] && ![parser isInHeaders],
|
||||
"completing end-of-line is ok")
|
||||
|
||||
doc = [GSMimeDocument documentWithContent:[@"\"\\UFE66???\"" propertyList]
|
||||
type:@"text/plain"
|
||||
name:nil];
|
||||
doc = [GSMimeDocument documentWithContent: [@"\"\\UFE66???\"" propertyList]
|
||||
type: @"text/plain"
|
||||
name: nil];
|
||||
[doc rawMimeData];
|
||||
PASS([[[doc headerNamed:@"content-type"] parameterForKey:@"charset"] isEqual:@"utf-8"],"charset is inferred");
|
||||
PASS([[[doc headerNamed: @"content-type"] parameterForKey: @"charset"]
|
||||
isEqual: @"utf-8"], "charset is inferred")
|
||||
|
||||
val = @"by mail.turbocat.net (Postfix, from userid 1002) id 90885422ECBF; Sat, 22 Dec 2007 15:40:10 +0100 (CET)";
|
||||
if ([[NSUserDefaults standardUserDefaults]
|
||||
|
@ -96,7 +101,8 @@ int main()
|
|||
{
|
||||
raw = @"Received: by mail.turbocat.net (Postfix, from userid 1002) id 90885422ECBF;\r\n Sat, 22 Dec 2007 15:40:10 +0100 (CET)\r\n";
|
||||
}
|
||||
hdr = [[GSMimeHeader alloc] initWithName: @"Received" value: val];
|
||||
hdr = AUTORELEASE([[GSMimeHeader alloc]
|
||||
initWithName: @"Received" value: val]);
|
||||
data = [hdr rawMimeDataPreservingCase: YES];
|
||||
// NSLog(@"Header: '%*.*s'", [data length], [data length], [data bytes]);
|
||||
PASS([data isEqual: [raw dataUsingEncoding: NSASCIIStringEncoding]],
|
||||
|
@ -104,14 +110,14 @@ int main()
|
|||
|
||||
data = [NSData dataWithContentsOfFile: @"HTTP1.dat"];
|
||||
parser = [GSMimeParser mimeParser];
|
||||
PASS ([parser parse: data] == NO, "can parse HTTP 200 reponse in one go");
|
||||
PASS ([parser isComplete], "parse is complete");
|
||||
PASS([parser parse: data] == NO, "can parse HTTP 200 reponse in one go")
|
||||
PASS([parser isComplete], "parse is complete")
|
||||
|
||||
data = [NSData dataWithContentsOfFile: @"HTTP2.dat"];
|
||||
parser = [GSMimeParser mimeParser];
|
||||
PASS ([parser parse: data] == NO, "can parse HTTP chunked in one go");
|
||||
PASS ([parser isComplete], "parse is complete");
|
||||
PASS ([parser isComplete], "parse is complete");
|
||||
PASS([parser parse: data] == NO, "can parse HTTP chunked in one go")
|
||||
PASS([parser isComplete], "parse is complete")
|
||||
PASS([parser isComplete], "parse is complete")
|
||||
|
||||
PASS_EQUAL([[parser mimeDocument] convertToText],
|
||||
@"This is the data in the first chunk\r\nand this is the second one\r\n"
|
||||
|
|
Loading…
Reference in a new issue