Swiftgram/AsyncDisplayKitTests/ASLayoutSpecSnapshotTestsHelper.m
Adlai Holler 5b80a641af Improve Handling of Rasterized Node Interface & Hierarchy States (#2731)
* Improve handling of rasterize node interface states and testing

* Fix harder

* Finish fixes and move rasterization flag into beta header

* Re-enable rasterization in ASDKgram

* Re-enable working test

* Only do it in debug
2016-12-08 09:52:21 -08:00

64 lines
1.4 KiB
Objective-C

//
// ASLayoutSpecSnapshotTestsHelper.m
// AsyncDisplayKit
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//
#import "ASLayoutSpecSnapshotTestsHelper.h"
#import "ASDisplayNode.h"
#import "ASLayoutSpec.h"
#import "ASLayout.h"
#import "ASDisplayNode+Beta.h"
@interface ASTestNode : ASDisplayNode
@property (strong, nonatomic, nullable) ASLayoutSpec *layoutSpecUnderTest;
@end
@implementation ASLayoutSpecSnapshotTestCase
- (void)setUp
{
[super setUp];
self.recordMode = NO;
}
- (void)testLayoutSpec:(ASLayoutSpec *)layoutSpec
sizeRange:(ASSizeRange)sizeRange
subnodes:(NSArray *)subnodes
identifier:(NSString *)identifier
{
ASTestNode *node = [[ASTestNode alloc] init];
for (ASDisplayNode *subnode in subnodes) {
[node addSubnode:subnode];
}
node.layoutSpecUnderTest = layoutSpec;
ASDisplayNodeSizeToFitSizeRange(node, sizeRange);
ASSnapshotVerifyNode(node, identifier);
}
@end
@implementation ASTestNode
- (instancetype)init
{
if (self = [super init]) {
self.layerBacked = YES;
}
return self;
}
- (ASLayoutSpec *)layoutSpecThatFits:(ASSizeRange)constrainedSize
{
return _layoutSpecUnderTest;
}
@end