diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-11-12 14:21:49 +0200 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-11-12 15:12:31 +0200 |
commit | ee38730eedbdae682ed1a8407392026c7eac2ee6 (patch) | |
tree | b80f27e44c03998c8a221afdb6fd4663e87cc480 | |
parent | 2246cf7cc7f3966034a23abcd33b152012b07b1e (diff) | |
download | qtlocation-mapboxgl-ee38730eedbdae682ed1a8407392026c7eac2ee6.tar.gz |
[core] Add Source.GeoJSONSourceTilesRemainAfterDataReset unit test
-rw-r--r-- | test/style/source.test.cpp | 44 |
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 |