diff options
author | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2009-09-16 17:04:27 +0000 |
---|---|---|
committer | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2009-09-16 17:04:27 +0000 |
commit | 080b28284751ae178608f45268765f6e0ae94287 (patch) | |
tree | 615c076d5a79621921eac431f5857f6e2d73c8c0 /Foundation | |
parent | 9ebf8b15cfb105864e97a0e8b005de8e6e5d5c42 (diff) |
[Author: dmaclach]
Add support for more complex unit test class hierarchies than what is
available out of the box in SenTestCase. I currently have the release notes
checked out as part of a separate change, and will update them accordingly
for this as well.
R=thomasvl,mrossetti
DELTA=80 (79 added, 0 deleted, 1 changed)
Diffstat (limited to 'Foundation')
-rw-r--r-- | Foundation/GTMObjC2Runtime.h | 1 | ||||
-rw-r--r-- | Foundation/GTMObjC2Runtime.m | 4 | ||||
-rw-r--r-- | Foundation/GTMObjC2RuntimeTest.m | 9 |
3 files changed, 14 insertions, 0 deletions
diff --git a/Foundation/GTMObjC2Runtime.h b/Foundation/GTMObjC2Runtime.h index 4f569a5..9f5afa0 100644 --- a/Foundation/GTMObjC2Runtime.h +++ b/Foundation/GTMObjC2Runtime.h @@ -55,6 +55,7 @@ OBJC_EXPORT Class object_getClass(id obj); OBJC_EXPORT const char *class_getName(Class cls); OBJC_EXPORT BOOL class_conformsToProtocol(Class cls, Protocol *protocol); +OBJC_EXPORT BOOL class_respondsToSelector(Class cls, SEL sel); OBJC_EXPORT Class class_getSuperclass(Class cls); OBJC_EXPORT Method *class_copyMethodList(Class cls, unsigned int *outCount); OBJC_EXPORT SEL method_getName(Method m); diff --git a/Foundation/GTMObjC2Runtime.m b/Foundation/GTMObjC2Runtime.m index 9835654..2eb5dc3 100644 --- a/Foundation/GTMObjC2Runtime.m +++ b/Foundation/GTMObjC2Runtime.m @@ -58,6 +58,10 @@ Class class_getSuperclass(Class cls) { return cls->super_class; } +BOOL class_respondsToSelector(Class cls, SEL sel) { + return class_getInstanceMethod(cls, sel) != nil; +} + Method *class_copyMethodList(Class cls, unsigned int *outCount) { if (!cls) return NULL; diff --git a/Foundation/GTMObjC2RuntimeTest.m b/Foundation/GTMObjC2RuntimeTest.m index 7344a0f..7a88f23 100644 --- a/Foundation/GTMObjC2RuntimeTest.m +++ b/Foundation/GTMObjC2RuntimeTest.m @@ -160,6 +160,15 @@ AT_REQUIRED nil); } +- (void)test_class_respondsToSelector { + // Nil Checks + STAssertFalse(class_respondsToSelector(cls_, @selector(setUp)), nil); + STAssertFalse(class_respondsToSelector(cls_, nil), nil); + + // Standard use check + STAssertTrue(class_respondsToSelector(cls_, @selector(kwyjibo)), nil); +} + - (void)test_class_getSuperclass { // Nil Checks STAssertNil(class_getSuperclass(nil), nil); |