From 5889c7019e85fca7f18686f0e9e2a23d4755d930 Mon Sep 17 00:00:00 2001 From: Jack Flintermann Date: Sat, 27 Jun 2015 02:37:18 -0400 Subject: [PATCH] basic unit tests --- AsyncDisplayKitTests/ASDisplayNodeTests.m | 70 +++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/AsyncDisplayKitTests/ASDisplayNodeTests.m b/AsyncDisplayKitTests/ASDisplayNodeTests.m index fb40acadef..4ce0c49bcf 100644 --- a/AsyncDisplayKitTests/ASDisplayNodeTests.m +++ b/AsyncDisplayKitTests/ASDisplayNodeTests.m @@ -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];