summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-07-25 13:59:43 +0200
committerKonstantin Käfer <mail@kkaefer.com>2017-07-25 13:59:43 +0200
commitc9bf1235cdb0075900ad8e471886bbefceef891c (patch)
treeaaca2b50a33173d2519bcb538fa7bd387880a604
parent5d78f4813671cf54b1fd4c35036016ac3b2854c2 (diff)
downloadqtlocation-mapboxgl-c9bf1235cdb0075900ad8e471886bbefceef891c.tar.gz
[test] test usage of expired RasterTile while offline
-rw-r--r--cmake/test-files.cmake1
-rw-r--r--test/api/render_caching.cpp91
2 files changed, 77 insertions, 15 deletions
diff --git a/cmake/test-files.cmake b/cmake/test-files.cmake
index 3595233f2a..518f5adf66 100644
--- a/cmake/test-files.cmake
+++ b/cmake/test-files.cmake
@@ -17,6 +17,7 @@ set(MBGL_TEST_FILES
test/api/api_misuse.test.cpp
test/api/custom_layer.test.cpp
test/api/query.test.cpp
+ test/api/render_caching.cpp
test/api/render_missing.test.cpp
test/api/repeated_render.test.cpp
diff --git a/test/api/render_caching.cpp b/test/api/render_caching.cpp
index 4533ca2aaf..cec501f84e 100644
--- a/test/api/render_caching.cpp
+++ b/test/api/render_caching.cpp
@@ -17,24 +17,58 @@
#include <future>
#include <memory>
+class FrameObserver : public mbgl::MapObserver {
+public:
+ void onDidFinishRenderingFrame(RenderMode mode) {
+ if (mode == RenderMode::Full) {
+ fprintf(stderr, "onDidFinishRenderingFrame: full\n");
+// mbgl::util::RunLoop::Get()->stop();
+ } else {
+ fprintf(stderr, "onDidFinishRenderingFrame: partial\n");
+
+ }
+ }
+ void onDidFinishRenderingMap(RenderMode mode) {
+// fprintf(stderr, "onDidFinishRenderingMap\n");
+ if (mode == RenderMode::Full) {
+ fprintf(stderr, "onDidFinishRenderingMap: full\n");
+ mbgl::util::RunLoop::Get()->stop();
+ } else {
+
+ fprintf(stderr, "onDidFinishRenderingMap: partial\n");
+ }
+ }
+};
+
TEST(API, RenderExpiredRasterTile) {
using namespace mbgl;
+ Log::setObserver(std::make_unique<FixtureLogObserver>());
+
util::RunLoop loop;
HeadlessBackend backend;
BackendScope scope { backend };
- OffscreenView view { backend.getContext(), { 256, 512 } };
+ OffscreenView view { backend.getContext(), { 512, 256 } };
float pixelRatio { 1 };
- DefaultFileSource db(":memory:");
+ DefaultFileSource fileSource(":memory:", "test/fixtures/api/assets");
+ fileSource.setOnlineStatus(false);
ThreadPool threadPool(4);
StubRendererFrontend rendererFrontend { std::make_unique<Renderer>(backend, pixelRatio, fileSource, threadPool), view };
- // Log::setObserver(std::make_unique<FixtureLogObserver>());
+ Response response;
+ response.expires = util::parseTimestamp("Tue, 04 Nov 2014 02:13:24 GMT");
+
+ response.data = std::make_shared<std::string>(util::read_file("test/fixtures/api/assets/raster/6-10-24.png"));
+ fileSource.put(Resource::tile("https://tiles/{z}-{x}-{y}.png", 1, 10, 24, 6, Tileset::Scheme::XYZ), response);
+ response.data = std::make_shared<std::string>(util::read_file("test/fixtures/api/assets/raster/10-163-395.png"));
+ fileSource.put(Resource::tile("https://tiles/{z}-{x}-{y}.png", 1, 163, 395, 10, Tileset::Scheme::XYZ), response);
+
- Map map { rendererFrontend, MapObserver::nullObserver(), view.getSize(), pixelRatio, fileSource,
- threadPool, MapMode::Still };
+ FrameObserver observer;
+ Map map { rendererFrontend, observer, view.getSize(), pixelRatio, fileSource,
+ threadPool, MapMode::Continuous };
map.getStyle().loadJSON(R"STYLE({
"version": 8,
@@ -50,16 +84,43 @@ TEST(API, RenderExpiredRasterTile) {
"source": "raster"
}]
})STYLE");
- }
- map.setLatLngZoom({ 37.8, -122.5 }, 10);
- test::checkImage("test/fixtures/api/cached_raster", test::render(map, view), 0.0006, 0.1);
+ map.setLatLngZoom({ 37.8, -122.4 }, 10);
+
+ loop.run();
+
+ PremultipliedImage result = view.readStillImage();
+ test::checkImage("test/fixtures/api/cached_raster", result, 0.0006, 0.1);
- // auto observer = Log::removeObserver();
- // auto flo = dynamic_cast<FixtureLogObserver*>(observer.get());
- // EXPECT_EQ(1u, flo->count(FixtureLog::Message(
- // EventSeverity::Error, Event::Style, -1,
- // std::string("Failed to load tile 0/0/0=>0 for source mapbox: " + message))));
- // auto unchecked = flo->unchecked();
- // EXPECT_TRUE(unchecked.empty()) << unchecked;
+// auto flo = dynamic_cast<FixtureLogObserver*>(Log::removeObserver().get());
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 10/163/395=>10 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 10/164/395=>10 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 9/81/197=>9 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 9/82/197=>9 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 8/40/98=>8 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 8/41/98=>8 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 7/20/49=>7 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 6/10/24=>6 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 5/5/12=>5 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 4/2/6=>4 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 3/1/3=>3 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 2/0/1=>2 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 1/0/0=>1 for source raster: Online connectivity is disabled.")));
+// EXPECT_EQ(1u, flo->count(FixtureLog::Message(EventSeverity::Error, Event::Style, -1,
+// "Failed to load tile 0/0/0=>0 for source raster: Online connectivity is disabled.")));
+// auto unchecked = flo->unchecked();
+// EXPECT_TRUE(unchecked.empty()) << unchecked;
}