fix alignment with margin

This commit is contained in:
Lukas Wöhrl
2017-03-12 01:06:02 +01:00
parent a8e6123d47
commit 81be437a8f
6 changed files with 241 additions and 5 deletions

View File

@@ -1581,3 +1581,62 @@ TEST(YogaTest, align_baseline_multiline_row_and_column) {
YGConfigFree(config);
}
TEST(YogaTest, align_items_center_nested) {
const YGConfigRef config = YGConfigNew();
const YGNodeRef root = YGNodeNewWithConfig(config);
YGNodeStyleSetJustifyContent(root, YGJustifyCenter);
YGNodeStyleSetAlignItems(root, YGAlignCenter);
YGNodeStyleSetPositionType(root, YGPositionTypeAbsolute);
YGNodeStyleSetWidth(root, 52);
YGNodeStyleSetHeight(root, 52);
const YGNodeRef root_child0 = YGNodeNewWithConfig(config);
YGNodeStyleSetAlignItems(root_child0, YGAlignCenter);
YGNodeInsertChild(root, root_child0, 0);
const YGNodeRef root_child0_child0 = YGNodeNewWithConfig(config);
YGNodeStyleSetMargin(root_child0_child0, YGEdgeLeft, 10);
YGNodeStyleSetMargin(root_child0_child0, YGEdgeRight, 10);
YGNodeStyleSetWidth(root_child0_child0, 52);
YGNodeStyleSetHeight(root_child0_child0, 52);
YGNodeInsertChild(root_child0, root_child0_child0, 0);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetWidth(root));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetHeight(root));
ASSERT_FLOAT_EQ(-10, YGNodeLayoutGetLeft(root_child0));
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
ASSERT_FLOAT_EQ(72, YGNodeLayoutGetWidth(root_child0));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetHeight(root_child0));
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetLeft(root_child0_child0));
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetWidth(root_child0_child0));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetHeight(root_child0_child0));
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetWidth(root));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetHeight(root));
ASSERT_FLOAT_EQ(-10, YGNodeLayoutGetLeft(root_child0));
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
ASSERT_FLOAT_EQ(72, YGNodeLayoutGetWidth(root_child0));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetHeight(root_child0));
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetLeft(root_child0_child0));
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0_child0));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetWidth(root_child0_child0));
ASSERT_FLOAT_EQ(52, YGNodeLayoutGetHeight(root_child0_child0));
YGNodeFreeRecursive(root);
YGConfigFree(config);
}