diff --git a/java/tests/com/facebook/yoga/YGJustifyContentTest.java b/java/tests/com/facebook/yoga/YGJustifyContentTest.java
index de39f64c..1f7442c8 100644
--- a/java/tests/com/facebook/yoga/YGJustifyContentTest.java
+++ b/java/tests/com/facebook/yoga/YGJustifyContentTest.java
@@ -4,7 +4,6 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
-
// @Generated by gentest/gentest.rb from gentest/fixtures/YGJustifyContentTest.html
package com.facebook.yoga;
@@ -996,6 +995,158 @@ public class YGJustifyContentTest {
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
}
+ @Test
+ public void test_justify_content_min_width_with_padding_child_width_greater_than_parent() {
+ YogaConfig config = new YogaConfig();
+
+ final YogaNode root = createNode(config);
+ root.setAlignContent(YogaAlign.STRETCH);
+ root.setWidth(1000f);
+ root.setHeight(1584f);
+
+ final YogaNode root_child0 = createNode(config);
+ root_child0.setFlexDirection(YogaFlexDirection.ROW);
+ root_child0.setAlignContent(YogaAlign.STRETCH);
+ root.addChildAt(root_child0, 0);
+
+ final YogaNode root_child0_child0 = createNode(config);
+ root_child0_child0.setFlexDirection(YogaFlexDirection.ROW);
+ root_child0_child0.setJustifyContent(YogaJustify.CENTER);
+ root_child0_child0.setAlignContent(YogaAlign.STRETCH);
+ root_child0_child0.setPadding(YogaEdge.LEFT, 100);
+ root_child0_child0.setPadding(YogaEdge.RIGHT, 100);
+ root_child0_child0.setMinWidth(400f);
+ root_child0.addChildAt(root_child0_child0, 0);
+
+ final YogaNode root_child0_child0_child0 = createNode(config);
+ root_child0_child0_child0.setFlexDirection(YogaFlexDirection.ROW);
+ root_child0_child0_child0.setAlignContent(YogaAlign.STRETCH);
+ root_child0_child0_child0.setWidth(300f);
+ root_child0_child0_child0.setHeight(100f);
+ root_child0_child0.addChildAt(root_child0_child0_child0, 0);
+ root.setDirection(YogaDirection.LTR);
+ root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
+
+ assertEquals(0f, root.getLayoutX(), 0.0f);
+ assertEquals(0f, root.getLayoutY(), 0.0f);
+ assertEquals(1000f, root.getLayoutWidth(), 0.0f);
+ assertEquals(1584f, root.getLayoutHeight(), 0.0f);
+
+ assertEquals(0f, root_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0.getLayoutY(), 0.0f);
+ assertEquals(1000f, root_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0.getLayoutHeight(), 0.0f);
+
+ assertEquals(0f, root_child0_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0_child0.getLayoutY(), 0.0f);
+ assertEquals(500f, root_child0_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0_child0.getLayoutHeight(), 0.0f);
+
+ assertEquals(100f, root_child0_child0_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0_child0_child0.getLayoutY(), 0.0f);
+ assertEquals(300f, root_child0_child0_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0_child0_child0.getLayoutHeight(), 0.0f);
+
+ root.setDirection(YogaDirection.RTL);
+ root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
+
+ assertEquals(0f, root.getLayoutX(), 0.0f);
+ assertEquals(0f, root.getLayoutY(), 0.0f);
+ assertEquals(1000f, root.getLayoutWidth(), 0.0f);
+ assertEquals(1584f, root.getLayoutHeight(), 0.0f);
+
+ assertEquals(0f, root_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0.getLayoutY(), 0.0f);
+ assertEquals(1000f, root_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0.getLayoutHeight(), 0.0f);
+
+ assertEquals(500f, root_child0_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0_child0.getLayoutY(), 0.0f);
+ assertEquals(500f, root_child0_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0_child0.getLayoutHeight(), 0.0f);
+
+ assertEquals(100f, root_child0_child0_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0_child0_child0.getLayoutY(), 0.0f);
+ assertEquals(300f, root_child0_child0_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0_child0_child0.getLayoutHeight(), 0.0f);
+ }
+
+ @Test
+ public void test_justify_content_min_width_with_padding_child_width_lower_than_parent() {
+ YogaConfig config = new YogaConfig();
+
+ final YogaNode root = createNode(config);
+ root.setAlignContent(YogaAlign.STRETCH);
+ root.setWidth(1080f);
+ root.setHeight(1584f);
+
+ final YogaNode root_child0 = createNode(config);
+ root_child0.setFlexDirection(YogaFlexDirection.ROW);
+ root_child0.setAlignContent(YogaAlign.STRETCH);
+ root.addChildAt(root_child0, 0);
+
+ final YogaNode root_child0_child0 = createNode(config);
+ root_child0_child0.setFlexDirection(YogaFlexDirection.ROW);
+ root_child0_child0.setJustifyContent(YogaJustify.CENTER);
+ root_child0_child0.setAlignContent(YogaAlign.STRETCH);
+ root_child0_child0.setPadding(YogaEdge.LEFT, 100);
+ root_child0_child0.setPadding(YogaEdge.RIGHT, 100);
+ root_child0_child0.setMinWidth(400f);
+ root_child0.addChildAt(root_child0_child0, 0);
+
+ final YogaNode root_child0_child0_child0 = createNode(config);
+ root_child0_child0_child0.setFlexDirection(YogaFlexDirection.ROW);
+ root_child0_child0_child0.setAlignContent(YogaAlign.STRETCH);
+ root_child0_child0_child0.setWidth(199f);
+ root_child0_child0_child0.setHeight(100f);
+ root_child0_child0.addChildAt(root_child0_child0_child0, 0);
+ root.setDirection(YogaDirection.LTR);
+ root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
+
+ assertEquals(0f, root.getLayoutX(), 0.0f);
+ assertEquals(0f, root.getLayoutY(), 0.0f);
+ assertEquals(1080f, root.getLayoutWidth(), 0.0f);
+ assertEquals(1584f, root.getLayoutHeight(), 0.0f);
+
+ assertEquals(0f, root_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0.getLayoutY(), 0.0f);
+ assertEquals(1080f, root_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0.getLayoutHeight(), 0.0f);
+
+ assertEquals(0f, root_child0_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0_child0.getLayoutY(), 0.0f);
+ assertEquals(400f, root_child0_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0_child0.getLayoutHeight(), 0.0f);
+
+ assertEquals(101f, root_child0_child0_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0_child0_child0.getLayoutY(), 0.0f);
+ assertEquals(199f, root_child0_child0_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0_child0_child0.getLayoutHeight(), 0.0f);
+
+ root.setDirection(YogaDirection.RTL);
+ root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
+
+ assertEquals(0f, root.getLayoutX(), 0.0f);
+ assertEquals(0f, root.getLayoutY(), 0.0f);
+ assertEquals(1080f, root.getLayoutWidth(), 0.0f);
+ assertEquals(1584f, root.getLayoutHeight(), 0.0f);
+
+ assertEquals(0f, root_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0.getLayoutY(), 0.0f);
+ assertEquals(1080f, root_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0.getLayoutHeight(), 0.0f);
+
+ assertEquals(680f, root_child0_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0_child0.getLayoutY(), 0.0f);
+ assertEquals(400f, root_child0_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0_child0.getLayoutHeight(), 0.0f);
+
+ assertEquals(101f, root_child0_child0_child0.getLayoutX(), 0.0f);
+ assertEquals(0f, root_child0_child0_child0.getLayoutY(), 0.0f);
+ assertEquals(199f, root_child0_child0_child0.getLayoutWidth(), 0.0f);
+ assertEquals(100f, root_child0_child0_child0.getLayoutHeight(), 0.0f);
+ }
+
private YogaNode createNode(YogaConfig config) {
return mNodeFactory.create(config);
}
diff --git a/javascript/tests/Facebook.Yoga/YGJustifyContentTest.js b/javascript/tests/Facebook.Yoga/YGJustifyContentTest.js
index 5c7cc30d..b563767b 100644
--- a/javascript/tests/Facebook.Yoga/YGJustifyContentTest.js
+++ b/javascript/tests/Facebook.Yoga/YGJustifyContentTest.js
@@ -1045,3 +1045,163 @@ it("justify_content_row_space_evenly", function () {
config.free();
}
});
+it("justify_content_min_width_with_padding_child_width_greater_than_parent", function () {
+ var config = Yoga.Config.create();
+
+ try {
+ var root = Yoga.Node.create(config);
+ root.setAlignContent(Yoga.ALIGN_STRETCH);
+ root.setWidth(1000);
+ root.setHeight(1584);
+
+ var root_child0 = Yoga.Node.create(config);
+ root_child0.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
+ root_child0.setAlignContent(Yoga.ALIGN_STRETCH);
+ root.insertChild(root_child0, 0);
+
+ var root_child0_child0 = Yoga.Node.create(config);
+ root_child0_child0.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
+ root_child0_child0.setJustifyContent(Yoga.JUSTIFY_CENTER);
+ root_child0_child0.setAlignContent(Yoga.ALIGN_STRETCH);
+ root_child0_child0.setPadding(Yoga.EDGE_LEFT, 100);
+ root_child0_child0.setPadding(Yoga.EDGE_RIGHT, 100);
+ root_child0_child0.setMinWidth(400);
+ root_child0.insertChild(root_child0_child0, 0);
+
+ var root_child0_child0_child0 = Yoga.Node.create(config);
+ root_child0_child0_child0.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
+ root_child0_child0_child0.setAlignContent(Yoga.ALIGN_STRETCH);
+ root_child0_child0_child0.setWidth(300);
+ root_child0_child0_child0.setHeight(100);
+ root_child0_child0.insertChild(root_child0_child0_child0, 0);
+ root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
+
+ console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
+ console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
+ console.assert(1000 === root.getComputedWidth(), "1000 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
+ console.assert(1584 === root.getComputedHeight(), "1584 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
+
+ console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
+ console.assert(1000 === root_child0.getComputedWidth(), "1000 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
+
+ console.assert(0 === root_child0_child0.getComputedLeft(), "0 === root_child0_child0.getComputedLeft() (" + root_child0_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0_child0.getComputedTop(), "0 === root_child0_child0.getComputedTop() (" + root_child0_child0.getComputedTop() + ")");
+ console.assert(500 === root_child0_child0.getComputedWidth(), "500 === root_child0_child0.getComputedWidth() (" + root_child0_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0_child0.getComputedHeight(), "100 === root_child0_child0.getComputedHeight() (" + root_child0_child0.getComputedHeight() + ")");
+
+ console.assert(100 === root_child0_child0_child0.getComputedLeft(), "100 === root_child0_child0_child0.getComputedLeft() (" + root_child0_child0_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0_child0_child0.getComputedTop(), "0 === root_child0_child0_child0.getComputedTop() (" + root_child0_child0_child0.getComputedTop() + ")");
+ console.assert(300 === root_child0_child0_child0.getComputedWidth(), "300 === root_child0_child0_child0.getComputedWidth() (" + root_child0_child0_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0_child0_child0.getComputedHeight(), "100 === root_child0_child0_child0.getComputedHeight() (" + root_child0_child0_child0.getComputedHeight() + ")");
+
+ root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
+
+ console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
+ console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
+ console.assert(1000 === root.getComputedWidth(), "1000 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
+ console.assert(1584 === root.getComputedHeight(), "1584 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
+
+ console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
+ console.assert(1000 === root_child0.getComputedWidth(), "1000 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
+
+ console.assert(500 === root_child0_child0.getComputedLeft(), "500 === root_child0_child0.getComputedLeft() (" + root_child0_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0_child0.getComputedTop(), "0 === root_child0_child0.getComputedTop() (" + root_child0_child0.getComputedTop() + ")");
+ console.assert(500 === root_child0_child0.getComputedWidth(), "500 === root_child0_child0.getComputedWidth() (" + root_child0_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0_child0.getComputedHeight(), "100 === root_child0_child0.getComputedHeight() (" + root_child0_child0.getComputedHeight() + ")");
+
+ console.assert(100 === root_child0_child0_child0.getComputedLeft(), "100 === root_child0_child0_child0.getComputedLeft() (" + root_child0_child0_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0_child0_child0.getComputedTop(), "0 === root_child0_child0_child0.getComputedTop() (" + root_child0_child0_child0.getComputedTop() + ")");
+ console.assert(300 === root_child0_child0_child0.getComputedWidth(), "300 === root_child0_child0_child0.getComputedWidth() (" + root_child0_child0_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0_child0_child0.getComputedHeight(), "100 === root_child0_child0_child0.getComputedHeight() (" + root_child0_child0_child0.getComputedHeight() + ")");
+ } finally {
+ if (typeof root !== "undefined") {
+ root.freeRecursive();
+ }
+
+ config.free();
+ }
+});
+it("justify_content_min_width_with_padding_child_width_lower_than_parent", function () {
+ var config = Yoga.Config.create();
+
+ try {
+ var root = Yoga.Node.create(config);
+ root.setAlignContent(Yoga.ALIGN_STRETCH);
+ root.setWidth(1080);
+ root.setHeight(1584);
+
+ var root_child0 = Yoga.Node.create(config);
+ root_child0.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
+ root_child0.setAlignContent(Yoga.ALIGN_STRETCH);
+ root.insertChild(root_child0, 0);
+
+ var root_child0_child0 = Yoga.Node.create(config);
+ root_child0_child0.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
+ root_child0_child0.setJustifyContent(Yoga.JUSTIFY_CENTER);
+ root_child0_child0.setAlignContent(Yoga.ALIGN_STRETCH);
+ root_child0_child0.setPadding(Yoga.EDGE_LEFT, 100);
+ root_child0_child0.setPadding(Yoga.EDGE_RIGHT, 100);
+ root_child0_child0.setMinWidth(400);
+ root_child0.insertChild(root_child0_child0, 0);
+
+ var root_child0_child0_child0 = Yoga.Node.create(config);
+ root_child0_child0_child0.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
+ root_child0_child0_child0.setAlignContent(Yoga.ALIGN_STRETCH);
+ root_child0_child0_child0.setWidth(199);
+ root_child0_child0_child0.setHeight(100);
+ root_child0_child0.insertChild(root_child0_child0_child0, 0);
+ root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
+
+ console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
+ console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
+ console.assert(1080 === root.getComputedWidth(), "1080 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
+ console.assert(1584 === root.getComputedHeight(), "1584 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
+
+ console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
+ console.assert(1080 === root_child0.getComputedWidth(), "1080 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
+
+ console.assert(0 === root_child0_child0.getComputedLeft(), "0 === root_child0_child0.getComputedLeft() (" + root_child0_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0_child0.getComputedTop(), "0 === root_child0_child0.getComputedTop() (" + root_child0_child0.getComputedTop() + ")");
+ console.assert(400 === root_child0_child0.getComputedWidth(), "400 === root_child0_child0.getComputedWidth() (" + root_child0_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0_child0.getComputedHeight(), "100 === root_child0_child0.getComputedHeight() (" + root_child0_child0.getComputedHeight() + ")");
+
+ console.assert(101 === root_child0_child0_child0.getComputedLeft(), "101 === root_child0_child0_child0.getComputedLeft() (" + root_child0_child0_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0_child0_child0.getComputedTop(), "0 === root_child0_child0_child0.getComputedTop() (" + root_child0_child0_child0.getComputedTop() + ")");
+ console.assert(199 === root_child0_child0_child0.getComputedWidth(), "199 === root_child0_child0_child0.getComputedWidth() (" + root_child0_child0_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0_child0_child0.getComputedHeight(), "100 === root_child0_child0_child0.getComputedHeight() (" + root_child0_child0_child0.getComputedHeight() + ")");
+
+ root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
+
+ console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
+ console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
+ console.assert(1080 === root.getComputedWidth(), "1080 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
+ console.assert(1584 === root.getComputedHeight(), "1584 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
+
+ console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
+ console.assert(1080 === root_child0.getComputedWidth(), "1080 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0.getComputedHeight(), "100 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
+
+ console.assert(680 === root_child0_child0.getComputedLeft(), "680 === root_child0_child0.getComputedLeft() (" + root_child0_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0_child0.getComputedTop(), "0 === root_child0_child0.getComputedTop() (" + root_child0_child0.getComputedTop() + ")");
+ console.assert(400 === root_child0_child0.getComputedWidth(), "400 === root_child0_child0.getComputedWidth() (" + root_child0_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0_child0.getComputedHeight(), "100 === root_child0_child0.getComputedHeight() (" + root_child0_child0.getComputedHeight() + ")");
+
+ console.assert(101 === root_child0_child0_child0.getComputedLeft(), "101 === root_child0_child0_child0.getComputedLeft() (" + root_child0_child0_child0.getComputedLeft() + ")");
+ console.assert(0 === root_child0_child0_child0.getComputedTop(), "0 === root_child0_child0_child0.getComputedTop() (" + root_child0_child0_child0.getComputedTop() + ")");
+ console.assert(199 === root_child0_child0_child0.getComputedWidth(), "199 === root_child0_child0_child0.getComputedWidth() (" + root_child0_child0_child0.getComputedWidth() + ")");
+ console.assert(100 === root_child0_child0_child0.getComputedHeight(), "100 === root_child0_child0_child0.getComputedHeight() (" + root_child0_child0_child0.getComputedHeight() + ")");
+ } finally {
+ if (typeof root !== "undefined") {
+ root.freeRecursive();
+ }
+
+ config.free();
+ }
+});
diff --git a/tests/YGJustifyContentTest.cpp b/tests/YGJustifyContentTest.cpp
index a644d278..7ed1c72b 100644
--- a/tests/YGJustifyContentTest.cpp
+++ b/tests/YGJustifyContentTest.cpp
@@ -1,9 +1,8 @@
-/*
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the LICENSE
- * file in the root directory of this source tree.
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates.
*
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
*/
// @Generated by gentest/gentest.rb from
// gentest/fixtures/YGJustifyContentTest.html
@@ -736,164 +735,6 @@ TEST(YogaTest, justify_content_row_min_width_and_margin) {
YGConfigFree(config);
}
-TEST(
- YogaTest,
- justify_content_min_width_with_padding_child_width_greater_than_parent) {
- const YGConfigRef config = YGConfigNew();
-
- const YGNodeRef root = YGNodeNewWithConfig(config);
- YGNodeStyleSetAlignContent(root, YGAlignStretch);
- YGNodeStyleSetWidth(root, 1000);
- YGNodeStyleSetHeight(root, 1584);
-
- const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
- YGNodeStyleSetFlexDirection(root_child0, YGFlexDirectionRow);
- YGNodeStyleSetAlignContent(root_child0, YGAlignStretch);
- YGNodeInsertChild(root, root_child0, 0);
-
- const YGNodeRef root_child0_child0 = YGNodeNewWithConfig(config);
- YGNodeStyleSetFlexDirection(root_child0_child0, YGFlexDirectionRow);
- YGNodeStyleSetJustifyContent(root_child0_child0, YGJustifyCenter);
- YGNodeStyleSetAlignContent(root_child0_child0, YGAlignStretch);
- YGNodeStyleSetMinWidth(root_child0_child0, 400);
- YGNodeStyleSetPadding(root_child0_child0, YGEdgeHorizontal, 100);
- YGNodeInsertChild(root_child0, root_child0_child0, 0);
-
- const YGNodeRef root_child0_child0_child0 = YGNodeNewWithConfig(config);
- YGNodeStyleSetFlexDirection(root_child0_child0_child0, YGFlexDirectionRow);
- YGNodeStyleSetAlignContent(root_child0_child0_child0, YGAlignStretch);
- YGNodeStyleSetWidth(root_child0_child0_child0, 300);
- YGNodeStyleSetHeight(root_child0_child0_child0, 100);
- YGNodeInsertChild(root_child0_child0, root_child0_child0_child0, 0);
-
- YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
- ASSERT_FLOAT_EQ(1000, YGNodeLayoutGetWidth(root));
- ASSERT_FLOAT_EQ(1584, YGNodeLayoutGetHeight(root));
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
- ASSERT_FLOAT_EQ(1000, YGNodeLayoutGetWidth(root_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
- ASSERT_FLOAT_EQ(500, YGNodeLayoutGetWidth(root_child0_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
-
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(300, YGNodeLayoutGetWidth(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0_child0));
-
- YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
- ASSERT_FLOAT_EQ(1000, YGNodeLayoutGetWidth(root));
- ASSERT_FLOAT_EQ(1584, YGNodeLayoutGetHeight(root));
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
- ASSERT_FLOAT_EQ(1000, YGNodeLayoutGetWidth(root_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
-
- ASSERT_FLOAT_EQ(500, YGNodeLayoutGetLeft(root_child0_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
- ASSERT_FLOAT_EQ(500, YGNodeLayoutGetWidth(root_child0_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
-
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(300, YGNodeLayoutGetWidth(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0_child0));
-
- YGNodeFreeRecursive(root);
-
- YGConfigFree(config);
-}
-
-TEST(
- YogaTest,
- justify_content_min_width_with_padding_child_width_lower_than_parent) {
- const YGConfigRef config = YGConfigNew();
-
- const YGNodeRef root = YGNodeNewWithConfig(config);
- YGNodeStyleSetAlignContent(root, YGAlignStretch);
- YGNodeStyleSetWidth(root, 1080);
- YGNodeStyleSetHeight(root, 1584);
-
- const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
- YGNodeStyleSetFlexDirection(root_child0, YGFlexDirectionRow);
- YGNodeStyleSetAlignContent(root_child0, YGAlignStretch);
- YGNodeInsertChild(root, root_child0, 0);
-
- const YGNodeRef root_child0_child0 = YGNodeNewWithConfig(config);
- YGNodeStyleSetFlexDirection(root_child0_child0, YGFlexDirectionRow);
- YGNodeStyleSetJustifyContent(root_child0_child0, YGJustifyCenter);
- YGNodeStyleSetAlignContent(root_child0_child0, YGAlignStretch);
- YGNodeStyleSetMinWidth(root_child0_child0, 400);
- YGNodeStyleSetPadding(root_child0_child0, YGEdgeHorizontal, 100);
- YGNodeInsertChild(root_child0, root_child0_child0, 0);
-
- const YGNodeRef root_child0_child0_child0 = YGNodeNewWithConfig(config);
- YGNodeStyleSetFlexDirection(root_child0_child0_child0, YGFlexDirectionRow);
- YGNodeStyleSetAlignContent(root_child0_child0_child0, YGAlignStretch);
- YGNodeStyleSetWidth(root_child0_child0_child0, 199);
- YGNodeStyleSetHeight(root_child0_child0_child0, 100);
- YGNodeInsertChild(root_child0_child0, root_child0_child0_child0, 0);
-
- YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
- ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root));
- ASSERT_FLOAT_EQ(1584, YGNodeLayoutGetHeight(root));
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
- ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
- ASSERT_FLOAT_EQ(400, YGNodeLayoutGetWidth(root_child0_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
-
- ASSERT_FLOAT_EQ(101, YGNodeLayoutGetLeft(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(199, YGNodeLayoutGetWidth(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0_child0));
-
- YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
- ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root));
- ASSERT_FLOAT_EQ(1584, YGNodeLayoutGetHeight(root));
-
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
- ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
-
- ASSERT_FLOAT_EQ(680, YGNodeLayoutGetLeft(root_child0_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
- ASSERT_FLOAT_EQ(400, YGNodeLayoutGetWidth(root_child0_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
-
- ASSERT_FLOAT_EQ(101, YGNodeLayoutGetLeft(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(199, YGNodeLayoutGetWidth(root_child0_child0_child0));
- ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0_child0));
- //
- YGNodeFreeRecursive(root);
-
- YGConfigFree(config);
-}
-
TEST(YogaTest, justify_content_row_max_width_and_margin) {
const YGConfigRef config = YGConfigNew();
@@ -1156,3 +997,161 @@ TEST(YogaTest, justify_content_row_space_evenly) {
YGConfigFree(config);
}
+
+TEST(
+ YogaTest,
+ justify_content_min_width_with_padding_child_width_greater_than_parent) {
+ const YGConfigRef config = YGConfigNew();
+
+ const YGNodeRef root = YGNodeNewWithConfig(config);
+ YGNodeStyleSetAlignContent(root, YGAlignStretch);
+ YGNodeStyleSetWidth(root, 1000);
+ YGNodeStyleSetHeight(root, 1584);
+
+ const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
+ YGNodeStyleSetFlexDirection(root_child0, YGFlexDirectionRow);
+ YGNodeStyleSetAlignContent(root_child0, YGAlignStretch);
+ YGNodeInsertChild(root, root_child0, 0);
+
+ const YGNodeRef root_child0_child0 = YGNodeNewWithConfig(config);
+ YGNodeStyleSetFlexDirection(root_child0_child0, YGFlexDirectionRow);
+ YGNodeStyleSetJustifyContent(root_child0_child0, YGJustifyCenter);
+ YGNodeStyleSetAlignContent(root_child0_child0, YGAlignStretch);
+ YGNodeStyleSetPadding(root_child0_child0, YGEdgeLeft, 100);
+ YGNodeStyleSetPadding(root_child0_child0, YGEdgeRight, 100);
+ YGNodeStyleSetMinWidth(root_child0_child0, 400);
+ YGNodeInsertChild(root_child0, root_child0_child0, 0);
+
+ const YGNodeRef root_child0_child0_child0 = YGNodeNewWithConfig(config);
+ YGNodeStyleSetFlexDirection(root_child0_child0_child0, YGFlexDirectionRow);
+ YGNodeStyleSetAlignContent(root_child0_child0_child0, YGAlignStretch);
+ YGNodeStyleSetWidth(root_child0_child0_child0, 300);
+ YGNodeStyleSetHeight(root_child0_child0_child0, 100);
+ YGNodeInsertChild(root_child0_child0, root_child0_child0_child0, 0);
+ YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
+ ASSERT_FLOAT_EQ(1000, YGNodeLayoutGetWidth(root));
+ ASSERT_FLOAT_EQ(1584, YGNodeLayoutGetHeight(root));
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
+ ASSERT_FLOAT_EQ(1000, YGNodeLayoutGetWidth(root_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
+ ASSERT_FLOAT_EQ(500, YGNodeLayoutGetWidth(root_child0_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
+
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(300, YGNodeLayoutGetWidth(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0_child0));
+
+ YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
+ ASSERT_FLOAT_EQ(1000, YGNodeLayoutGetWidth(root));
+ ASSERT_FLOAT_EQ(1584, YGNodeLayoutGetHeight(root));
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
+ ASSERT_FLOAT_EQ(1000, YGNodeLayoutGetWidth(root_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
+
+ ASSERT_FLOAT_EQ(500, YGNodeLayoutGetLeft(root_child0_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
+ ASSERT_FLOAT_EQ(500, YGNodeLayoutGetWidth(root_child0_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
+
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(300, YGNodeLayoutGetWidth(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0_child0));
+
+ YGNodeFreeRecursive(root);
+
+ YGConfigFree(config);
+}
+
+TEST(
+ YogaTest,
+ justify_content_min_width_with_padding_child_width_lower_than_parent) {
+ const YGConfigRef config = YGConfigNew();
+
+ const YGNodeRef root = YGNodeNewWithConfig(config);
+ YGNodeStyleSetAlignContent(root, YGAlignStretch);
+ YGNodeStyleSetWidth(root, 1080);
+ YGNodeStyleSetHeight(root, 1584);
+
+ const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
+ YGNodeStyleSetFlexDirection(root_child0, YGFlexDirectionRow);
+ YGNodeStyleSetAlignContent(root_child0, YGAlignStretch);
+ YGNodeInsertChild(root, root_child0, 0);
+
+ const YGNodeRef root_child0_child0 = YGNodeNewWithConfig(config);
+ YGNodeStyleSetFlexDirection(root_child0_child0, YGFlexDirectionRow);
+ YGNodeStyleSetJustifyContent(root_child0_child0, YGJustifyCenter);
+ YGNodeStyleSetAlignContent(root_child0_child0, YGAlignStretch);
+ YGNodeStyleSetPadding(root_child0_child0, YGEdgeLeft, 100);
+ YGNodeStyleSetPadding(root_child0_child0, YGEdgeRight, 100);
+ YGNodeStyleSetMinWidth(root_child0_child0, 400);
+ YGNodeInsertChild(root_child0, root_child0_child0, 0);
+
+ const YGNodeRef root_child0_child0_child0 = YGNodeNewWithConfig(config);
+ YGNodeStyleSetFlexDirection(root_child0_child0_child0, YGFlexDirectionRow);
+ YGNodeStyleSetAlignContent(root_child0_child0_child0, YGAlignStretch);
+ YGNodeStyleSetWidth(root_child0_child0_child0, 199);
+ YGNodeStyleSetHeight(root_child0_child0_child0, 100);
+ YGNodeInsertChild(root_child0_child0, root_child0_child0_child0, 0);
+ YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
+ ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root));
+ ASSERT_FLOAT_EQ(1584, YGNodeLayoutGetHeight(root));
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
+ ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
+ ASSERT_FLOAT_EQ(400, YGNodeLayoutGetWidth(root_child0_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
+
+ ASSERT_FLOAT_EQ(101, YGNodeLayoutGetLeft(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(199, YGNodeLayoutGetWidth(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0_child0));
+
+ YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
+ ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root));
+ ASSERT_FLOAT_EQ(1584, YGNodeLayoutGetHeight(root));
+
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
+ ASSERT_FLOAT_EQ(1080, YGNodeLayoutGetWidth(root_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0));
+
+ ASSERT_FLOAT_EQ(680, YGNodeLayoutGetLeft(root_child0_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
+ ASSERT_FLOAT_EQ(400, YGNodeLayoutGetWidth(root_child0_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0));
+
+ ASSERT_FLOAT_EQ(101, YGNodeLayoutGetLeft(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(199, YGNodeLayoutGetWidth(root_child0_child0_child0));
+ ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root_child0_child0_child0));
+
+ YGNodeFreeRecursive(root);
+
+ YGConfigFree(config);
+}