basic unit tests

This commit is contained in:
Jack Flintermann
2015-06-27 02:37:18 -04:00
parent 8a200078bd
commit 5889c7019e

View File

@@ -71,6 +71,9 @@ for (ASDisplayNode *n in @[ nodes ]) {\
@property (atomic, copy) CGSize(^calculateSizeBlock)(ASTestDisplayNode *node, CGSize size);
@end
@interface ASTestResponderNode : ASTestDisplayNode
@end
@implementation ASTestDisplayNode
- (CGSize)calculateSizeThatFits:(CGSize)constrainedSize
@@ -91,9 +94,57 @@ for (ASDisplayNode *n in @[ nodes ]) {\
@interface UIDisplayNodeTestView : UIView
@end
@interface UIResponderNodeTestView : _ASDisplayView
@property(nonatomic) BOOL isFirstResponder;
@end
@implementation UIDisplayNodeTestView
@end
@interface ASTestWindow : UIWindow
@end
@implementation ASTestWindow
- (id)firstResponder {
return self.subviews.firstObject;
}
@end
@implementation ASTestResponderNode
+ (Class)viewClass {
return [UIResponderNodeTestView class];
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
@end
@implementation UIResponderNodeTestView
- (BOOL)becomeFirstResponder {
self.isFirstResponder = YES;
return YES;
}
- (BOOL)canResignFirstResponder {
return YES;
}
- (BOOL)resignFirstResponder {
if (self.isFirstResponder) {
self.isFirstResponder = NO;
return YES;
}
return NO;
}
@end
@interface ASDisplayNodeTests : XCTestCase
@end
@@ -102,6 +153,25 @@ for (ASDisplayNode *n in @[ nodes ]) {\
dispatch_queue_t queue;
}
- (void)testOverriddenFirstResponderBehavior {
ASTestDisplayNode *node = [[ASTestResponderNode alloc] init];
XCTAssertTrue([node canBecomeFirstResponder]);
XCTAssertTrue([node becomeFirstResponder]);
}
- (void)testDefaultFirstResponderBehavior {
ASTestDisplayNode *node = [[ASTestDisplayNode alloc] init];
XCTAssertFalse([node canBecomeFirstResponder]);
XCTAssertFalse([node becomeFirstResponder]);
}
- (void)testLayerBackedFirstResponderBehavior {
ASTestDisplayNode *node = [[ASTestResponderNode alloc] init];
node.layerBacked = YES;
XCTAssertTrue([node canBecomeFirstResponder]);
XCTAssertFalse([node becomeFirstResponder]);
}
- (void)setUp
{
[super setUp];