mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
basic unit tests
This commit is contained in:
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user