diff options
Diffstat (limited to 'Foundation/GTMLightweightProxyTest.m')
-rw-r--r-- | Foundation/GTMLightweightProxyTest.m | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/Foundation/GTMLightweightProxyTest.m b/Foundation/GTMLightweightProxyTest.m index 01a1bb2..3309484 100644 --- a/Foundation/GTMLightweightProxyTest.m +++ b/Foundation/GTMLightweightProxyTest.m @@ -6,9 +6,9 @@ // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy // of the License at -// +// // http://www.apache.org/licenses/LICENSE-2.0 -// +// // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the @@ -31,10 +31,10 @@ @implementation GTMLightweightProxyTest - (void)testInit { - id proxy = [[[GTMLightweightProxy alloc] + id proxy = [[[GTMLightweightProxy alloc] initWithRepresentedObject:self] autorelease]; STAssertNotNil(proxy, nil); - + proxy = [[[GTMLightweightProxy alloc] init] autorelease]; STAssertNotNil(proxy, nil); } @@ -44,13 +44,13 @@ = [[[GTMLightweightProxy alloc] initWithRepresentedObject:self] autorelease]; STAssertEqualObjects(self, [proxy representedObject], @"Represented object setup failed"); - + // Check that it identifies itself as a proxy. STAssertTrue([proxy isProxy], @"Should identify as a proxy"); // Check that it passes class requests on STAssertTrue([proxy isMemberOfClass:[self class]], @"Should pass class requests through"); - + // Check that it claims to respond to its selectors. STAssertTrue([proxy respondsToSelector:@selector(initWithRepresentedObject:)], @"Claims not to respond to initWithRepresentedObject:"); @@ -62,13 +62,18 @@ STAssertTrue([proxy respondsToSelector:@selector(returnYes)], @"Claims not to respond to returnYes"); // ... but not to made up selectors. +#if !(__IPHONE_OS_VERSION_MIN_REQUIRED == __IPHONE_3_2 || __IPHONE_OS_VERSION_MIN_REQUIRED == __IPHONE_4_0) + // Exceptions thrown by - (void)doesNotRecognizeSelector:(SEL)aSelector + // does not get caught on iOS 3.2 and greater. + // http://openradar.appspot.com/radar?id=420401 STAssertThrows([proxy someMadeUpMethod], @"Calling a bogus method should throw"); - +#endif + // Check that callthrough works. STAssertTrue([proxy returnYes], @"Calling through to the represented object failed"); - + // Check that nilling out the represented object works. [proxy setRepresentedObject:nil]; STAssertTrue([proxy respondsToSelector:@selector(setRepresentedObject:)], @@ -81,9 +86,17 @@ STAssertNoThrow([proxy returnYes], @"Calling through without a represented object should fail" @" silently"); + // ... even when they are made up. +#if !(__IPHONE_OS_VERSION_MIN_REQUIRED == __IPHONE_3_2 || __IPHONE_OS_VERSION_MIN_REQUIRED == __IPHONE_4_0) + // Exceptions thrown by - (void)doesNotRecognizeSelector:(SEL)aSelector + // does not get caught on iOS 3.2 and greater. + // http://openradar.appspot.com/radar?id=420401 + STAssertNoThrow([proxy someMadeUpMethod], @"Calling a bogus method on a nilled proxy should not throw"); +#endif + } // Simple method to test calling through the proxy. |