From e4201e207c3a6b33da64fdc2f9a00ec08586dc09 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 21 Jun 2017 08:11:35 -0700 Subject: [tests] Add tests for MapObserver::on{WillStart,DidFinish}LoadingMap --- test/map/map.test.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'test') diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp index be78c8714b..0ff828ce40 100644 --- a/test/map/map.test.cpp +++ b/test/map/map.test.cpp @@ -28,6 +28,26 @@ class BackendTest : public HeadlessBackend { public: BackendTest() : HeadlessBackend(test::sharedDisplay()) {} + void invalidate() { + if (invalidateCallback) { + invalidateCallback(); + } + } + + std::function invalidateCallback; + + void onWillStartLoadingMap() final { + if (onWillStartLoadingMapCallback) { + onWillStartLoadingMapCallback(); + } + } + + void onDidFinishLoadingMap() final { + if (onDidFinishLoadingMapCallback) { + onDidFinishLoadingMapCallback(); + } + } + void onDidFailLoadingMap(std::exception_ptr) final { if (didFailLoadingMapCallback) { didFailLoadingMapCallback(); @@ -40,6 +60,8 @@ public: } } + std::function onWillStartLoadingMapCallback; + std::function onDidFinishLoadingMapCallback; std::function didFailLoadingMapCallback; std::function didFinishLoadingStyleCallback; }; @@ -277,6 +299,34 @@ TEST(Map, StyleEarlyMutation) { EXPECT_NE(nullptr, map.getLayer("water")); } +TEST(Map, MapLoadingSignal) { + MapTest test; + Map map(test.backend, test.view.getSize(), 1, test.fileSource, test.threadPool, MapMode::Still); + + bool emitted = false; + test.backend.onWillStartLoadingMapCallback = [&]() { + emitted = true; + }; + map.setStyleJSON(util::read_file("test/fixtures/api/empty.json")); + EXPECT_TRUE(emitted); +} + +TEST(Map, MapLoadedSignal) { + MapTest test; + Map map(test.backend, test.view.getSize(), 1, test.fileSource, test.threadPool, MapMode::Continuous); + + test.backend.onDidFinishLoadingMapCallback = [&]() { + test.runLoop.stop(); + }; + + test.backend.invalidateCallback = [&]() { + map.render(test.view); + }; + + map.setStyleJSON(util::read_file("test/fixtures/api/empty.json")); + test.runLoop.run(); +} + TEST(Map, StyleLoadedSignal) { MapTest test; Map map(test.backend, test.view.getSize(), 1, test.fileSource, test.threadPool, MapMode::Still); -- cgit v1.2.1