don't throw an exception in the map thread for bad styles

This commit is contained in:
Konstantin Käfer
2015-04-16 16:11:40 +02:00
parent 46bf226910
commit 1c920c4332
4 changed files with 35 additions and 22 deletions

32
test/api/set_style.cpp Normal file
View File

@@ -0,0 +1,32 @@
#include "../fixtures/util.hpp"
#include "../fixtures/fixture_log_observer.hpp"
#include <mbgl/map/map.hpp>
#include <mbgl/platform/default/headless_view.hpp>
#include <mbgl/platform/default/headless_display.hpp>
#include <mbgl/storage/default_file_source.hpp>
TEST(API, SetStyle) {
using namespace mbgl;
auto display = std::make_shared<mbgl::HeadlessDisplay>();
HeadlessView view(display);
DefaultFileSource fileSource(nullptr);
Log::setObserver(util::make_unique<FixtureLogObserver>());
Map map(view, fileSource);
map.start(Map::Mode::Static);
map.setStyleJSON("invalid", "test/suite");
map.stop();
auto observer = Log::removeObserver();
auto flo = dynamic_cast<FixtureLogObserver*>(observer.get());
EXPECT_EQ(1ul, flo->count({ EventSeverity::Error, Event::ParseStyle, -1,
"Error parsing style JSON at 0: Expect either an object or array at root" }));
EXPECT_TRUE(flo->unchecked().empty());
}