mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2026-01-06 13:12:49 +00:00
Merge pull request #1790 from gazreese/ASVideoNode-delegate-superclass
[ASVideoNode] Ensure that both ASVideoNode and ASNetworkImageNode delegate methods are called
This commit is contained in:
@@ -453,7 +453,9 @@ static NSString * const kStatus = @"status";
|
||||
|
||||
- (void)setDelegate:(id<ASVideoNodeDelegate>)delegate
|
||||
{
|
||||
[super setDelegate:delegate];
|
||||
_delegate = delegate;
|
||||
|
||||
if (_delegate == nil) {
|
||||
memset(&_delegateFlags, 0, sizeof(_delegateFlags));
|
||||
} else {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#import <AVFoundation/AVFoundation.h>
|
||||
#import <AsyncDisplayKit/AsyncDisplayKit.h>
|
||||
|
||||
@interface ASVideoNodeTests : XCTestCase
|
||||
@interface ASVideoNodeTests : XCTestCase <ASVideoNodeDelegate>
|
||||
{
|
||||
ASVideoNode *_videoNode;
|
||||
AVURLAsset *_firstAsset;
|
||||
@@ -25,10 +25,18 @@
|
||||
}
|
||||
@end
|
||||
|
||||
@interface ASNetworkImageNode () {
|
||||
@public __weak id<ASNetworkImageNodeDelegate> _delegate;
|
||||
}
|
||||
@end
|
||||
|
||||
|
||||
@interface ASVideoNode () {
|
||||
ASDisplayNode *_playerNode;
|
||||
AVPlayer *_player;
|
||||
}
|
||||
|
||||
|
||||
@property (atomic, readwrite) ASInterfaceState interfaceState;
|
||||
@property (atomic, readonly) ASDisplayNode *spinner;
|
||||
@property (atomic, readwrite) ASDisplayNode *playerNode;
|
||||
@@ -405,4 +413,18 @@
|
||||
XCTAssertNil(_videoNode.image);
|
||||
}
|
||||
|
||||
- (void)testDelegateProperlySetForClassHierarchy
|
||||
{
|
||||
_videoNode.delegate = self;
|
||||
|
||||
XCTAssertTrue([_videoNode.delegate conformsToProtocol:@protocol(ASVideoNodeDelegate)]);
|
||||
XCTAssertTrue([_videoNode.delegate conformsToProtocol:@protocol(ASNetworkImageNodeDelegate)]);
|
||||
XCTAssertTrue([((ASNetworkImageNode*)_videoNode).delegate conformsToProtocol:@protocol(ASNetworkImageNodeDelegate)]);
|
||||
XCTAssertTrue([((ASNetworkImageNode*)_videoNode)->_delegate conformsToProtocol:@protocol(ASNetworkImageNodeDelegate)]);
|
||||
|
||||
XCTAssertEqual(_videoNode.delegate, self);
|
||||
XCTAssertEqual(((ASNetworkImageNode*)_videoNode).delegate, self);
|
||||
XCTAssertEqual(((ASNetworkImageNode*)_videoNode)->_delegate, self);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user