Add tests for measure and baseline events

Summary: Add tests for measure and baseline events , same as we had in InstrumentationTests for marker based approach

Reviewed By: davidaurelio

Differential Revision: D16074402

fbshipit-source-id: 8b11cd6468420428701fd5be5c57700cbd913d23
This commit is contained in:
Sidharth Guglani
2019-07-10 08:43:41 -07:00
committed by Facebook Github Bot
parent 0f250490d4
commit 39e512f691

View File

@@ -248,6 +248,40 @@ TEST_F(EventTest, layout_events_has_max_measure_cache) {
ASSERT_EQ(layoutData.maxMeasureCache, 7);
}
TEST_F(EventTest, measure_functions_get_wrapped) {
auto root = YGNodeNew();
YGNodeSetMeasureFunc(
root, [](YGNodeRef, float, YGMeasureMode, float, YGMeasureMode) {
return YGSize{};
});
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
ASSERT_EQ(events[2].node, root);
ASSERT_EQ(events[2].type, Event::MeasureCallbackStart);
ASSERT_EQ(events[events.size() - 1].node, root);
ASSERT_EQ(events[events.size() - 1].type, Event::LayoutPassEnd);
}
TEST_F(EventTest, baseline_functions_get_wrapped) {
auto root = YGNodeNew();
auto child = YGNodeNew();
YGNodeInsertChild(root, child, 0);
YGNodeSetBaselineFunc(child, [](YGNodeRef, float, float) { return 0.0f; });
YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
YGNodeStyleSetAlignItems(root, YGAlignBaseline);
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
ASSERT_EQ(events[5].node, child);
ASSERT_EQ(events[5].type, Event::NodeBaselineStart);
ASSERT_EQ(events[events.size() - 1].node, root);
ASSERT_EQ(events[events.size() - 1].type, Event::LayoutPassEnd);
}
namespace {
template <Event::Type E>
@@ -298,10 +332,16 @@ void EventTest::listen(const YGNode& node, Event::Type type, Event::Data data) {
}
case Event::MeasureCallbackStart:
events.push_back(createArgs<Event::MeasureCallbackStart>(node, data));
break;
case Event::MeasureCallbackEnd:
events.push_back(createArgs<Event::MeasureCallbackEnd>(node, data));
break;
case Event::NodeBaselineStart:
events.push_back(createArgs<Event::NodeBaselineStart>(node, data));
break;
case Event::NodeBaselineEnd:
events.push_back(createArgs<Event::NodeBaselineEnd>(node, data));
break;
}
}