From af89318b1d3bef15e92e591887c9d65b10be54ce Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Fri, 13 Jul 2018 17:02:30 -0700 Subject: [core] Convert token strings to expressions --- test/style/conversion/function.test.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/style/conversion/function.test.cpp b/test/style/conversion/function.test.cpp index fa89576afa..4612147f76 100644 --- a/test/style/conversion/function.test.cpp +++ b/test/style/conversion/function.test.cpp @@ -4,6 +4,7 @@ #include #include #include +#include using namespace mbgl; using namespace mbgl::style; @@ -56,7 +57,7 @@ TEST(StyleConversion, CompositeFunctionExpression) { Error error; auto parseFunction = [&](const std::string& json) { - return convertJSON>(json, error); + return convertJSON>(json, error, false); }; auto fn1 = parseFunction(R"(["interpolate", ["linear"], ["zoom"], 0, ["number", ["get", "x"]], 10, 10])"); @@ -75,3 +76,20 @@ TEST(StyleConversion, CompositeFunctionExpression) { ASSERT_FALSE(fn5); ASSERT_EQ(R"("zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.)", error.message); } + +TEST(StyleConversion, TokenStrings) { + ASSERT_FALSE(hasTokens("")); + ASSERT_FALSE(hasTokens("{")); + ASSERT_FALSE(hasTokens("{token")); + ASSERT_TRUE(hasTokens("{token}")); + ASSERT_TRUE(hasTokens("token {token}")); + ASSERT_TRUE(hasTokens("{token} {token}")); + + using namespace mbgl::style::expression::dsl; + ASSERT_EQ(*convertTokenStringToExpression("{token}"), *toString(get(literal("token")))); + ASSERT_EQ(*convertTokenStringToExpression("token {token}"), *concat(vec(literal("token "), toString(get(literal("token")))))); + ASSERT_EQ(*convertTokenStringToExpression("{token} token"), *concat(vec(toString(get(literal("token"))), literal(" token")))); + ASSERT_EQ(*convertTokenStringToExpression("{token} {token}"), *concat(vec(toString(get(literal("token"))), literal(" "), toString(get(literal("token")))))); + ASSERT_EQ(*convertTokenStringToExpression("{token} {token"), *concat(vec(toString(get(literal("token"))), literal(" "), literal("{token")))); + ASSERT_EQ(*convertTokenStringToExpression("{token {token}"), *concat(vec(literal("{token "), toString(get(literal("token")))))); +} -- cgit v1.2.1