/* 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 <FBSnapshotTestCase/FBSnapshotTestCase.h>

#import <AsyncDisplayKit/ASDisplayNode.h>

#define ASSnapshotVerifyNode(node__, identifier__) \
{ \
  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
  FBSnapshotVerifyLayer(node__.layer, identifier__); \
  [node__ setShouldRasterizeDescendants:YES]; \
  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
  FBSnapshotVerifyLayer(node__.layer, identifier__); \
  [node__ setShouldRasterizeDescendants:NO]; \
  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
  FBSnapshotVerifyLayer(node__.layer, identifier__); \
}

@interface ASSnapshotTestCase : FBSnapshotTestCase

/**
 * Hack for testing.  ASDisplayNode lacks an explicit -render method, so we manually hit its layout & display codepaths.
 */
+ (void)hackilySynchronouslyRecursivelyRenderNode:(ASDisplayNode *)node;

@end

/* 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 <FBSnapshotTestCase/FBSnapshotTestCase.h>

#import <AsyncDisplayKit/ASDisplayNode.h>

#define ASSnapshotVerifyNode(node__, identifier__) \
{ \
  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
  FBSnapshotVerifyLayer(node__.layer, identifier__); \
}

@interface ASSnapshotTestCase : FBSnapshotTestCase

/**
 * Hack for testing.  ASDisplayNode lacks an explicit -render method, so we manually hit its layout & display codepaths.
 */
+ (void)hackilySynchronouslyRecursivelyRenderNode:(ASDisplayNode *)node;

@end

--- 
+++ 
@@ -14,6 +14,12 @@
 { \
   [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
   FBSnapshotVerifyLayer(node__.layer, identifier__); \
+  [node__ setShouldRasterizeDescendants:YES]; \
+  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
+  FBSnapshotVerifyLayer(node__.layer, identifier__); \
+  [node__ setShouldRasterizeDescendants:NO]; \
+  [ASSnapshotTestCase hackilySynchronouslyRecursivelyRenderNode:node__]; \
+  FBSnapshotVerifyLayer(node__.layer, identifier__); \
 }
 
 @interface ASSnapshotTestCase : FBSnapshotTestCase
Add tests for enabling / disabling shouldRasterize
