diff --git a/ReactCommon/fabric/attributedstring/tests/AttributedStringTest.cpp b/ReactCommon/fabric/attributedstring/tests/AttributedStringTest.cpp index effec4e99aa..b524fe787e5 100644 --- a/ReactCommon/fabric/attributedstring/tests/AttributedStringTest.cpp +++ b/ReactCommon/fabric/attributedstring/tests/AttributedStringTest.cpp @@ -13,8 +13,7 @@ #include #include #include -#include -#include + namespace facebook { namespace react { diff --git a/ReactCommon/fabric/components/text/BUCK b/ReactCommon/fabric/components/text/BUCK index b1426e279ec..74bb1a280c4 100644 --- a/ReactCommon/fabric/components/text/BUCK +++ b/ReactCommon/fabric/components/text/BUCK @@ -81,7 +81,7 @@ fb_xplat_cxx_test( "-Wall", ], contacts = ["oncall+react_native@xmail.facebook.com"], - platforms = APPLE, + platforms = (ANDROID, APPLE), deps = [ "xplat//folly:molly", "xplat//third-party/gmock:gtest", diff --git a/ReactCommon/fabric/components/text/paragraph/conversions.h b/ReactCommon/fabric/components/text/paragraph/conversions.h new file mode 100644 index 00000000000..24af4b2ef24 --- /dev/null +++ b/ReactCommon/fabric/components/text/paragraph/conversions.h @@ -0,0 +1,16 @@ + +#include +#include +#include + +namespace facebook { +namespace react { + +inline folly::dynamic toDynamic(const ParagraphLocalData ¶graphLocalData) { + folly::dynamic newLocalData = folly::dynamic::object(); + newLocalData["attributedString"] = toDynamic(paragraphLocalData.getAttributedString()); + return newLocalData; +} + +} +} diff --git a/ReactCommon/fabric/components/text/tests/ParagraphLocalDataTest.cpp b/ReactCommon/fabric/components/text/tests/ParagraphLocalDataTest.cpp new file mode 100644 index 00000000000..a2f56f85741 --- /dev/null +++ b/ReactCommon/fabric/components/text/tests/ParagraphLocalDataTest.cpp @@ -0,0 +1,49 @@ +/** + * 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. + */ + + #include + +#include +#include +#include +#include +#include +#include +#include + +namespace facebook { +namespace react { + +TEST(ParagraphLocalDataTest, testSomething) { + auto attString = AttributedString(); + auto fragment = AttributedString::Fragment(); + fragment.string = "test"; + + auto text = TextAttributes(); + text.foregroundColor = {colorFromComponents({100/255.0, 153/255.0, 253/255.0, 1.0})}; + text.opacity = 0.5; + text.fontStyle = FontStyle::Italic; + text.fontWeight = FontWeight::Thin; + text.fontVariant = FontVariant::TabularNums; + fragment.textAttributes = text; + attString.prependFragment(fragment); + + auto paragraphLocalData = ParagraphLocalData(); + paragraphLocalData.setAttributedString(attString); + + auto result = toDynamic(paragraphLocalData)["attributedString"]; + + assert(result["string"] == fragment.string); + auto textAttribute = result["fragments"][0]["textAttributes"]; + assert(textAttribute["foregroundColor"] == toDynamic(text.foregroundColor)); + assert(textAttribute["opacity"] == text.opacity); + assert(textAttribute["fontStyle"] == toString(*text.fontStyle)); + assert(textAttribute["fontWeight"] == toString(*text.fontWeight)); +} + +} +}