[core] Add unit tests for Formatted class
This commit is contained in:
@@ -65,6 +65,7 @@ add_library(
|
||||
${MBGL_ROOT}/test/style/style_parser.test.cpp
|
||||
${MBGL_ROOT}/test/text/bidi.test.cpp
|
||||
${MBGL_ROOT}/test/text/cross_tile_symbol_index.test.cpp
|
||||
${MBGL_ROOT}/test/text/formatted.test.cpp
|
||||
${MBGL_ROOT}/test/text/glyph_manager.test.cpp
|
||||
${MBGL_ROOT}/test/text/glyph_pbf.test.cpp
|
||||
${MBGL_ROOT}/test/text/language_tag.test.cpp
|
||||
|
||||
@@ -17,9 +17,8 @@ bool Formatted::operator==(const Formatted& other) const {
|
||||
for (std::size_t i = 0; i < sections.size(); i++) {
|
||||
const auto& thisSection = sections.at(i);
|
||||
const auto& otherSection = other.sections.at(i);
|
||||
if (thisSection.text != otherSection.text ||
|
||||
thisSection.fontScale != otherSection.fontScale ||
|
||||
thisSection.fontStack != otherSection.fontStack ||
|
||||
if (thisSection.text != otherSection.text || thisSection.image != otherSection.image ||
|
||||
thisSection.fontScale != otherSection.fontScale || thisSection.fontStack != otherSection.fontStack ||
|
||||
thisSection.textColor != otherSection.textColor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
"test/style/style_parser.test.cpp",
|
||||
"test/text/bidi.test.cpp",
|
||||
"test/text/cross_tile_symbol_index.test.cpp",
|
||||
"test/text/formatted.test.cpp",
|
||||
"test/text/glyph_manager.test.cpp",
|
||||
"test/text/glyph_pbf.test.cpp",
|
||||
"test/text/language_tag.test.cpp",
|
||||
|
||||
51
test/text/formatted.test.cpp
Normal file
51
test/text/formatted.test.cpp
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
#include <mbgl/style/expression/formatted.hpp>
|
||||
#include <mbgl/test/util.hpp>
|
||||
#include <mbgl/util/optional.hpp>
|
||||
|
||||
using namespace mbgl;
|
||||
using namespace mbgl::style::expression;
|
||||
|
||||
TEST(Formatted, Equality) {
|
||||
Formatted text{"Formatted"};
|
||||
auto emptyImage = FormattedSection{style::expression::Image("Formatted")};
|
||||
Formatted image{std::vector<FormattedSection>{emptyImage}};
|
||||
EXPECT_FALSE(text == image);
|
||||
EXPECT_EQ(text, text);
|
||||
EXPECT_EQ(image, image);
|
||||
}
|
||||
|
||||
TEST(Formatted, Empty) {
|
||||
Formatted emptyFormatted{""};
|
||||
EXPECT_TRUE(emptyFormatted.empty());
|
||||
|
||||
auto emptyText = FormattedSection{"", nullopt, nullopt, nullopt};
|
||||
auto emptyImage = FormattedSection{style::expression::Image()};
|
||||
Formatted multipleEmptySections{std::vector<FormattedSection>{emptyText, emptyText, emptyText}};
|
||||
EXPECT_TRUE(multipleEmptySections.empty());
|
||||
|
||||
Formatted multipleEmptySectionsWithImage{std::vector<FormattedSection>{emptyText, emptyImage, emptyText}};
|
||||
EXPECT_TRUE(multipleEmptySectionsWithImage.empty());
|
||||
|
||||
auto text = FormattedSection{"Formatted", nullopt, nullopt, nullopt};
|
||||
auto image = FormattedSection{style::expression::Image("Image")};
|
||||
|
||||
Formatted multipleSections{std::vector<FormattedSection>{emptyText, text, emptyText}};
|
||||
EXPECT_FALSE(multipleSections.empty());
|
||||
|
||||
Formatted multipleSectionsWithImage{std::vector<FormattedSection>{emptyText, image, text}};
|
||||
EXPECT_FALSE(multipleSectionsWithImage.empty());
|
||||
}
|
||||
|
||||
TEST(Formatted, ToString) {
|
||||
Formatted emptyFormatted{""};
|
||||
EXPECT_EQ(emptyFormatted.toString(), "");
|
||||
|
||||
auto text = FormattedSection{"Formatted", nullopt, nullopt, nullopt};
|
||||
Formatted multipleSections{std::vector<FormattedSection>{text, text}};
|
||||
EXPECT_EQ(multipleSections.toString(), "FormattedFormatted");
|
||||
|
||||
auto image = FormattedSection{style::expression::Image("Image")};
|
||||
Formatted multipleEmptySectionsWithImage{std::vector<FormattedSection>{text, image}};
|
||||
EXPECT_EQ(multipleEmptySectionsWithImage.toString(), "Formatted");
|
||||
}
|
||||
Reference in New Issue
Block a user