summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-04-20 19:02:01 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-04-20 21:54:31 +0300
commit68573559328d6d84eeee84d642277529f4f2b5e2 (patch)
tree60717cac7d20755c800190108d597eb463a1c95a
parentf41992819d5e6d16b395d96c441b7a1ecc91638e (diff)
downloadqtlocation-mapboxgl-68573559328d6d84eeee84d642277529f4f2b5e2.tar.gz
Add Map.SourceMinimumUpdateIntervalOverride unit test
-rw-r--r--test/map/map.test.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp
index 7a8078df27..10cd3080c6 100644
--- a/test/map/map.test.cpp
+++ b/test/map/map.test.cpp
@@ -1349,6 +1349,63 @@ TEST(Map, TEST_REQUIRES_SERVER(ExpiredSpriteSheet)) {
test.runLoop.run();
}
+TEST(Map, SourceMinimumUpdateIntervalOverride) {
+ MapTest<> test{1, MapMode::Continuous};
+
+ test.map.getStyle().loadJSON(
+ R"STYLE({
+ "layers": [{
+ "id": "a",
+ "type": "fill",
+ "source": "source-a",
+ "minzoom": 0,
+ "maxzoom": 24
+ },
+ {
+ "id": "b",
+ "type": "fill",
+ "source": "source-b",
+ "minzoom": 0,
+ "maxzoom": 24
+ }]
+ })STYLE");
+
+ // Vector source
+ auto vectorSourceA = std::make_unique<VectorSource>("source-a", Tileset{{"a/{z}/{x}/{y}"}});
+ vectorSourceA->setMinimumTileUpdateInterval(Seconds(1));
+ test.map.getStyle().addSource(std::move(vectorSourceA));
+
+ auto vectorSourceB = std::make_unique<VectorSource>("source-b", Tileset{{"b/{z}/{x}/{y}"}});
+ test.map.getStyle().addSource(std::move(vectorSourceB));
+
+ std::atomic_int requestedTilesA(0);
+ std::atomic_int requestedTilesB(0);
+ test.fileSource->tileResponse = [&](const Resource& resource) -> Response {
+ assert(!resource.url.empty());
+ char firstSymbol = resource.url[0];
+ if (firstSymbol == 'a') {
+ EXPECT_EQ(Seconds(1), resource.minimumUpdateInterval);
+ ++requestedTilesA;
+ } else if (firstSymbol == 'b') {
+ EXPECT_EQ(Duration::zero(), resource.minimumUpdateInterval);
+ ++requestedTilesB;
+ } else {
+ EXPECT_FALSE(true) << "Never reached";
+ }
+
+ Response res;
+ res.noContent = true;
+ return res;
+ };
+
+ test.map.jumpTo(CameraOptions().withZoom(double(16)));
+ test.observer.didFinishLoadingMapCallback = [&] { test.runLoop.stop(); };
+ test.runLoop.run();
+
+ EXPECT_EQ(8, requestedTilesA);
+ EXPECT_EQ(8, requestedTilesB);
+}
+
namespace {
int requestsCount = 0;