Skip to content

Commit

Permalink
basic unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jack-stripe committed Jun 27, 2015
1 parent a0c126f commit 8fda705
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions AsyncDisplayKitTests/ASDisplayNodeTests.m
Expand Up @@ -71,6 +71,9 @@ @interface ASTestDisplayNode : ASDisplayNode
@property (atomic, copy) CGSize(^calculateSizeBlock)(ASTestDisplayNode *node, CGSize size);
@end

@interface ASTestResponderNode : ASTestDisplayNode
@end

@implementation ASTestDisplayNode

- (CGSize)calculateSizeThatFits:(CGSize)constrainedSize
Expand All @@ -91,9 +94,57 @@ - (void)dealloc
@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

Expand All @@ -102,6 +153,25 @@ @implementation ASDisplayNodeTests
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];
Expand Down

0 comments on commit 8fda705

Please sign in to comment.