From 2bfeb6de92827522733be4e2005e1f4a706df391 Mon Sep 17 00:00:00 2001 From: Adlai Holler Date: Tue, 6 Sep 2016 17:58:12 -0700 Subject: [PATCH] Add a failing unit test for automeasuring a node mid-transition (#2204) --- AsyncDisplayKitTests/ASDisplayNodeTests.m | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/AsyncDisplayKitTests/ASDisplayNodeTests.m b/AsyncDisplayKitTests/ASDisplayNodeTests.m index 11d6b6595a..583ff1fbb3 100644 --- a/AsyncDisplayKitTests/ASDisplayNodeTests.m +++ b/AsyncDisplayKitTests/ASDisplayNodeTests.m @@ -1986,4 +1986,22 @@ static bool stringContainsPointer(NSString *description, id p) { XCTAssertTrue(subnode.hasFetchedData); } +// FIXME +// Supernode is measured, subnode isnt, transition starts, UIKit does a layout pass before measurement finishes +- (void)DISABLED_testThatItsSafeToAutomeasureANodeMidTransition +{ + ASDisplayNode *supernode = [[ASDisplayNode alloc] init]; + [supernode measure:CGSizeMake(100, 100)]; + ASDisplayNode *node = [[ASDisplayNode alloc] init]; + node.bounds = CGRectMake(0, 0, 50, 50); + [supernode addSubnode:node]; + + XCTAssertNil(node.calculatedLayout); + XCTAssertTrue(node.layer.needsLayout); + + [supernode transitionLayoutWithAnimation:NO shouldMeasureAsync:YES measurementCompletion:nil]; + + XCTAssertNoThrow([node.view layoutIfNeeded]); +} + @end