summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-11-12 14:21:49 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-11-12 15:12:31 +0200
commitee38730eedbdae682ed1a8407392026c7eac2ee6 (patch)
treeb80f27e44c03998c8a221afdb6fd4663e87cc480
parent2246cf7cc7f3966034a23abcd33b152012b07b1e (diff)
downloadqtlocation-mapboxgl-ee38730eedbdae682ed1a8407392026c7eac2ee6.tar.gz
[core] Add Source.GeoJSONSourceTilesRemainAfterDataReset unit test
-rw-r--r--test/style/source.test.cpp44
1 files changed, 34 insertions, 10 deletions
diff --git a/test/style/source.test.cpp b/test/style/source.test.cpp
index a08d11c7ad..d9dc0d9d8e 100644
--- a/test/style/source.test.cpp
+++ b/test/style/source.test.cpp
@@ -3,20 +3,22 @@
#include <mbgl/test/stub_style_observer.hpp>
#include <mbgl/test/stub_render_source_observer.hpp>
-#include <mbgl/style/style.hpp>
-#include <mbgl/style/source_impl.hpp>
-#include <mbgl/style/sources/raster_source.hpp>
-#include <mbgl/style/sources/raster_dem_source.hpp>
-#include <mbgl/style/sources/vector_source.hpp>
-#include <mbgl/style/sources/geojson_source.hpp>
-#include <mbgl/style/sources/image_source.hpp>
-#include <mbgl/style/sources/custom_geometry_source.hpp>
+#include <mbgl/style/layers/circle_layer.hpp>
+#include <mbgl/style/layers/circle_layer_impl.hpp>
#include <mbgl/style/layers/hillshade_layer.hpp>
#include <mbgl/style/layers/hillshade_layer_impl.hpp>
-#include <mbgl/style/layers/raster_layer.hpp>
-#include <mbgl/style/layers/raster_layer_impl.hpp>
#include <mbgl/style/layers/line_layer.hpp>
#include <mbgl/style/layers/line_layer_impl.hpp>
+#include <mbgl/style/layers/raster_layer.hpp>
+#include <mbgl/style/layers/raster_layer_impl.hpp>
+#include <mbgl/style/source_impl.hpp>
+#include <mbgl/style/sources/custom_geometry_source.hpp>
+#include <mbgl/style/sources/geojson_source.hpp>
+#include <mbgl/style/sources/image_source.hpp>
+#include <mbgl/style/sources/raster_dem_source.hpp>
+#include <mbgl/style/sources/raster_source.hpp>
+#include <mbgl/style/sources/vector_source.hpp>
+#include <mbgl/style/style.hpp>
#include <mbgl/renderer/sources/render_raster_source.hpp>
#include <mbgl/renderer/sources/render_raster_dem_source.hpp>
@@ -906,3 +908,25 @@ TEST(Source, RenderTileSetSourceUpdate) {
VectorSource uninitialized("source", "http://url");
renderSource->update(uninitialized.baseImpl, layers, true, true, test.tileParameters);
}
+
+TEST(Source, GeoJSONSourceTilesRemainAfterDataReset) {
+ SourceTest test;
+ GeoJSONSource source("source");
+ source.setGeoJSONData(GeoJSONData::create(
+ mapbox::geojson::parse(
+ R"({"geometry": {"type": "Point", "coordinates": [1.1, 1.1]}, "type": "Feature", "properties": {}})"),
+ {}));
+ RenderGeoJSONSource renderSource{staticImmutableCast<GeoJSONSource::Impl>(source.baseImpl)};
+
+ CircleLayer layer("id", "source");
+ Immutable<LayerProperties> layerProperties =
+ makeMutable<CircleLayerProperties>(staticImmutableCast<CircleLayer::Impl>(layer.baseImpl));
+ std::vector<Immutable<LayerProperties>> layers{layerProperties};
+
+ static_cast<RenderSource&>(renderSource).update(source.baseImpl, layers, true, true, test.tileParameters);
+ EXPECT_FALSE(renderSource.isLoaded()); // loaded == false, means that the source contains pending tiles.
+
+ source.setGeoJSONData(nullptr);
+ static_cast<RenderSource&>(renderSource).update(source.baseImpl, layers, true, true, test.tileParameters);
+ EXPECT_FALSE(renderSource.isLoaded()); // Tiles remain.
+} \ No newline at end of file