Files
HTMLKit/Tests/HTMLKitTests/HTMLKitTestUtil.m
T

36 lines
990 B
Objective-C

//
// HTMLKitTestUtil.m
// HTMLKit
//
// Created by Iska on 11/04/16.
// Copyright © 2016 BrainCookie. All rights reserved.
//
#import "HTMLKitTestUtil.h"
#import <objc/runtime.h>
@implementation HTMLKitTestUtil
+ (NSInvocation *)addTestToClass:(Class)cls withName:(NSString *)name block:(id)block
{
IMP implementation = imp_implementationWithBlock(block);
const char *types = [[NSString stringWithFormat:@"%s%s%s", @encode(id), @encode(id), @encode(SEL)] UTF8String];
SEL selector = NSSelectorFromString(name);
class_addMethod(cls, selector, implementation, types);
NSMethodSignature *signature = [cls instanceMethodSignatureForSelector:selector];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
invocation.selector = selector;
return invocation;
}
+ (id)ivarForInstacne:(id)instance name:(NSString *)name
{
Ivar ivar = class_getInstanceVariable([instance class], [name UTF8String]);
return object_getIvar(instance, ivar);
}
@end