summaryrefslogtreecommitdiff
path: root/test/text/formatted.test.cpp
blob: 70e743f5c8d27a0415815339e3708f7ff4edb3d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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");
}