diff --git a/CSSLayout/CSSLayout.c b/CSSLayout/CSSLayout.c index 94e34421..8ba14c0a 100644 --- a/CSSLayout/CSSLayout.c +++ b/CSSLayout/CSSLayout.c @@ -2092,27 +2092,23 @@ static void layoutNodeImpl(const CSSNodeRef node, // If the user didn't specify a width or height for the node, set the // dimensions based on the children. - if (measureModeMainDim == CSSMeasureModeUndefined || - (node->style.overflow != CSSOverflowScroll && measureModeMainDim == CSSMeasureModeAtMost)) { + if (measureModeMainDim == CSSMeasureModeUndefined) { // Clamp the size to the min/max size, if specified, and make sure it // doesn't go below the padding and border amount. node->layout.measuredDimensions[dim[mainAxis]] = boundAxis(node, mainAxis, maxLineMainDim); - } else if (node->style.overflow == CSSOverflowScroll && - measureModeMainDim == CSSMeasureModeAtMost) { + } else if (measureModeMainDim == CSSMeasureModeAtMost) { node->layout.measuredDimensions[dim[mainAxis]] = fmaxf(fminf(availableInnerMainDim + paddingAndBorderAxisMain, boundAxisWithinMinAndMax(node, mainAxis, maxLineMainDim)), paddingAndBorderAxisMain); } - if (measureModeCrossDim == CSSMeasureModeUndefined || - (node->style.overflow != CSSOverflowScroll && measureModeCrossDim == CSSMeasureModeAtMost)) { + if (measureModeCrossDim == CSSMeasureModeUndefined) { // Clamp the size to the min/max size, if specified, and make sure it // doesn't go below the padding and border amount. node->layout.measuredDimensions[dim[crossAxis]] = boundAxis(node, crossAxis, totalLineCrossDim + paddingAndBorderAxisCross); - } else if (node->style.overflow == CSSOverflowScroll && - measureModeCrossDim == CSSMeasureModeAtMost) { + } else if (measureModeCrossDim == CSSMeasureModeAtMost) { node->layout.measuredDimensions[dim[crossAxis]] = fmaxf(fminf(availableInnerCrossDim + paddingAndBorderAxisCross, boundAxisWithinMinAndMax(node, diff --git a/csharp/tests/Facebook.CSSLayout/CSSSizeOverflowTest.cs b/csharp/tests/Facebook.CSSLayout/CSSSizeOverflowTest.cs deleted file mode 100644 index bee15ef5..00000000 --- a/csharp/tests/Facebook.CSSLayout/CSSSizeOverflowTest.cs +++ /dev/null @@ -1,140 +0,0 @@ -/** - * 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. - */ - -/** - * @Generated by gentest/gentest.sh with the following input - * -
-
-
-
-
- -
-
-
-
-
- * - */ - -using System; -using NUnit.Framework; - -namespace Facebook.CSSLayout -{ - [TestFixture] - public class CSSSizeOverflowTest - { - [Test] - public void Test_nested_overflowing_child() - { - CSSNode root = new CSSNode(); - root.StyleWidth = 100; - root.StyleHeight = 100; - - CSSNode root_child0 = new CSSNode(); - root.Insert(0, root_child0); - - CSSNode root_child0_child0 = new CSSNode(); - root_child0_child0.StyleWidth = 200; - root_child0_child0.StyleHeight = 200; - root_child0.Insert(0, root_child0_child0); - root.StyleDirection = CSSDirection.LeftToRight; - root.CalculateLayout(); - - Assert.AreEqual(0, root.LayoutX); - Assert.AreEqual(0, root.LayoutY); - Assert.AreEqual(100, root.LayoutWidth); - Assert.AreEqual(100, root.LayoutHeight); - - Assert.AreEqual(0, root_child0.LayoutX); - Assert.AreEqual(0, root_child0.LayoutY); - Assert.AreEqual(100, root_child0.LayoutWidth); - Assert.AreEqual(200, root_child0.LayoutHeight); - - Assert.AreEqual(0, root_child0_child0.LayoutX); - Assert.AreEqual(0, root_child0_child0.LayoutY); - Assert.AreEqual(200, root_child0_child0.LayoutWidth); - Assert.AreEqual(200, root_child0_child0.LayoutHeight); - - root.StyleDirection = CSSDirection.RightToLeft; - root.CalculateLayout(); - - Assert.AreEqual(0, root.LayoutX); - Assert.AreEqual(0, root.LayoutY); - Assert.AreEqual(100, root.LayoutWidth); - Assert.AreEqual(100, root.LayoutHeight); - - Assert.AreEqual(0, root_child0.LayoutX); - Assert.AreEqual(0, root_child0.LayoutY); - Assert.AreEqual(100, root_child0.LayoutWidth); - Assert.AreEqual(200, root_child0.LayoutHeight); - - Assert.AreEqual(-100, root_child0_child0.LayoutX); - Assert.AreEqual(0, root_child0_child0.LayoutY); - Assert.AreEqual(200, root_child0_child0.LayoutWidth); - Assert.AreEqual(200, root_child0_child0.LayoutHeight); - } - - [Test] - public void Test_nested_overflowing_child_in_constraint_parent() - { - CSSNode root = new CSSNode(); - root.StyleWidth = 100; - root.StyleHeight = 100; - - CSSNode root_child0 = new CSSNode(); - root_child0.StyleWidth = 100; - root_child0.StyleHeight = 100; - root.Insert(0, root_child0); - - CSSNode root_child0_child0 = new CSSNode(); - root_child0_child0.StyleWidth = 200; - root_child0_child0.StyleHeight = 200; - root_child0.Insert(0, root_child0_child0); - root.StyleDirection = CSSDirection.LeftToRight; - root.CalculateLayout(); - - Assert.AreEqual(0, root.LayoutX); - Assert.AreEqual(0, root.LayoutY); - Assert.AreEqual(100, root.LayoutWidth); - Assert.AreEqual(100, root.LayoutHeight); - - Assert.AreEqual(0, root_child0.LayoutX); - Assert.AreEqual(0, root_child0.LayoutY); - Assert.AreEqual(100, root_child0.LayoutWidth); - Assert.AreEqual(100, root_child0.LayoutHeight); - - Assert.AreEqual(0, root_child0_child0.LayoutX); - Assert.AreEqual(0, root_child0_child0.LayoutY); - Assert.AreEqual(200, root_child0_child0.LayoutWidth); - Assert.AreEqual(200, root_child0_child0.LayoutHeight); - - root.StyleDirection = CSSDirection.RightToLeft; - root.CalculateLayout(); - - Assert.AreEqual(0, root.LayoutX); - Assert.AreEqual(0, root.LayoutY); - Assert.AreEqual(100, root.LayoutWidth); - Assert.AreEqual(100, root.LayoutHeight); - - Assert.AreEqual(0, root_child0.LayoutX); - Assert.AreEqual(0, root_child0.LayoutY); - Assert.AreEqual(100, root_child0.LayoutWidth); - Assert.AreEqual(100, root_child0.LayoutHeight); - - Assert.AreEqual(-100, root_child0_child0.LayoutX); - Assert.AreEqual(0, root_child0_child0.LayoutY); - Assert.AreEqual(200, root_child0_child0.LayoutWidth); - Assert.AreEqual(200, root_child0_child0.LayoutHeight); - } - - } -} diff --git a/gentest/fixtures/CSSSizeOverflowTest.html b/gentest/fixtures/CSSSizeOverflowTest.html deleted file mode 100644 index fd06adba..00000000 --- a/gentest/fixtures/CSSSizeOverflowTest.html +++ /dev/null @@ -1,11 +0,0 @@ -
-
-
-
-
- -
-
-
-
-
diff --git a/java/tests/com/facebook/csslayout/CSSSizeOverflowTest.java b/java/tests/com/facebook/csslayout/CSSSizeOverflowTest.java deleted file mode 100644 index 5394fe75..00000000 --- a/java/tests/com/facebook/csslayout/CSSSizeOverflowTest.java +++ /dev/null @@ -1,136 +0,0 @@ -/** - * 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. - */ - -/** - * @Generated by gentest/gentest.sh with the following input - * -
-
-
-
-
- -
-
-
-
-
- * - */ - -package com.facebook.csslayout; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; - -public class CSSSizeOverflowTest { - @Test - public void test_nested_overflowing_child() { - final CSSNode root = new CSSNode(); - root.setStyleWidth(100); - root.setStyleHeight(100); - - final CSSNode root_child0 = new CSSNode(); - root.addChildAt(root_child0, 0); - - final CSSNode root_child0_child0 = new CSSNode(); - root_child0_child0.setStyleWidth(200); - root_child0_child0.setStyleHeight(200); - root_child0.addChildAt(root_child0_child0, 0); - root.setDirection(CSSDirection.LTR); - root.calculateLayout(null); - - assertEquals(0, root.getLayoutX(), 0.0f); - assertEquals(0, root.getLayoutY(), 0.0f); - assertEquals(100, root.getLayoutWidth(), 0.0f); - assertEquals(100, root.getLayoutHeight(), 0.0f); - - assertEquals(0, root_child0.getLayoutX(), 0.0f); - assertEquals(0, root_child0.getLayoutY(), 0.0f); - assertEquals(100, root_child0.getLayoutWidth(), 0.0f); - assertEquals(200, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(0, root_child0_child0.getLayoutX(), 0.0f); - assertEquals(0, root_child0_child0.getLayoutY(), 0.0f); - assertEquals(200, root_child0_child0.getLayoutWidth(), 0.0f); - assertEquals(200, root_child0_child0.getLayoutHeight(), 0.0f); - - root.setDirection(CSSDirection.RTL); - root.calculateLayout(null); - - assertEquals(0, root.getLayoutX(), 0.0f); - assertEquals(0, root.getLayoutY(), 0.0f); - assertEquals(100, root.getLayoutWidth(), 0.0f); - assertEquals(100, root.getLayoutHeight(), 0.0f); - - assertEquals(0, root_child0.getLayoutX(), 0.0f); - assertEquals(0, root_child0.getLayoutY(), 0.0f); - assertEquals(100, root_child0.getLayoutWidth(), 0.0f); - assertEquals(200, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(-100, root_child0_child0.getLayoutX(), 0.0f); - assertEquals(0, root_child0_child0.getLayoutY(), 0.0f); - assertEquals(200, root_child0_child0.getLayoutWidth(), 0.0f); - assertEquals(200, root_child0_child0.getLayoutHeight(), 0.0f); - } - - @Test - public void test_nested_overflowing_child_in_constraint_parent() { - final CSSNode root = new CSSNode(); - root.setStyleWidth(100); - root.setStyleHeight(100); - - final CSSNode root_child0 = new CSSNode(); - root_child0.setStyleWidth(100); - root_child0.setStyleHeight(100); - root.addChildAt(root_child0, 0); - - final CSSNode root_child0_child0 = new CSSNode(); - root_child0_child0.setStyleWidth(200); - root_child0_child0.setStyleHeight(200); - root_child0.addChildAt(root_child0_child0, 0); - root.setDirection(CSSDirection.LTR); - root.calculateLayout(null); - - assertEquals(0, root.getLayoutX(), 0.0f); - assertEquals(0, root.getLayoutY(), 0.0f); - assertEquals(100, root.getLayoutWidth(), 0.0f); - assertEquals(100, root.getLayoutHeight(), 0.0f); - - assertEquals(0, root_child0.getLayoutX(), 0.0f); - assertEquals(0, root_child0.getLayoutY(), 0.0f); - assertEquals(100, root_child0.getLayoutWidth(), 0.0f); - assertEquals(100, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(0, root_child0_child0.getLayoutX(), 0.0f); - assertEquals(0, root_child0_child0.getLayoutY(), 0.0f); - assertEquals(200, root_child0_child0.getLayoutWidth(), 0.0f); - assertEquals(200, root_child0_child0.getLayoutHeight(), 0.0f); - - root.setDirection(CSSDirection.RTL); - root.calculateLayout(null); - - assertEquals(0, root.getLayoutX(), 0.0f); - assertEquals(0, root.getLayoutY(), 0.0f); - assertEquals(100, root.getLayoutWidth(), 0.0f); - assertEquals(100, root.getLayoutHeight(), 0.0f); - - assertEquals(0, root_child0.getLayoutX(), 0.0f); - assertEquals(0, root_child0.getLayoutY(), 0.0f); - assertEquals(100, root_child0.getLayoutWidth(), 0.0f); - assertEquals(100, root_child0.getLayoutHeight(), 0.0f); - - assertEquals(-100, root_child0_child0.getLayoutX(), 0.0f); - assertEquals(0, root_child0_child0.getLayoutY(), 0.0f); - assertEquals(200, root_child0_child0.getLayoutWidth(), 0.0f); - assertEquals(200, root_child0_child0.getLayoutHeight(), 0.0f); - } - -} diff --git a/tests/CSSSizeOverflowTest.cpp b/tests/CSSSizeOverflowTest.cpp deleted file mode 100644 index 14c23ff4..00000000 --- a/tests/CSSSizeOverflowTest.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/** - * 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. - */ - -/** - * @Generated by gentest/gentest.sh with the following input - * -
-
-
-
-
- -
-
-
-
-
- * - */ - -#include -#include - -TEST(CSSLayoutTest, nested_overflowing_child) { - const CSSNodeRef root = CSSNodeNew(); - CSSNodeStyleSetWidth(root, 100); - CSSNodeStyleSetHeight(root, 100); - - const CSSNodeRef root_child0 = CSSNodeNew(); - CSSNodeInsertChild(root, root_child0, 0); - - const CSSNodeRef root_child0_child0 = CSSNodeNew(); - CSSNodeStyleSetWidth(root_child0_child0, 200); - CSSNodeStyleSetHeight(root_child0_child0, 200); - CSSNodeInsertChild(root_child0, root_child0_child0, 0); - CSSNodeCalculateLayout(root, CSSUndefined, CSSUndefined, CSSDirectionLTR); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root)); - ASSERT_EQ(100, CSSNodeLayoutGetWidth(root)); - ASSERT_EQ(100, CSSNodeLayoutGetHeight(root)); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root_child0)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root_child0)); - ASSERT_EQ(100, CSSNodeLayoutGetWidth(root_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetHeight(root_child0)); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root_child0_child0)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root_child0_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetWidth(root_child0_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetHeight(root_child0_child0)); - - CSSNodeCalculateLayout(root, CSSUndefined, CSSUndefined, CSSDirectionRTL); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root)); - ASSERT_EQ(100, CSSNodeLayoutGetWidth(root)); - ASSERT_EQ(100, CSSNodeLayoutGetHeight(root)); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root_child0)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root_child0)); - ASSERT_EQ(100, CSSNodeLayoutGetWidth(root_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetHeight(root_child0)); - - ASSERT_EQ(-100, CSSNodeLayoutGetLeft(root_child0_child0)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root_child0_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetWidth(root_child0_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetHeight(root_child0_child0)); - - CSSNodeFreeRecursive(root); -} - -TEST(CSSLayoutTest, nested_overflowing_child_in_constraint_parent) { - const CSSNodeRef root = CSSNodeNew(); - CSSNodeStyleSetWidth(root, 100); - CSSNodeStyleSetHeight(root, 100); - - const CSSNodeRef root_child0 = CSSNodeNew(); - CSSNodeStyleSetWidth(root_child0, 100); - CSSNodeStyleSetHeight(root_child0, 100); - CSSNodeInsertChild(root, root_child0, 0); - - const CSSNodeRef root_child0_child0 = CSSNodeNew(); - CSSNodeStyleSetWidth(root_child0_child0, 200); - CSSNodeStyleSetHeight(root_child0_child0, 200); - CSSNodeInsertChild(root_child0, root_child0_child0, 0); - CSSNodeCalculateLayout(root, CSSUndefined, CSSUndefined, CSSDirectionLTR); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root)); - ASSERT_EQ(100, CSSNodeLayoutGetWidth(root)); - ASSERT_EQ(100, CSSNodeLayoutGetHeight(root)); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root_child0)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root_child0)); - ASSERT_EQ(100, CSSNodeLayoutGetWidth(root_child0)); - ASSERT_EQ(100, CSSNodeLayoutGetHeight(root_child0)); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root_child0_child0)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root_child0_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetWidth(root_child0_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetHeight(root_child0_child0)); - - CSSNodeCalculateLayout(root, CSSUndefined, CSSUndefined, CSSDirectionRTL); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root)); - ASSERT_EQ(100, CSSNodeLayoutGetWidth(root)); - ASSERT_EQ(100, CSSNodeLayoutGetHeight(root)); - - ASSERT_EQ(0, CSSNodeLayoutGetLeft(root_child0)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root_child0)); - ASSERT_EQ(100, CSSNodeLayoutGetWidth(root_child0)); - ASSERT_EQ(100, CSSNodeLayoutGetHeight(root_child0)); - - ASSERT_EQ(-100, CSSNodeLayoutGetLeft(root_child0_child0)); - ASSERT_EQ(0, CSSNodeLayoutGetTop(root_child0_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetWidth(root_child0_child0)); - ASSERT_EQ(200, CSSNodeLayoutGetHeight(root_child0_child0)); - - CSSNodeFreeRecursive(root); -}