Ben Copsey

Use NSProcessInfo to get host name instead in tests (fixing iPhone build)

Fix warning about the new NSXMLParserDelegate protocol on Leopard and iPhone
@@ -21,8 +21,13 @@ typedef enum _ASIS3ErrorType { @@ -21,8 +21,13 @@ typedef enum _ASIS3ErrorType {
21 21
22 } ASIS3ErrorType; 22 } ASIS3ErrorType;
23 23
  24 +// Prevent warning about missing NSXMLParserDelegate on Leopard and iPhone
  25 +#if !TARGET_OS_IPHONE && MAC_OS_X_VERSION_10_5 < MAC_OS_X_VERSION_MAX_ALLOWED
24 @interface ASIS3Request : ASIHTTPRequest <NSXMLParserDelegate> { 26 @interface ASIS3Request : ASIHTTPRequest <NSXMLParserDelegate> {
  27 +#else
  28 +@interface ASIS3Request : ASIHTTPRequest {
25 29
  30 +#endif
26 // Your S3 access key. Set it on the request, or set it globally using [ASIS3Request setSharedAccessKey:] 31 // Your S3 access key. Set it on the request, or set it globally using [ASIS3Request setSharedAccessKey:]
27 NSString *accessKey; 32 NSString *accessKey;
28 33
@@ -605,12 +605,11 @@ @@ -605,12 +605,11 @@
605 605
606 GHAssertNil([request error],@"Got an error when credentials were supplied"); 606 GHAssertNil([request error],@"Got an error when credentials were supplied");
607 607
608 - // Ok, so I assume that not everyone will have a hostname in the form 'Ben-Copseys-MacBook-Pro.local', but anyway... 608 + // NSProcessInfo returns a lower case string for host name, while CFNetwork will send a mixed case string for host name, so we'll compare by lowercasing everything
609 - NSString *hostName = [NSString stringWithFormat:@"%@.local",[(NSString *)SCDynamicStoreCopyLocalHostName(NULL) autorelease]]; 609 + NSString *hostName = [[NSProcessInfo processInfo] hostName];
610 - 610 + NSString *expectedResponse = [[NSString stringWithFormat:@"You are %@ from %@/%@",@"king",@"Castle.Kingdom",hostName] lowercaseString];
611 - NSString *expectedResponse = [NSString stringWithFormat:@"You are %@ from %@/%@",@"king",[@"Castle.Kingdom" uppercaseString],hostName]; 611 + success = [[[request responseString] lowercaseString] isEqualToString:expectedResponse];
612 - success = [[request responseString] isEqualToString:expectedResponse]; 612 + GHAssertTrue(success,@"Failed to send credentials correctly? (Expected: '%@', got '%@')",expectedResponse,[[request responseString] lowercaseString]);
613 - GHAssertTrue(success,@"Failed to send credentials correctly? (Expected: '%@', got '%@')",expectedResponse,[request responseString]);  
614 } 613 }
615 614
616 - (void)testCompressedResponse 615 - (void)testCompressedResponse
@@ -857,7 +857,8 @@ IMPORTANT @@ -857,7 +857,8 @@ IMPORTANT
857 857
858 - (void)throttleFail:(ASIHTTPRequest *)request 858 - (void)throttleFail:(ASIHTTPRequest *)request
859 { 859 {
860 - GHAssertTrue(NO,@"Request failed"); 860 + GHAssertTrue(NO,@"Request failed, cannot continue with this test");
  861 + [[request queue] cancelAllOperations];
861 } 862 }
862 863
863 // Test for a bug that used to exist where the temporary file used to store the request body would be removed when authentication failed 864 // Test for a bug that used to exist where the temporary file used to store the request body would be removed when authentication failed
@@ -924,12 +925,11 @@ IMPORTANT @@ -924,12 +925,11 @@ IMPORTANT
924 { 925 {
925 GHAssertNil([request error],@"Got an error when credentials were supplied"); 926 GHAssertNil([request error],@"Got an error when credentials were supplied");
926 927
927 - // Ok, so I assume that not everyone will have a hostname in the form 'Ben-Copseys-MacBook-Pro.local', but anyway... 928 + // NSProcessInfo returns a lower case string for host name, while CFNetwork will send a mixed case string for host name, so we'll compare by lowercasing everything
928 - NSString *hostName = [NSString stringWithFormat:@"%@.local",[(NSString *)SCDynamicStoreCopyLocalHostName(NULL) autorelease]]; 929 + NSString *hostName = [[NSProcessInfo processInfo] hostName];
929 - 930 + NSString *expectedResponse = [[NSString stringWithFormat:@"You are %@ from %@/%@",@"king",@"Castle.Kingdom",hostName] lowercaseString];
930 - NSString *expectedResponse = [NSString stringWithFormat:@"You are %@ from %@/%@",@"king",[@"Castle.Kingdom" uppercaseString],hostName]; 931 + BOOL success = [[[request responseString] lowercaseString] isEqualToString:expectedResponse];
931 - BOOL success = [[request responseString] isEqualToString:expectedResponse]; 932 + GHAssertTrue(success,@"Failed to send credentials correctly? (Expected: '%@', got '%@')",expectedResponse,[[request responseString] lowercaseString]);
932 - GHAssertTrue(success,@"Failed to send credentials correctly? (Expected: '%@', got '%@')",expectedResponse,[request responseString]);  
933 933
934 } 934 }
935 935