diff --git a/java/tests/com/facebook/yoga/YogaNodeTest.java b/java/tests/com/facebook/yoga/YogaNodeTest.java index e65c4ff7..405c322e 100644 --- a/java/tests/com/facebook/yoga/YogaNodeTest.java +++ b/java/tests/com/facebook/yoga/YogaNodeTest.java @@ -386,6 +386,52 @@ public class YogaNodeTest { assertFalse(root.getDoesLegacyStretchFlagAffectsLayout()); } + @Test + public void initiallyHasNewLayout() { + YogaNode root = createNode(); + assertTrue(root.hasNewLayout()); + } + + @Test + public void initialLayoutCanBeMarkedSeen() { + YogaNode root = createNode(); + root.markLayoutSeen(); + assertFalse(root.hasNewLayout()); + } + + @Test + public void calculatingLayoutMarksLayoutAsUnseen() { + YogaNode root = createNode(); + root.markLayoutSeen(); + root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); + assertTrue(root.hasNewLayout()); + } + + @Test + public void calculatedLayoutCanBeMarkedSeen() { + YogaNode root = createNode(); + root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); + root.markLayoutSeen(); + assertFalse(root.hasNewLayout()); + } + + @Test + public void recalculatingLayoutDoesMarkAsUnseen() { + YogaNode root = createNode(); + root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); + root.markLayoutSeen(); + root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED); + assertTrue(root.hasNewLayout()); + } + + @Test + public void resetAlsoResetsLayoutSeen() { + YogaNode root = createNode(); + root.markLayoutSeen(); + root.reset(); + assertTrue(root.hasNewLayout()); + } + private YogaNode createNode() { return mNodeFactory.create(); }