diff options
author | Anand Thakker <anandthakker@users.noreply.github.com> | 2018-04-12 16:02:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-12 16:02:48 -0400 |
commit | 352d63d2ce98286cd854b11e85d66440501a6fd0 (patch) | |
tree | 08a6cc5140ddf044590ce82a44b7f2e0a920638c /test/style | |
parent | 646cbc98ddaa8f6afe84c96888c877628bf405ca (diff) | |
download | qtlocation-mapboxgl-352d63d2ce98286cd854b11e85d66440501a6fd0.tar.gz |
Don't enforce ["zoom"] constraints for filters (#11672)
* Don't enforce ["zoom"] constraints for filters
Fixes #11594
* Add a couple of comments
* Fix ambiguous constructor call
* ParsingContext(optional<Type>) => ParsingContext(Type)
Diffstat (limited to 'test/style')
-rw-r--r-- | test/style/expression/expression.test.cpp | 2 | ||||
-rw-r--r-- | test/style/filter.test.cpp | 14 |
2 files changed, 13 insertions, 3 deletions
diff --git a/test/style/expression/expression.test.cpp b/test/style/expression/expression.test.cpp index 694569695c..fe5c261be1 100644 --- a/test/style/expression/expression.test.cpp +++ b/test/style/expression/expression.test.cpp @@ -49,7 +49,7 @@ TEST_P(ExpressionEqualityTest, ExpressionEquality) { assert(!document.HasParseError()); const JSValue* expression = &document; expression::ParsingContext ctx; - expression::ParseResult parsed = ctx.parse(conversion::Convertible(expression)); + expression::ParseResult parsed = ctx.parseExpression(conversion::Convertible(expression)); if (!parsed) { error_ = ctx.getErrors().size() > 0 ? ctx.getErrors()[0].message : "failed to parse"; }; diff --git a/test/style/filter.test.cpp b/test/style/filter.test.cpp index 6f261c43ec..49edcaef45 100644 --- a/test/style/filter.test.cpp +++ b/test/style/filter.test.cpp @@ -11,14 +11,19 @@ using namespace mbgl; using namespace mbgl::style; -bool filter(const char * json, const PropertyMap& featureProperties = {{}}, optional<FeatureIdentifier> featureId = {}, FeatureType featureType = FeatureType::Point, GeometryCollection featureGeometry = {}) { +bool filter(const char * json, + const PropertyMap& featureProperties = {{}}, + optional<FeatureIdentifier> featureId = {}, + FeatureType featureType = FeatureType::Point, + GeometryCollection featureGeometry = {}, + float zoom = 0.0f) { conversion::Error error; optional<Filter> filter = conversion::convertJSON<Filter>(json, error); EXPECT_TRUE(bool(filter)); EXPECT_EQ(error.message, ""); StubGeometryTileFeature feature { featureId, featureType, featureGeometry, featureProperties }; - expression::EvaluationContext context = { &feature }; + expression::EvaluationContext context = { zoom, &feature }; return (*filter)(context); } @@ -109,3 +114,8 @@ TEST(Filter, PropertyExpression) { ASSERT_TRUE(filter("[\"==\", [\"get\", \"two\"], 2]", {{"two", int64_t(2)}})); ASSERT_FALSE(filter("[\"==\", [\"get\", \"two\"], 4]", {{"two", int64_t(2)}})); } + +TEST(Filter, ZoomExpressionNested) { + ASSERT_TRUE(filter(R"(["==", ["get", "two"], ["zoom"]])", {{"two", int64_t(2)}}, {}, FeatureType::Point, {}, 2.0f)); + ASSERT_FALSE(filter(R"(["==", ["get", "two"], ["+", ["zoom"], 1]])", {{"two", int64_t(2)}}, {}, FeatureType::Point, {}, 2.0f)); +} |