mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-21 07:21:12 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39461 72102866-910b-0410-8b05-ffd578937521
120 lines
3.7 KiB
Objective-C
120 lines
3.7 KiB
Objective-C
#import <Foundation/Foundation.h>
|
|
#import "Testing.h"
|
|
#import "ObjectTesting.h"
|
|
|
|
|
|
int main()
|
|
{
|
|
#if GNUSTEP
|
|
NSAutoreleasePool *arp = [NSAutoreleasePool new];
|
|
unsigned i;
|
|
NSURL *url;
|
|
NSMutableString *m;
|
|
NSData *data;
|
|
NSString *str;
|
|
NSTask *t;
|
|
NSString *helpers;
|
|
NSString *capture;
|
|
NSMutableURLRequest *request;
|
|
NSHTTPURLResponse *response = nil;
|
|
NSError *error = nil;
|
|
NSFileManager *fm;
|
|
NSRange r;
|
|
NSString *file = @"Capture.dat";
|
|
|
|
fm = [NSFileManager defaultManager];
|
|
helpers = [fm currentDirectoryPath];
|
|
helpers = [helpers stringByAppendingPathComponent: @"Helpers"];
|
|
helpers = [helpers stringByAppendingPathComponent: @"obj"];
|
|
capture = [helpers stringByAppendingPathComponent: @"capture"];
|
|
|
|
m = [NSMutableString stringWithCapacity: 2048];
|
|
for (i = 0; i < 128; i++)
|
|
{
|
|
[m appendFormat: @"Hello %d\r\n", i];
|
|
}
|
|
|
|
t = [NSTask launchedTaskWithLaunchPath: capture
|
|
arguments: [NSArray arrayWithObjects:
|
|
nil]];
|
|
if (t != nil)
|
|
{
|
|
// Pause to allow server subtask to set up.
|
|
[NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: 0.5]];
|
|
// remove the captured data from a possible previous run
|
|
[fm removeItemAtPath: file error: NULL];
|
|
// making a POST request
|
|
url = [NSURL URLWithString: @"http://localhost:1234/"];
|
|
request = [NSMutableURLRequest requestWithURL: url];
|
|
data = [m dataUsingEncoding: NSUTF8StringEncoding];
|
|
[request setHTTPBody: data];
|
|
[request setHTTPMethod: @"POST"];
|
|
|
|
// sending the request
|
|
[NSURLConnection sendSynchronousRequest: request
|
|
returningResponse: &response
|
|
error: &error];
|
|
|
|
// analyzing the response
|
|
PASS(response != nil && [response statusCode] == 204,
|
|
"NSURLConnection synchronous load returns a response");
|
|
|
|
data = [NSData dataWithContentsOfFile: @"Capture.dat"];
|
|
str = [[NSString alloc] initWithData: data
|
|
encoding: NSUTF8StringEncoding];
|
|
r = [str rangeOfString: m];
|
|
PASS(r.location != NSNotFound,
|
|
"NSURLConnection capture test OK");
|
|
|
|
// Wait for server termination
|
|
[t terminate];
|
|
[t waitUntilExit];
|
|
DESTROY(str);
|
|
response = nil;
|
|
error = nil;
|
|
}
|
|
|
|
// the same but with secure connection (HTTPS)
|
|
t = [NSTask launchedTaskWithLaunchPath: capture
|
|
arguments: [NSArray arrayWithObjects:
|
|
@"-Secure", @"YES",
|
|
nil]];
|
|
if (t != nil)
|
|
{
|
|
// Pause to allow server subtask to set up.
|
|
[NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: 0.5]];
|
|
// remove the captured data from a possible previous run
|
|
[fm removeItemAtPath: file error: NULL];
|
|
// making a POST request
|
|
url = [NSURL URLWithString: @"https://localhost:1234/"];
|
|
request = [NSMutableURLRequest requestWithURL: url];
|
|
data = [m dataUsingEncoding: NSUTF8StringEncoding];
|
|
[request setHTTPBody: data];
|
|
[request setHTTPMethod: @"POST"];
|
|
|
|
// sending the request
|
|
[NSURLConnection sendSynchronousRequest: request
|
|
returningResponse: &response
|
|
error: &error];
|
|
|
|
// sending the request
|
|
PASS(response != nil && [response statusCode] == 204,
|
|
"NSURLConnection synchronous load returns a response");
|
|
|
|
data = [NSData dataWithContentsOfFile: @"Capture.dat"];
|
|
str = [[NSString alloc] initWithData: data
|
|
encoding: NSUTF8StringEncoding];
|
|
r = [str rangeOfString: m];
|
|
PASS(r.location != NSNotFound,
|
|
"NSURLConnection capture test OK");
|
|
|
|
// Wait for server termination
|
|
[t terminate];
|
|
[t waitUntilExit];
|
|
DESTROY(str);
|
|
}
|
|
|
|
[arp release]; arp = nil;
|
|
#endif
|
|
return 0;
|
|
}
|