Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
[core] Add unit tests for Formatted class
Browse files Browse the repository at this point in the history
  • Loading branch information
alexshalamov committed Nov 20, 2019
1 parent 90b1dcd commit d9790a5
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 3 deletions.
1 change: 1 addition & 0 deletions next/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 2 additions & 3 deletions src/mbgl/style/expression/formatted.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
1 change: 1 addition & 0 deletions test/test-files.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
51 changes: 51 additions & 0 deletions test/text/formatted.test.cpp
Original file line number Diff line number Diff line change
@@ -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");
}

0 comments on commit d9790a5

Please sign in to comment.