Remove layoutContext Drilling (#1376)
Summary: X-link: https://github.com/facebook/react-native/pull/39401 Pull Request resolved: https://github.com/facebook/yoga/pull/1376 kill_with_fire_flamethrower Reviewed By: rshest Differential Revision: D49179244 fbshipit-source-id: 9a827e1bd29205254fee5725449191726d6bcf5a
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b1e0140aaa
commit
0a90b16ac6
@@ -24,7 +24,6 @@ struct TypedEventTestData {};
|
||||
|
||||
template <>
|
||||
struct TypedEventTestData<Event::LayoutPassEnd> {
|
||||
void* layoutContext;
|
||||
LayoutData layoutData;
|
||||
};
|
||||
|
||||
@@ -329,7 +328,7 @@ void EventTest::listen(
|
||||
case Event::LayoutPassEnd: {
|
||||
auto& eventData = data.get<Event::LayoutPassEnd>();
|
||||
events.push_back(createArgs<Event::LayoutPassEnd>(
|
||||
node, data, {eventData.layoutContext, *eventData.layoutData}));
|
||||
node, data, {*eventData.layoutData}));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -33,7 +33,7 @@ TEST_F(ConfigCloningTest, uses_values_provided_by_cloning_callback) {
|
||||
config->setCloneNodeCallback(cloneNode);
|
||||
|
||||
yoga::Node node{}, owner{};
|
||||
auto clone = config->cloneNode(&node, &owner, 0, nullptr);
|
||||
auto clone = config->cloneNode(&node, &owner, 0);
|
||||
|
||||
ASSERT_EQ(clone, &clonedNode);
|
||||
}
|
||||
@@ -44,22 +44,12 @@ TEST_F(
|
||||
config->setCloneNodeCallback(doNotClone);
|
||||
|
||||
yoga::Node node{}, owner{};
|
||||
auto clone = config->cloneNode(&node, &owner, 0, nullptr);
|
||||
auto clone = config->cloneNode(&node, &owner, 0);
|
||||
|
||||
ASSERT_NE(clone, nullptr);
|
||||
YGNodeFree(clone);
|
||||
}
|
||||
|
||||
TEST_F(ConfigCloningTest, can_clone_with_context) {
|
||||
config->setCloneNodeCallback(
|
||||
[](YGNodeConstRef, YGNodeConstRef, size_t, void* context) {
|
||||
return (YGNodeRef) context;
|
||||
});
|
||||
|
||||
yoga::Node node{}, owner{}, clone{};
|
||||
ASSERT_EQ(config->cloneNode(&node, &owner, 0, &clone), &clone);
|
||||
}
|
||||
|
||||
void ConfigCloningTest::SetUp() {
|
||||
config = {static_cast<yoga::Config*>(YGConfigNew()), YGConfigFree};
|
||||
}
|
||||
|
@@ -38,38 +38,7 @@ TEST(Node, measure_with_measure_fn) {
|
||||
});
|
||||
|
||||
ASSERT_EQ(
|
||||
n.measure(23, YGMeasureModeExactly, 24, YGMeasureModeAtMost, nullptr),
|
||||
(YGSize{23, 12}));
|
||||
}
|
||||
|
||||
TEST(Node, measure_with_context_measure_fn) {
|
||||
auto n = Node{};
|
||||
n.setMeasureFunc([](YGNodeConstRef,
|
||||
float,
|
||||
YGMeasureMode,
|
||||
float,
|
||||
YGMeasureMode,
|
||||
void* ctx) { return *(YGSize*) ctx; });
|
||||
|
||||
auto result = YGSize{123.4f, -56.7f};
|
||||
ASSERT_EQ(
|
||||
n.measure(0, YGMeasureModeUndefined, 0, YGMeasureModeUndefined, &result),
|
||||
result);
|
||||
}
|
||||
|
||||
TEST(Node, switching_measure_fn_types) {
|
||||
auto n = Node{};
|
||||
n.setMeasureFunc(
|
||||
[](YGNodeConstRef, float, YGMeasureMode, float, YGMeasureMode, void*) {
|
||||
return YGSize{};
|
||||
});
|
||||
n.setMeasureFunc(
|
||||
[](YGNodeConstRef, float w, YGMeasureMode wm, float h, YGMeasureMode hm) {
|
||||
return YGSize{w * static_cast<float>(wm), h / static_cast<float>(hm)};
|
||||
});
|
||||
|
||||
ASSERT_EQ(
|
||||
n.measure(23, YGMeasureModeExactly, 24, YGMeasureModeAtMost, nullptr),
|
||||
n.measure(23, YGMeasureModeExactly, 24, YGMeasureModeAtMost),
|
||||
(YGSize{23, 12}));
|
||||
}
|
||||
|
||||
@@ -84,17 +53,6 @@ TEST(Node, hasMeasureFunc_after_unset) {
|
||||
ASSERT_FALSE(n.hasMeasureFunc());
|
||||
}
|
||||
|
||||
TEST(Node, hasMeasureFunc_after_unset_context) {
|
||||
auto n = Node{};
|
||||
n.setMeasureFunc(
|
||||
[](YGNodeConstRef, float, YGMeasureMode, float, YGMeasureMode, void*) {
|
||||
return YGSize{};
|
||||
});
|
||||
|
||||
n.setMeasureFunc(nullptr);
|
||||
ASSERT_FALSE(n.hasMeasureFunc());
|
||||
}
|
||||
|
||||
TEST(Node, hasBaselineFunc_initial) {
|
||||
auto n = Node{};
|
||||
ASSERT_FALSE(n.hasBaselineFunc());
|
||||
@@ -110,17 +68,7 @@ TEST(Node, baseline_with_baseline_fn) {
|
||||
auto n = Node{};
|
||||
n.setBaselineFunc([](YGNodeConstRef, float w, float h) { return w + h; });
|
||||
|
||||
ASSERT_EQ(n.baseline(1.25f, 2.5f, nullptr), 3.75f);
|
||||
}
|
||||
|
||||
TEST(Node, baseline_with_context_baseline_fn) {
|
||||
auto n = Node{};
|
||||
n.setBaselineFunc([](YGNodeConstRef, float w, float h, void* ctx) {
|
||||
return w + h + *(float*) ctx;
|
||||
});
|
||||
|
||||
auto ctx = -10.0f;
|
||||
ASSERT_EQ(n.baseline(1.25f, 2.5f, &ctx), -6.25f);
|
||||
ASSERT_EQ(n.baseline(1.25f, 2.5f), 3.75f);
|
||||
}
|
||||
|
||||
TEST(Node, hasBaselineFunc_after_unset) {
|
||||
@@ -130,18 +78,3 @@ TEST(Node, hasBaselineFunc_after_unset) {
|
||||
n.setBaselineFunc(nullptr);
|
||||
ASSERT_FALSE(n.hasBaselineFunc());
|
||||
}
|
||||
|
||||
TEST(Node, hasBaselineFunc_after_unset_context) {
|
||||
auto n = Node{};
|
||||
n.setBaselineFunc([](YGNodeConstRef, float, float, void*) { return 0.0f; });
|
||||
|
||||
n.setMeasureFunc(nullptr);
|
||||
ASSERT_FALSE(n.hasMeasureFunc());
|
||||
}
|
||||
|
||||
TEST(Node, switching_baseline_fn_types) {
|
||||
auto n = Node{};
|
||||
n.setBaselineFunc([](YGNodeConstRef, float, float, void*) { return 0.0f; });
|
||||
n.setBaselineFunc([](YGNodeConstRef, float, float) { return 1.0f; });
|
||||
ASSERT_EQ(n.baseline(1, 2, nullptr), 1.0f);
|
||||
}
|
||||
|
Reference in New Issue
Block a user