From 04690c0a4c8a6450b6e5e69f532588700da6a4d9 Mon Sep 17 00:00:00 2001 From: Adlai Holler Date: Wed, 16 Sep 2015 15:36:52 -0700 Subject: [PATCH] Re-add nil tests --- AsyncDisplayKitTests/ASDisplayNodeTests.m | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/AsyncDisplayKitTests/ASDisplayNodeTests.m b/AsyncDisplayKitTests/ASDisplayNodeTests.m index cd0b273f..75adeee1 100644 --- a/AsyncDisplayKitTests/ASDisplayNodeTests.m +++ b/AsyncDisplayKitTests/ASDisplayNodeTests.m @@ -1042,6 +1042,8 @@ static inline BOOL _CGPointEqualToPointWithEpsilon(CGPoint point1, CGPoint point - (void)testSubnodes { ASDisplayNode *parent = [[ASDisplayNode alloc] init]; + ASDisplayNode *nilNode = nil; + XCTAssertNoThrow([parent addSubnode:nilNode], @"Don't try to add nil, but we'll deal."); XCTAssertNoThrow([parent addSubnode:parent], @"Not good, test that we recover"); XCTAssertEqual(0u, parent.subnodes.count, @"We shouldn't have any subnodes"); } @@ -1455,9 +1457,16 @@ static inline BOOL _CGPointEqualToPointWithEpsilon(CGPoint point1, CGPoint point XCTAssertNodeSubnodeSubviewSublayerOrder(parent, loaded, isLayerBacked, @"c,a,b", @"Incorrect insertion below"); XCTAssertNodesHaveParent(parent, a, b, c); + // Check insertSubnode with no below + ASDisplayNode *nilNode = nil; + XCTAssertThrows([parent insertSubnode:b belowSubnode:nilNode], @"Can't insert below a nil"); // Check nothing was inserted XCTAssertNodeSubnodeSubviewSublayerOrder(parent, loaded, isLayerBacked, @"c,a,b", @"Incorrect insertion below"); + + XCTAssertThrows([parent insertSubnode:nilNode belowSubnode:nilNode], @"Can't insert a nil subnode"); + XCTAssertThrows([parent insertSubnode:nilNode belowSubnode:a], @"Can't insert a nil subnode"); + // Check inserting below when you're already in the array // (c,a,b) => (a,c,b) [parent insertSubnode:c belowSubnode:b]; @@ -1528,6 +1537,18 @@ static inline BOOL _CGPointEqualToPointWithEpsilon(CGPoint point1, CGPoint point [parent insertSubnode:c aboveSubnode:a]; XCTAssertNodeSubnodeSubviewSublayerOrder(parent, loaded, isLayerBacked, @"a,c,b", @"After insert c above a"); + // Check insertSubnode with invalid parameters throws and doesn't change anything + // (a,c,b) => (a,c,b) + ASDisplayNode *nilNode = nil; + XCTAssertThrows([parent insertSubnode:b aboveSubnode:nilNode], @"Can't insert below a nil"); + XCTAssertNodeSubnodeSubviewSublayerOrder(parent, loaded, isLayerBacked, @"a,c,b", @"Check no monkey business"); + + XCTAssertThrows([parent insertSubnode:nilNode aboveSubnode:nilNode], @"Can't insert a nil subnode"); + XCTAssertNodeSubnodeSubviewSublayerOrder(parent, loaded, isLayerBacked, @"a,c,b", @"Check no monkey business"); + + XCTAssertThrows([parent insertSubnode:nilNode aboveSubnode:a], @"Can't insert a nil subnode"); + XCTAssertNodeSubnodeSubviewSublayerOrder(parent, loaded, isLayerBacked, @"a,c,b", @"Check no monkey business"); + // Check inserting above when you're already in the array // (a,c,b) => (c,b,a) [parent insertSubnode:a aboveSubnode:b];