Skip to content
This repository was archived by the owner on Feb 2, 2023. It is now read-only.

Commit a88ad0a

Browse files
committed
Merge pull request #752 from nguyenhuy/StaticLayousSpecTests
Add snapshot tests for ASStaticLayoutSpec
2 parents c96813c + 938cd46 commit a88ad0a

File tree

6 files changed

+89
-0
lines changed

6 files changed

+89
-0
lines changed

AsyncDisplayKit.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@
233233
9CDC18CC1B910E12004965E2 /* ASLayoutablePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CDC18CB1B910E12004965E2 /* ASLayoutablePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; };
234234
9CDC18CD1B910E12004965E2 /* ASLayoutablePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CDC18CB1B910E12004965E2 /* ASLayoutablePrivate.h */; settings = {ATTRIBUTES = (Public, ); }; };
235235
9F06E5CD1B4CAF4200F015D8 /* ASCollectionViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F06E5CC1B4CAF4200F015D8 /* ASCollectionViewTests.m */; };
236+
AC026B581BD3F61800BBC17E /* ASStaticLayoutSpecSnapshotTests.m in Sources */ = {isa = PBXBuildFile; fileRef = AC026B571BD3F61800BBC17E /* ASStaticLayoutSpecSnapshotTests.m */; };
236237
AC21EC101B3D0BF600C8B19A /* ASStackLayoutDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = AC21EC0F1B3D0BF600C8B19A /* ASStackLayoutDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
237238
AC3C4A511A1139C100143C57 /* ASCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = AC3C4A4F1A1139C100143C57 /* ASCollectionView.h */; settings = {ATTRIBUTES = (Public, ); }; };
238239
AC3C4A521A1139C100143C57 /* ASCollectionView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AC3C4A501A1139C100143C57 /* ASCollectionView.mm */; };
@@ -590,6 +591,7 @@
590591
9C8221941BA237B80037F19A /* ASStackBaselinePositionedLayout.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASStackBaselinePositionedLayout.mm; sourceTree = "<group>"; };
591592
9CDC18CB1B910E12004965E2 /* ASLayoutablePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASLayoutablePrivate.h; path = AsyncDisplayKit/Layout/ASLayoutablePrivate.h; sourceTree = "<group>"; };
592593
9F06E5CC1B4CAF4200F015D8 /* ASCollectionViewTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASCollectionViewTests.m; sourceTree = "<group>"; };
594+
AC026B571BD3F61800BBC17E /* ASStaticLayoutSpecSnapshotTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASStaticLayoutSpecSnapshotTests.m; sourceTree = "<group>"; };
593595
AC21EC0F1B3D0BF600C8B19A /* ASStackLayoutDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ASStackLayoutDefines.h; path = AsyncDisplayKit/Layout/ASStackLayoutDefines.h; sourceTree = "<group>"; };
594596
AC3C4A4F1A1139C100143C57 /* ASCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASCollectionView.h; sourceTree = "<group>"; };
595597
AC3C4A501A1139C100143C57 /* ASCollectionView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASCollectionView.mm; sourceTree = "<group>"; };
@@ -819,6 +821,7 @@
819821
ACF6ED591B178DC700DA7C62 /* ASOverlayLayoutSpecSnapshotTests.mm */,
820822
ACF6ED5A1B178DC700DA7C62 /* ASRatioLayoutSpecSnapshotTests.mm */,
821823
ACF6ED5B1B178DC700DA7C62 /* ASStackLayoutSpecSnapshotTests.mm */,
824+
AC026B571BD3F61800BBC17E /* ASStaticLayoutSpecSnapshotTests.m */,
822825
ACF6ED571B178DC700DA7C62 /* ASLayoutSpecSnapshotTestsHelper.h */,
823826
ACF6ED581B178DC700DA7C62 /* ASLayoutSpecSnapshotTestsHelper.m */,
824827
242995D21B29743C00090100 /* ASBasicImageDownloaderTests.m */,
@@ -1552,6 +1555,7 @@
15521555
058D0A3A195D057000B7D73C /* ASDisplayNodeTests.m in Sources */,
15531556
058D0A3B195D057000B7D73C /* ASDisplayNodeTestsHelper.m in Sources */,
15541557
056D21551ABCEF50001107EF /* ASImageNodeSnapshotTests.m in Sources */,
1558+
AC026B581BD3F61800BBC17E /* ASStaticLayoutSpecSnapshotTests.m in Sources */,
15551559
ACF6ED5E1B178DC700DA7C62 /* ASInsetLayoutSpecSnapshotTests.mm in Sources */,
15561560
ACF6ED601B178DC700DA7C62 /* ASLayoutSpecSnapshotTestsHelper.m in Sources */,
15571561
CC7FD9E11BB5F750005CCB2B /* ASPhotosFrameworkImageRequestTests.m in Sources */,
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
//
2+
// ASStaticLayoutSpecSnapshotTests.m
3+
// AsyncDisplayKit
4+
//
5+
// Created by Huy Nguyen on 18/10/15.
6+
// Copyright (c) 2015 Facebook. All rights reserved.
7+
//
8+
9+
#import "ASLayoutSpecSnapshotTestsHelper.h"
10+
11+
#import "ASStaticLayoutSpec.h"
12+
#import "ASBackgroundLayoutSpec.h"
13+
14+
@interface ASStaticLayoutSpecSnapshotTests : ASLayoutSpecSnapshotTestCase
15+
@end
16+
17+
@implementation ASStaticLayoutSpecSnapshotTests
18+
19+
- (void)setUp
20+
{
21+
[super setUp];
22+
self.recordMode = NO;
23+
}
24+
25+
- (void)testSizingBehaviour
26+
{
27+
[self testWithSizeRange:ASSizeRangeMake(CGSizeMake(150, 200), CGSizeMake(FLT_MAX, FLT_MAX))
28+
identifier:@"underflowChildren"];
29+
[self testWithSizeRange:ASSizeRangeMake(CGSizeZero, CGSizeMake(50, 100))
30+
identifier:@"overflowChildren"];
31+
// Expect the spec to wrap its content because children sizes are between constrained size
32+
[self testWithSizeRange:ASSizeRangeMake(CGSizeZero, CGSizeMake(FLT_MAX / 2, FLT_MAX / 2))
33+
identifier:@"wrappedChildren"];
34+
}
35+
36+
- (void)testChildrenMeasuredWithAutoMaxSize
37+
{
38+
ASStaticSizeDisplayNode *firstChild = ASDisplayNodeWithBackgroundColor([UIColor redColor]);
39+
firstChild.layoutPosition = CGPointMake(0, 0);
40+
firstChild.staticSize = CGSizeMake(50, 50);
41+
42+
ASStaticSizeDisplayNode *secondChild = ASDisplayNodeWithBackgroundColor([UIColor blueColor]);
43+
secondChild.layoutPosition = CGPointMake(10, 60);
44+
secondChild.staticSize = CGSizeMake(100, 100);
45+
46+
ASSizeRange sizeRange = ASSizeRangeMake(CGSizeMake(10, 10), CGSizeMake(110, 160));
47+
[self testWithChildren:@[firstChild, secondChild] sizeRange:sizeRange identifier:nil];
48+
49+
XCTAssertTrue(ASSizeRangeEqualToSizeRange(firstChild.constrainedSizeForCalculatedLayout,
50+
ASSizeRangeMake(CGSizeZero, sizeRange.max)));
51+
CGSize secondChildMaxSize = CGSizeMake(sizeRange.max.width - secondChild.layoutPosition.x,
52+
sizeRange.max.height - secondChild.layoutPosition.y);
53+
XCTAssertTrue(ASSizeRangeEqualToSizeRange(secondChild.constrainedSizeForCalculatedLayout,
54+
ASSizeRangeMake(CGSizeZero, secondChildMaxSize)));
55+
}
56+
57+
- (void)testWithSizeRange:(ASSizeRange)sizeRange identifier:(NSString *)identifier
58+
{
59+
ASDisplayNode *firstChild = ASDisplayNodeWithBackgroundColor([UIColor redColor]);
60+
firstChild.layoutPosition = CGPointMake(0, 0);
61+
firstChild.sizeRange = ASRelativeSizeRangeMakeWithExactCGSize(CGSizeMake(50, 50));
62+
63+
64+
ASDisplayNode *secondChild = ASDisplayNodeWithBackgroundColor([UIColor blueColor]);
65+
secondChild.layoutPosition = CGPointMake(0, 50);
66+
secondChild.sizeRange = ASRelativeSizeRangeMakeWithExactCGSize(CGSizeMake(100, 100));
67+
68+
[self testWithChildren:@[firstChild, secondChild] sizeRange:sizeRange identifier:identifier];
69+
}
70+
71+
- (void)testWithChildren:(NSArray *)children sizeRange:(ASSizeRange)sizeRange identifier:(NSString *)identifier
72+
{
73+
ASDisplayNode *backgroundNode = ASDisplayNodeWithBackgroundColor([UIColor whiteColor]);
74+
75+
NSMutableArray *subnodes = [NSMutableArray arrayWithArray:children];
76+
[subnodes insertObject:backgroundNode atIndex:0];
77+
78+
ASStaticLayoutSpec *staticLayoutSpec = [ASStaticLayoutSpec staticLayoutSpecWithChildren:children];
79+
ASLayoutSpec *layoutSpec = [ASBackgroundLayoutSpec backgroundLayoutSpecWithChild:staticLayoutSpec
80+
background:backgroundNode];
81+
82+
[self testLayoutSpec:layoutSpec sizeRange:sizeRange subnodes:subnodes identifier:identifier];
83+
}
84+
85+
@end
2.5 KB
Loading
834 Bytes
Loading
4.1 KB
Loading
2.22 KB
Loading

0 commit comments

Comments
 (0)