From bb9b1ab62438f733ad278cb03f781116b9f3d721 Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Fri, 27 Sep 2019 15:39:21 +0300 Subject: [core] Return enum layer property values as string The output of Layer::getProperty is a mapbox::base::Value which is equivalent to JSON. When setting the value of an enum property via JSON its value would be a string, so it would be natural to return a string too. Also, the numbers generated depend on the enum definition. They are not part of the style spec. --- include/mbgl/style/conversion_impl.hpp | 2 +- test/map/map.test.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/mbgl/style/conversion_impl.hpp b/include/mbgl/style/conversion_impl.hpp index 3e4236949e..3e1b8455e5 100644 --- a/include/mbgl/style/conversion_impl.hpp +++ b/include/mbgl/style/conversion_impl.hpp @@ -327,7 +327,7 @@ struct ValueFactory::value && !is_l template struct ValueFactory::value>::type> { - static Value make(T arg) { return {int64_t(arg)}; } + static Value make(T arg) { return {Enum::toString(arg)}; } }; template diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp index 5872f4ecd5..6f0f126d3d 100644 --- a/test/map/map.test.cpp +++ b/test/map/map.test.cpp @@ -1006,6 +1006,6 @@ TEST(Map, UniversalStyleGetter) { StyleProperty lineCap = lineLayer->getProperty("line-cap"); ASSERT_TRUE(lineCap.value); EXPECT_EQ(StyleProperty::Kind::Constant, lineCap.kind); - ASSERT_TRUE(lineCap.value.getInt()); - EXPECT_EQ(mbgl::underlying_type(mbgl::style::LineCapType::Butt), *lineCap.value.getInt()); -} \ No newline at end of file + ASSERT_TRUE(lineCap.value.getString()); + EXPECT_EQ(std::string("butt"), *lineCap.value.getString()); +} -- cgit v1.2.1