diff options
-rw-r--r-- | include/mbgl/map/map_observer.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/map/map.cpp | 4 | ||||
-rw-r--r-- | test/map/map.test.cpp | 34 |
3 files changed, 17 insertions, 24 deletions
diff --git a/include/mbgl/map/map_observer.hpp b/include/mbgl/map/map_observer.hpp index e0a734cf5b..7f5073ba27 100644 --- a/include/mbgl/map/map_observer.hpp +++ b/include/mbgl/map/map_observer.hpp @@ -1,6 +1,7 @@ #pragma once #include <cstdint> +#include <exception> namespace mbgl { @@ -26,7 +27,7 @@ public: virtual void onCameraDidChange(CameraChangeMode) {} virtual void onWillStartLoadingMap() {} virtual void onDidFinishLoadingMap() {} - virtual void onDidFailLoadingMap() {} + virtual void onDidFailLoadingMap(std::exception_ptr) {} virtual void onWillStartRenderingFrame() {} virtual void onDidFinishRenderingFrame(RenderMode) {} virtual void onWillStartRenderingMap() {} diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 39aa5a2d07..32fbd3f0c4 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -1102,8 +1102,8 @@ void Map::Impl::onStyleLoaded() { observer.onDidFinishLoadingStyle(); } -void Map::Impl::onStyleError(std::exception_ptr) { - observer.onDidFailLoadingMap(); +void Map::Impl::onStyleError(std::exception_ptr error) { + observer.onDidFailLoadingMap(error); } void Map::Impl::onResourceError(std::exception_ptr error) { diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp index c5d579be3a..2d995fc599 100644 --- a/test/map/map.test.cpp +++ b/test/map/map.test.cpp @@ -28,15 +28,7 @@ class BackendTest : public HeadlessBackend { public: BackendTest() : HeadlessBackend(test::sharedDisplay()) {} - void setDidFailLoadingMapCallback(std::function<void()>&& callback) { - didFailLoadingMapCallback = std::move(callback); - } - - void setDidFinishLoadingStyleCallback(std::function<void()>&& callback) { - didFinishLoadingStyleCallback = std::move(callback); - } - - void onDidFailLoadingMap() final { + void onDidFailLoadingMap(std::exception_ptr) final { if (didFailLoadingMapCallback) { didFailLoadingMapCallback(); } @@ -113,9 +105,9 @@ TEST(Map, SetStyleInvalidJSON) { Log::setObserver(std::make_unique<FixtureLogObserver>()); bool fail = false; - test.backend.setDidFailLoadingMapCallback([&]() { + test.backend.didFailLoadingMapCallback = [&]() { fail = true; - }); + }; { Map map(test.backend, test.view.getSize(), 1, test.fileSource, test.threadPool, @@ -144,9 +136,9 @@ TEST(Map, SetStyleInvalidURL) { return response; }; - test.backend.setDidFailLoadingMapCallback([&]() { + test.backend.didFailLoadingMapCallback = [&]() { test.runLoop.stop(); - }); + }; Map map(test.backend, test.view.getSize(), 1, test.fileSource, test.threadPool, MapMode::Still); map.setStyleURL("mapbox://bar"); @@ -257,9 +249,9 @@ TEST(Map, StyleLoadedSignal) { // The map should emit a signal on style loaded bool emitted = false; - test.backend.setDidFinishLoadingStyleCallback([&]() { + test.backend.didFinishLoadingStyleCallback = [&]() { emitted = true; - }); + }; map.setStyleJSON(util::read_file("test/fixtures/api/empty.json")); EXPECT_TRUE(emitted); @@ -277,9 +269,9 @@ TEST(Map, TEST_REQUIRES_SERVER(StyleNetworkErrorRetry)) { Map map(test.backend, test.view.getSize(), 1, fileSource, test.threadPool, MapMode::Still); map.setStyleURL("http://127.0.0.1:3000/style-fail-once-500"); - test.backend.setDidFinishLoadingStyleCallback([&]() { + test.backend.didFinishLoadingStyleCallback = [&]() { test.runLoop.stop(); - }); + }; test.runLoop.run(); } @@ -295,15 +287,15 @@ TEST(Map, TEST_REQUIRES_SERVER(StyleNotFound)) { util::Timer timer; // Not found errors should not trigger a retry like other errors. - test.backend.setDidFinishLoadingStyleCallback([&]() { + test.backend.didFinishLoadingStyleCallback = [&]() { FAIL() << "Should not retry on not found!"; - }); + }; - test.backend.setDidFailLoadingMapCallback([&]() { + test.backend.didFailLoadingMapCallback = [&]() { timer.start(Milliseconds(1100), 0s, [&] { test.runLoop.stop(); }); - }); + }; test.runLoop.run(); |