#include "../fixtures/util.hpp" #include "../fixtures/fixture_log_observer.hpp" #include #include #include #include #include #include using namespace mbgl; TEST(API, RenderWithoutCallback) { FixtureLogObserver* log = new FixtureLogObserver(); Log::setObserver(std::unique_ptr(log)); auto display = std::make_shared(); HeadlessView view(display, 1); view.resize(128, 512); OnlineFileSource fileSource(nullptr); std::unique_ptr map = std::make_unique(view, fileSource, MapMode::Still); map->renderStill(nullptr); // Force Map thread to join. map.reset(); const FixtureLogObserver::LogMessage logMessage { EventSeverity::Error, Event::General, int64_t(-1), "StillImageCallback not set", }; EXPECT_EQ(log->count(logMessage), 1u); } TEST(API, RenderWithoutStyle) { auto display = std::make_shared(); HeadlessView view(display, 1); view.resize(128, 512); OnlineFileSource fileSource(nullptr); Map map(view, fileSource, MapMode::Still); std::promise promise; map.renderStill([&promise](std::exception_ptr error, PremultipliedImage&&) { promise.set_value(error); }); try { std::rethrow_exception(promise.get_future().get()); } catch (const util::MisuseException& ex) { EXPECT_EQ(std::string(ex.what()), "Map doesn't have a style"); } catch (const std::exception&) { EXPECT_TRUE(false) << "Unhandled exception."; } }