summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-03-04 18:44:33 -0800
committerJesse Bounds <jesse@rebounds.net>2017-03-10 11:08:32 -0800
commit517659b1b44a4e31e1035d4da9c444380454ad58 (patch)
tree45777ce2cf3ca4cb4d22ab42c6a82c6b4118b530 /test
parent4d325879b89323439e9c2955ba5271d03c910490 (diff)
downloadqtlocation-mapboxgl-517659b1b44a4e31e1035d4da9c444380454ad58.tar.gz
[core] query source features
Diffstat (limited to 'test')
-rw-r--r--test/api/query.test.cpp41
-rw-r--r--test/fixtures/api/query_style.json9
2 files changed, 50 insertions, 0 deletions
diff --git a/test/api/query.test.cpp b/test/api/query.test.cpp
index b42046fb48..45e6b19268 100644
--- a/test/api/query.test.cpp
+++ b/test/api/query.test.cpp
@@ -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);
+}
+
diff --git a/test/fixtures/api/query_style.json b/test/fixtures/api/query_style.json
index 4e11921775..97f1d04432 100644
--- a/test/fixtures/api/query_style.json
+++ b/test/fixtures/api/query_style.json
@@ -50,6 +50,15 @@
"key4": 0.5
}
}
+ },
+ "source5": {
+ "type": "vector",
+ "url": "mapbox://mapbox.mapbox-streets-v6"
+ },
+ "source6": {
+ "type": "raster",
+ "url": "mapbox://mapbox.satellite",
+ "tileSize": 256
}
},
"layers": [