[core] query source features

This commit is contained in:
Ivo van Dongen
2017-03-04 18:44:33 -08:00
committed by Jesse Bounds
parent 4d325879b8
commit 517659b1b4
15 changed files with 191 additions and 2 deletions

View File

@@ -8,6 +8,7 @@
#include <mbgl/util/image.hpp>
#include <mbgl/util/io.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/style/source.hpp>
using namespace mbgl;
using namespace mbgl::style;
@@ -81,3 +82,43 @@ TEST(Query, QueryRenderedFeaturesFilter) {
auto features3 = test.map.queryRenderedFeatures(zz, {{ }, { gtFilter }});
EXPECT_EQ(features3.size(), 1u);
}
TEST(Query, QuerySourceFeatures) {
QueryTest test;
auto features1 = test.map.getSource("source3")->querySourceFeatures();
EXPECT_EQ(features1.size(), 1u);
}
TEST(Query, QuerySourceFeaturesOptionValidation) {
QueryTest test;
// GeoJSONSource, doesn't require a layer id
auto features = test.map.getSource("source3")->querySourceFeatures();
ASSERT_EQ(features.size(), 1u);
// VectorSource, requires a layer id
features = test.map.getSource("source5")->querySourceFeatures();
ASSERT_EQ(features.size(), 0u);
// RasterSource, not supported
features = test.map.getSource("source6")->querySourceFeatures();
ASSERT_EQ(features.size(), 0u);
}
TEST(Query, QuerySourceFeaturesFilter) {
QueryTest test;
const EqualsFilter eqFilter = { "key1", std::string("value1") };
auto features1 = test.map.getSource("source4")->querySourceFeatures({{}, { eqFilter }});
EXPECT_EQ(features1.size(), 1u);
const IdentifierNotEqualsFilter idNotEqFilter = { std::string("feature1") };
auto features2 = test.map.getSource("source4")->querySourceFeatures({{}, { idNotEqFilter }});
EXPECT_EQ(features2.size(), 0u);
const GreaterThanFilter gtFilter = { "key2", 1.0 };
auto features3 = test.map.getSource("source4")->querySourceFeatures({{}, { gtFilter }});
EXPECT_EQ(features3.size(), 1u);
}