srctree

Robin Linden parent 3f97e8f3 fa199b2c
style: Trim quotes from font-family entries

inlinesplit
style/styled_node.h added: 12, removed: 4, total 8
@@ -90,7 +90,10 @@ struct StyledNode {
} else if constexpr (T == css::PropertyId::FontFamily) {
auto raw_font_family = get_raw_property(T);
auto families = util::split(raw_font_family, ",");
std::ranges::for_each(families, [](auto &family) { family = util::trim(family); });
static constexpr auto kShouldTrim = [](char c) {
return util::is_whitespace(c) || c == '\'' || c == '"';
};
std::ranges::for_each(families, [](auto &family) { family = util::trim(family, kShouldTrim); });
return families;
} else if constexpr (T == css::PropertyId::FontSize) {
return get_font_size_property();
 
style/styled_node_test.cpp added: 12, removed: 4, total 8
@@ -161,7 +161,12 @@ int main() {
});
 
etest::test("get_font_family_property", [] {
expect_property_eq<css::PropertyId::FontFamily>("abc, def", std::vector<std::string_view>{"abc", "def"});
using FontFamilies = std::vector<std::string_view>;
expect_property_eq<css::PropertyId::FontFamily>("abc, def", FontFamilies{"abc", "def"});
expect_property_eq<css::PropertyId::FontFamily>(R"('abc', "def")", FontFamilies{"abc", "def"});
expect_property_eq<css::PropertyId::FontFamily>("arial", FontFamilies{"arial"});
expect_property_eq<css::PropertyId::FontFamily>("'arial'", FontFamilies{"arial"});
expect_property_eq<css::PropertyId::FontFamily>(R"("arial")", FontFamilies{"arial"});
});
 
etest::test("get_font_size_property", [] {