// // ASLayoutSpecSnapshotTestsHelper.m // Texture // // 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 /ASDK-Licenses directory of this source tree. An additional // grant of patent rights can be found in the PATENTS file in the same directory. // // Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present, // Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // #import "ASLayoutSpecSnapshotTestsHelper.h" #import #import #import #import @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