Summary: flexlayout has the same fixtures forked from Yoga, with some disabled, and some added. This syncs that list to Yoga, adding the fixes made to it along with new fixtures. One new test absolute_child_with_max_height_larger_shrinkable_grandchild is failing, along with two fixtures where Chrome had recently changed its behaviors. These are commented out at the moment before I do something smarter with the test runner to allow more fixtures. Differential Revision: D42242096 fbshipit-source-id: dad07c72101c32b48f7c5a5fa8f46d43d2637222
270 lines
9.7 KiB
Java
270 lines
9.7 KiB
Java
/*
|
|
* Copyright (c) Meta Platforms, Inc. and 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/YGPaddingTest.html
|
|
|
|
package com.facebook.yoga;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
|
|
import org.junit.Test;
|
|
import org.junit.runner.RunWith;
|
|
import org.junit.runners.Parameterized;
|
|
|
|
@RunWith(Parameterized.class)
|
|
public class YGPaddingTest {
|
|
@Parameterized.Parameters(name = "{0}")
|
|
public static Iterable<TestParametrization.NodeFactory> nodeFactories() {
|
|
return TestParametrization.nodeFactories();
|
|
}
|
|
|
|
@Parameterized.Parameter public TestParametrization.NodeFactory mNodeFactory;
|
|
|
|
@Test
|
|
public void test_padding_no_size() {
|
|
YogaConfig config = YogaConfigFactory.create();
|
|
|
|
final YogaNode root = createNode(config);
|
|
root.setPadding(YogaEdge.LEFT, 10);
|
|
root.setPadding(YogaEdge.TOP, 10);
|
|
root.setPadding(YogaEdge.RIGHT, 10);
|
|
root.setPadding(YogaEdge.BOTTOM, 10);
|
|
root.setDirection(YogaDirection.LTR);
|
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
|
|
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
|
assertEquals(20f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(20f, root.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(20f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(20f, root.getLayoutHeight(), 0.0f);
|
|
}
|
|
|
|
@Test
|
|
public void test_padding_container_match_child() {
|
|
YogaConfig config = YogaConfigFactory.create();
|
|
|
|
final YogaNode root = createNode(config);
|
|
root.setPadding(YogaEdge.LEFT, 10);
|
|
root.setPadding(YogaEdge.TOP, 10);
|
|
root.setPadding(YogaEdge.RIGHT, 10);
|
|
root.setPadding(YogaEdge.BOTTOM, 10);
|
|
|
|
final YogaNode root_child0 = createNode(config);
|
|
root_child0.setWidth(10f);
|
|
root_child0.setHeight(10f);
|
|
root.addChildAt(root_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(30f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(30f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(10f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(10f, root_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(30f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(30f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(10f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
|
}
|
|
|
|
@Test
|
|
public void test_padding_flex_child() {
|
|
YogaConfig config = YogaConfigFactory.create();
|
|
|
|
final YogaNode root = createNode(config);
|
|
root.setPadding(YogaEdge.LEFT, 10);
|
|
root.setPadding(YogaEdge.TOP, 10);
|
|
root.setPadding(YogaEdge.RIGHT, 10);
|
|
root.setPadding(YogaEdge.BOTTOM, 10);
|
|
root.setWidth(100f);
|
|
root.setHeight(100f);
|
|
|
|
final YogaNode root_child0 = createNode(config);
|
|
root_child0.setFlexGrow(1f);
|
|
root_child0.setWidth(10f);
|
|
root.addChildAt(root_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(100f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(10f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(80f, root_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(100f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(80f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(80f, root_child0.getLayoutHeight(), 0.0f);
|
|
}
|
|
|
|
@Test
|
|
public void test_padding_stretch_child() {
|
|
YogaConfig config = YogaConfigFactory.create();
|
|
|
|
final YogaNode root = createNode(config);
|
|
root.setPadding(YogaEdge.LEFT, 10);
|
|
root.setPadding(YogaEdge.TOP, 10);
|
|
root.setPadding(YogaEdge.RIGHT, 10);
|
|
root.setPadding(YogaEdge.BOTTOM, 10);
|
|
root.setWidth(100f);
|
|
root.setHeight(100f);
|
|
|
|
final YogaNode root_child0 = createNode(config);
|
|
root_child0.setHeight(10f);
|
|
root.addChildAt(root_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(100f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(10f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(80f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(10f, root_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(100f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(10f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(80f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
|
}
|
|
|
|
@Test
|
|
public void test_padding_center_child() {
|
|
YogaConfig config = YogaConfigFactory.create();
|
|
|
|
final YogaNode root = createNode(config);
|
|
root.setJustifyContent(YogaJustify.CENTER);
|
|
root.setAlignItems(YogaAlign.CENTER);
|
|
root.setPadding(YogaEdge.BOTTOM, 20);
|
|
root.setWidth(100f);
|
|
root.setHeight(100f);
|
|
|
|
final YogaNode root_child0 = createNode(config);
|
|
root_child0.setWidth(10f);
|
|
root_child0.setHeight(10f);
|
|
root.addChildAt(root_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(100f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(45f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(35f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(10f, root_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(100f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(45f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(35f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
|
}
|
|
|
|
@Test
|
|
public void test_child_with_padding_align_end() {
|
|
YogaConfig config = YogaConfigFactory.create();
|
|
|
|
final YogaNode root = createNode(config);
|
|
root.setJustifyContent(YogaJustify.FLEX_END);
|
|
root.setAlignItems(YogaAlign.FLEX_END);
|
|
root.setWidth(200f);
|
|
root.setHeight(200f);
|
|
|
|
final YogaNode root_child0 = createNode(config);
|
|
root_child0.setPadding(YogaEdge.LEFT, 20);
|
|
root_child0.setPadding(YogaEdge.TOP, 20);
|
|
root_child0.setPadding(YogaEdge.RIGHT, 20);
|
|
root_child0.setPadding(YogaEdge.BOTTOM, 20);
|
|
root_child0.setWidth(100f);
|
|
root_child0.setHeight(100f);
|
|
root.addChildAt(root_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(200f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(200f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(100f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(100f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(100f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(100f, root_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(200f, root.getLayoutWidth(), 0.0f);
|
|
assertEquals(200f, root.getLayoutHeight(), 0.0f);
|
|
|
|
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
|
assertEquals(100f, root_child0.getLayoutY(), 0.0f);
|
|
assertEquals(100f, root_child0.getLayoutWidth(), 0.0f);
|
|
assertEquals(100f, root_child0.getLayoutHeight(), 0.0f);
|
|
}
|
|
|
|
private YogaNode createNode(YogaConfig config) {
|
|
return mNodeFactory.create(config);
|
|
}
|
|
}
|