summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2015-06-16 13:32:25 +0300
committerThiago Marcos P. Santos <thiago@mapbox.com>2015-06-16 14:09:51 +0300
commit4623baa1a5f549f90e5066672890714647d0fb1a (patch)
treefdb2dba0012123f7e5c0b94acf1013be14ccd455 /test
parent57c34747a24bc2c3e5b27e17c1991d6b9a4aa68c (diff)
downloadqtlocation-mapboxgl-4623baa1a5f549f90e5066672890714647d0fb1a.tar.gz
Add tests for renderStill() misuse
Diffstat (limited to 'test')
-rw-r--r--test/api/api_misuse.cpp60
-rw-r--r--test/test.gypi3
2 files changed, 62 insertions, 1 deletions
diff --git a/test/api/api_misuse.cpp b/test/api/api_misuse.cpp
new file mode 100644
index 0000000000..a98cf04101
--- /dev/null
+++ b/test/api/api_misuse.cpp
@@ -0,0 +1,60 @@
+#include "../fixtures/util.hpp"
+#include "../fixtures/fixture_log_observer.hpp"
+
+#include <mbgl/map/map.hpp>
+#include <mbgl/map/still_image.hpp>
+#include <mbgl/platform/default/headless_display.hpp>
+#include <mbgl/platform/default/headless_view.hpp>
+#include <mbgl/storage/default_file_source.hpp>
+#include <mbgl/util/exception.hpp>
+
+#include <future>
+
+using namespace mbgl;
+
+TEST(API, RenderWithoutCallback) {
+ FixtureLogObserver* log = new FixtureLogObserver();
+ Log::setObserver(std::unique_ptr<Log::Observer>(log));
+
+ auto display = std::make_shared<mbgl::HeadlessDisplay>();
+ HeadlessView view(display);
+ DefaultFileSource fileSource(nullptr);
+
+ std::unique_ptr<Map> map = std::make_unique<Map>(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<mbgl::HeadlessDisplay>();
+ HeadlessView view(display);
+ DefaultFileSource fileSource(nullptr);
+
+ Map map(view, fileSource, MapMode::Still);
+ map.resize(128, 512, 1);
+
+ std::promise<std::exception_ptr> promise;
+ map.renderStill([&promise](std::exception_ptr error, std::unique_ptr<const StillImage>) {
+ 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 42dc04448a..374e81344d 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',