aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMLightweightProxyTest.m
diff options
context:
space:
mode:
Diffstat (limited to 'Foundation/GTMLightweightProxyTest.m')
-rw-r--r--Foundation/GTMLightweightProxyTest.m29
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.