diff --git a/test/miscellaneous/token.cpp b/test/miscellaneous/token.cpp new file mode 100644 index 000000000..638bf77b8 --- /dev/null +++ b/test/miscellaneous/token.cpp @@ -0,0 +1,50 @@ +#include +#include "../fixtures/util.hpp" + +#include + +using namespace mbgl; + +TEST(Token, replaceTokens) { + EXPECT_EQ("literal", mbgl::util::replaceTokens("literal", [](const std::string &token) -> std::string { + if (token == "name") return "14th St NW"; + return ""; + })); + EXPECT_EQ("14th St NW", mbgl::util::replaceTokens("{name}", [](const std::string &token) -> std::string { + if (token == "name") return "14th St NW"; + return ""; + })); + EXPECT_EQ("", mbgl::util::replaceTokens("{name}", [](const std::string &token) -> std::string { + if (token == "text") return "14th St NW"; + return ""; + })); + EXPECT_EQ("1400", mbgl::util::replaceTokens("{num}", [](const std::string &token) -> std::string { + if (token == "num") return "1400"; + return ""; + })); + EXPECT_EQ("500 m", mbgl::util::replaceTokens("{num} m", [](const std::string &token) -> std::string { + if (token == "num") return "500"; + return ""; + })); + EXPECT_EQ("3 Fine Fields", mbgl::util::replaceTokens("{a} {b} {c}", [](const std::string &token) -> std::string { + if (token == "a") return "3"; + if (token == "b") return "Fine"; + if (token == "c") return "Fields"; + return ""; + })); + EXPECT_EQ(" but still", mbgl::util::replaceTokens("{notset} but still", [](__unused const std::string &token) -> std::string { + return ""; + })); + EXPECT_EQ("dashed", mbgl::util::replaceTokens("{dashed-property}", [](const std::string &token) -> std::string { + if (token == "dashed-property") return "dashed"; + return ""; + })); + EXPECT_EQ("150 m", mbgl::util::replaceTokens("{HØYDE} m", [](const std::string &token) -> std::string { + if (token == "HØYDE") return "150"; + return ""; + })); + EXPECT_EQ("reserved {for:future} use", mbgl::util::replaceTokens("reserved {for:future} use", [](const std::string &token) -> std::string { + if (token == "for:future") return "unknown"; + return ""; + })); +} diff --git a/test/test.gypi b/test/test.gypi index 366326a3a..88448cc80 100644 --- a/test/test.gypi +++ b/test/test.gypi @@ -60,6 +60,7 @@ 'miscellaneous/text_conversions.cpp', 'miscellaneous/thread.cpp', 'miscellaneous/tile.cpp', + 'miscellaneous/token.cpp', 'miscellaneous/transform.cpp', 'miscellaneous/work_queue.cpp', 'miscellaneous/variant.cpp',