diff options
Diffstat (limited to 'test/style/source.test.cpp')
-rw-r--r-- | test/style/source.test.cpp | 105 |
1 files changed, 63 insertions, 42 deletions
diff --git a/test/style/source.test.cpp b/test/style/source.test.cpp index 73212189de..127a3b78a1 100644 --- a/test/style/source.test.cpp +++ b/test/style/source.test.cpp @@ -37,6 +37,7 @@ #include <mbgl/annotation/annotation_source.hpp> #include <mbgl/renderer/image_manager.hpp> #include <mbgl/text/glyph_manager.hpp> +#include <mbgl/platform/factory.hpp> #include <cstdint> @@ -46,21 +47,23 @@ using SourceType = mbgl::style::SourceType; class SourceTest { public: util::RunLoop loop; - StubFileSource fileSource; + FileSourceOptions stubFileSourceOptions; + std::shared_ptr<FileSource> fileSource = platform::Factory::sharedFileSource( + stubFileSourceOptions, std::make_shared<StubFileSource>()); StubStyleObserver styleObserver; StubRenderSourceObserver renderSourceObserver; Transform transform; TransformState transformState; - Style style { fileSource, 1 }; + Style style { 1.0, stubFileSourceOptions }; AnnotationManager annotationManager { style }; ImageManager imageManager; - GlyphManager glyphManager { fileSource }; + GlyphManager glyphManager { stubFileSourceOptions }; TileParameters tileParameters { 1.0, + fileSource, MapDebugOptions(), transformState, - fileSource, MapMode::Continuous, annotationManager, imageManager, @@ -90,7 +93,8 @@ public: TEST(Source, LoadingFail) { SourceTest test; - test.fileSource.sourceResponse = [&] (const Resource& resource) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->sourceResponse = [&] (const Resource& resource) { EXPECT_EQ("url", resource.url); Response response; response.error = std::make_unique<Response::Error>( @@ -107,7 +111,7 @@ TEST(Source, LoadingFail) { VectorSource source("source", "url"); source.setObserver(&test.styleObserver); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.run(); } @@ -115,7 +119,8 @@ TEST(Source, LoadingFail) { TEST(Source, LoadingCorrupt) { SourceTest test; - test.fileSource.sourceResponse = [&] (const Resource& resource) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->sourceResponse = [&] (const Resource& resource) { EXPECT_EQ("url", resource.url); Response response; response.data = std::make_unique<std::string>("CORRUPTED"); @@ -130,7 +135,7 @@ TEST(Source, LoadingCorrupt) { VectorSource source("source", "url"); source.setObserver(&test.styleObserver); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.run(); } @@ -138,7 +143,8 @@ TEST(Source, LoadingCorrupt) { TEST(Source, RasterTileEmpty) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.noContent = true; return response; @@ -151,7 +157,7 @@ TEST(Source, RasterTileEmpty) { tileset.tiles = { "tiles" }; RasterSource source("source", tileset, 512); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileChanged = [&] (RenderSource& source_, const OverscaledTileID&) { EXPECT_EQ("source", source_.baseImpl->id); @@ -176,7 +182,8 @@ TEST(Source, RasterTileEmpty) { TEST(Source, RasterDEMTileEmpty) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.noContent = true; return response; @@ -189,7 +196,7 @@ TEST(Source, RasterDEMTileEmpty) { tileset.tiles = { "tiles" }; RasterDEMSource source("source", tileset, 512); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileChanged = [&] (RenderSource& source_, const OverscaledTileID&) { EXPECT_EQ("source", source_.baseImpl->id); @@ -214,7 +221,8 @@ TEST(Source, RasterDEMTileEmpty) { TEST(Source, VectorTileEmpty) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.noContent = true; return response; @@ -229,7 +237,7 @@ TEST(Source, VectorTileEmpty) { tileset.tiles = { "tiles" }; VectorSource source("source", tileset); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileChanged = [&] (RenderSource& source_, const OverscaledTileID&) { EXPECT_EQ("source", source_.baseImpl->id); @@ -254,7 +262,8 @@ TEST(Source, VectorTileEmpty) { TEST(Source, RasterTileFail) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.error = std::make_unique<Response::Error>( Response::Error::Reason::Other, @@ -269,7 +278,7 @@ TEST(Source, RasterTileFail) { tileset.tiles = { "tiles" }; RasterSource source("source", tileset, 512); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileError = [&] (RenderSource& source_, const OverscaledTileID& tileID, std::exception_ptr error) { EXPECT_EQ(SourceType::Raster, source_.baseImpl->type); @@ -292,7 +301,8 @@ TEST(Source, RasterTileFail) { TEST(Source, RasterDEMTileFail) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.error = std::make_unique<Response::Error>( Response::Error::Reason::Other, @@ -307,7 +317,7 @@ TEST(Source, RasterDEMTileFail) { tileset.tiles = { "tiles" }; RasterDEMSource source("source", tileset, 512); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileError = [&] (RenderSource& source_, const OverscaledTileID& tileID, std::exception_ptr error) { EXPECT_EQ(SourceType::RasterDEM, source_.baseImpl->type); @@ -330,7 +340,8 @@ TEST(Source, RasterDEMTileFail) { TEST(Source, VectorTileFail) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.error = std::make_unique<Response::Error>( Response::Error::Reason::Other, @@ -347,7 +358,7 @@ TEST(Source, VectorTileFail) { tileset.tiles = { "tiles" }; VectorSource source("source", tileset); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileError = [&] (RenderSource& source_, const OverscaledTileID& tileID, std::exception_ptr error) { EXPECT_EQ(SourceType::Vector, source_.baseImpl->type); @@ -370,7 +381,8 @@ TEST(Source, VectorTileFail) { TEST(Source, RasterTileCorrupt) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.data = std::make_unique<std::string>("CORRUPTED"); return response; @@ -383,7 +395,7 @@ TEST(Source, RasterTileCorrupt) { tileset.tiles = { "tiles" }; RasterSource source("source", tileset, 512); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileError = [&] (RenderSource& source_, const OverscaledTileID& tileID, std::exception_ptr error) { EXPECT_EQ(source_.baseImpl->type, SourceType::Raster); @@ -407,7 +419,8 @@ TEST(Source, RasterTileCorrupt) { TEST(Source, RasterDEMTileCorrupt) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.data = std::make_unique<std::string>("CORRUPTED"); return response; @@ -420,7 +433,7 @@ TEST(Source, RasterDEMTileCorrupt) { tileset.tiles = { "tiles" }; RasterDEMSource source("source", tileset, 512); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileError = [&] (RenderSource& source_, const OverscaledTileID& tileID, std::exception_ptr error) { EXPECT_EQ(source_.baseImpl->type, SourceType::RasterDEM); @@ -444,7 +457,8 @@ TEST(Source, RasterDEMTileCorrupt) { TEST(Source, VectorTileCorrupt) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.data = std::make_unique<std::string>("CORRUPTED"); return response; @@ -459,7 +473,7 @@ TEST(Source, VectorTileCorrupt) { tileset.tiles = { "tiles" }; VectorSource source("source", tileset); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileError = [&] (RenderSource& source_, const OverscaledTileID& tileID, std::exception_ptr error) { EXPECT_EQ(source_.baseImpl->type, SourceType::Vector); @@ -482,7 +496,8 @@ TEST(Source, VectorTileCorrupt) { TEST(Source, RasterTileCancel) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { test.end(); return optional<Response>(); }; @@ -494,7 +509,7 @@ TEST(Source, RasterTileCancel) { tileset.tiles = { "tiles" }; RasterSource source("source", tileset, 512); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileChanged = [&] (RenderSource&, const OverscaledTileID&) { FAIL() << "Should never be called"; @@ -518,7 +533,8 @@ TEST(Source, RasterTileCancel) { TEST(Source, RasterDEMTileCancel) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { test.end(); return optional<Response>(); }; @@ -530,7 +546,7 @@ TEST(Source, RasterDEMTileCancel) { tileset.tiles = { "tiles" }; RasterDEMSource source("source", tileset, 512); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileChanged = [&] (RenderSource&, const OverscaledTileID&) { FAIL() << "Should never be called"; @@ -554,7 +570,8 @@ TEST(Source, RasterDEMTileCancel) { TEST(Source, VectorTileCancel) { SourceTest test; - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { test.end(); return optional<Response>(); }; @@ -568,7 +585,7 @@ TEST(Source, VectorTileCancel) { tileset.tiles = { "tiles" }; VectorSource source("source", tileset); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); test.renderSourceObserver.tileChanged = [&] (RenderSource&, const OverscaledTileID&) { FAIL() << "Should never be called"; @@ -598,13 +615,14 @@ TEST(Source, RasterTileAttribution) { std::string mapboxOSM = ("<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox</a> " "<a href='http://www.openstreetmap.org/about/' target='_blank'>©️ OpenStreetMap</a>"); - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.noContent = true; return response; }; - test.fileSource.sourceResponse = [&] (const Resource& resource) { + stubFileSource->sourceResponse = [&] (const Resource& resource) { EXPECT_EQ("url", resource.url); Response response; response.data = std::make_unique<std::string>(R"TILEJSON({ "tilejson": "2.1.0", "attribution": ")TILEJSON" + @@ -621,7 +639,7 @@ TEST(Source, RasterTileAttribution) { RasterSource source("source", "url", 512); source.setObserver(&test.styleObserver); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); auto renderSource = RenderSource::create(source.baseImpl); renderSource->update(source.baseImpl, @@ -641,13 +659,14 @@ TEST(Source, RasterDEMTileAttribution) { std::string mapbox = ("<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox</a> "); - test.fileSource.tileResponse = [&] (const Resource&) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->tileResponse = [&] (const Resource&) { Response response; response.noContent = true; return response; }; - test.fileSource.sourceResponse = [&] (const Resource& resource) { + stubFileSource->sourceResponse = [&] (const Resource& resource) { EXPECT_EQ("url", resource.url); Response response; response.data = std::make_unique<std::string>(R"TILEJSON({ "tilejson": "2.1.0", "attribution": ")TILEJSON" + @@ -663,7 +682,7 @@ TEST(Source, RasterDEMTileAttribution) { RasterDEMSource source("source", "url", 512); source.setObserver(&test.styleObserver); - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); auto renderSource = RenderSource::create(source.baseImpl); renderSource->update(source.baseImpl, @@ -678,7 +697,8 @@ TEST(Source, RasterDEMTileAttribution) { TEST(Source, GeoJSonSourceUrlUpdate) { SourceTest test; - test.fileSource.sourceResponse = [&] (const Resource& resource) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->sourceResponse = [&] (const Resource& resource) { EXPECT_EQ("url", resource.url); Response response; response.data = std::make_unique<std::string>(R"({"geometry": {"type": "Point", "coordinates": [1.1, 1.1]}, "type": "Feature", "properties": {}})"); @@ -694,7 +714,7 @@ TEST(Source, GeoJSonSourceUrlUpdate) { source.setObserver(&test.styleObserver); // Load initial, so the source state will be loaded=true - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); // Schedule an update test.loop.invoke([&] () { @@ -708,7 +728,8 @@ TEST(Source, GeoJSonSourceUrlUpdate) { TEST(Source, ImageSourceImageUpdate) { SourceTest test; - test.fileSource.response = [&] (const Resource& resource) { + auto stubFileSource = std::static_pointer_cast<StubFileSource>(test.fileSource); + stubFileSource->response = [&] (const Resource& resource) { EXPECT_EQ("http://url", resource.url); Response response; response.data = std::make_unique<std::string>(util::read_file("test/fixtures/image/no_profile.png")); @@ -725,7 +746,7 @@ TEST(Source, ImageSourceImageUpdate) { source.setObserver(&test.styleObserver); // Load initial, so the source state will be loaded=true - source.loadDescription(test.fileSource); + source.loadDescription(stubFileSource); PremultipliedImage rgba({ 1, 1 }); rgba.data[0] = 255; rgba.data[1] = 254; |