From 4623baa1a5f549f90e5066672890714647d0fb1a Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Tue, 16 Jun 2015 13:32:25 +0300 Subject: [PATCH] Add tests for renderStill() misuse --- test/api/api_misuse.cpp | 60 +++++++++++++++++++++++++++++++++++++++++ test/test.gypi | 3 ++- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 test/api/api_misuse.cpp diff --git a/test/api/api_misuse.cpp b/test/api/api_misuse.cpp new file mode 100644 index 000000000..a98cf0410 --- /dev/null +++ b/test/api/api_misuse.cpp @@ -0,0 +1,60 @@ +#include "../fixtures/util.hpp" +#include "../fixtures/fixture_log_observer.hpp" + +#include +#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); + DefaultFileSource fileSource(nullptr); + + std::unique_ptr map = std::make_unique(view, fileSource, MapMode::Still); + map->resize(128, 512, 1); + 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); + DefaultFileSource fileSource(nullptr); + + Map map(view, fileSource, MapMode::Still); + map.resize(128, 512, 1); + + std::promise promise; + map.renderStill([&promise](std::exception_ptr error, std::unique_ptr) { + 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."; + } +} diff --git a/test/test.gypi b/test/test.gypi index 42dc04448..374e81344 100644 --- a/test/test.gypi +++ b/test/test.gypi @@ -35,8 +35,9 @@ 'fixtures/fixture_log_observer.hpp', 'fixtures/fixture_log_observer.cpp', - 'api/set_style.cpp', + 'api/api_misuse.cpp', 'api/repeated_render.cpp', + 'api/set_style.cpp', 'headless/headless.cpp',