diff options
-rw-r--r-- | test/fixtures/map/add_layer/expected.png | bin | 0 -> 1685 bytes | |||
-rw-r--r-- | test/fixtures/map/remove_layer/expected.png | bin | 0 -> 1238 bytes | |||
-rw-r--r-- | test/map/map.cpp | 48 |
3 files changed, 38 insertions, 10 deletions
diff --git a/test/fixtures/map/add_layer/expected.png b/test/fixtures/map/add_layer/expected.png Binary files differnew file mode 100644 index 0000000000..8fa3f0f5db --- /dev/null +++ b/test/fixtures/map/add_layer/expected.png diff --git a/test/fixtures/map/remove_layer/expected.png b/test/fixtures/map/remove_layer/expected.png Binary files differnew file mode 100644 index 0000000000..04f8682f88 --- /dev/null +++ b/test/fixtures/map/remove_layer/expected.png diff --git a/test/map/map.cpp b/test/map/map.cpp index 4ee44ca613..c6f6843a0d 100644 --- a/test/map/map.cpp +++ b/test/map/map.cpp @@ -8,15 +8,20 @@ #include <mbgl/storage/default_file_source.hpp> #include <mbgl/util/io.hpp> #include <mbgl/util/run_loop.hpp> +#include <mbgl/layer/background_layer.hpp> using namespace mbgl; using namespace std::literals::string_literals; -TEST(Map, Offline) { +struct MapTest { util::RunLoop runLoop; + std::shared_ptr<HeadlessDisplay> display { std::make_shared<mbgl::HeadlessDisplay>() }; + HeadlessView view { display, 1 }; + StubFileSource fileSource; +}; - auto display = std::make_shared<mbgl::HeadlessDisplay>(); - HeadlessView view(display, 1); +TEST(Map, Offline) { + MapTest test; DefaultFileSource fileSource(":memory:", "."); auto expiredItem = [] (const std::string& path) { @@ -35,7 +40,7 @@ TEST(Map, Offline) { fileSource.put(Resource::glyphs(prefix + "{fontstack}/{range}.pbf", {{"Helvetica"}}, {0, 255}), expiredItem("glyph.pbf")); NetworkStatus::Set(NetworkStatus::Status::Offline); - Map map(view, fileSource, MapMode::Still); + Map map(test.view, fileSource, MapMode::Still); map.setStyleURL(prefix + "style.json"); test::checkImage("test/fixtures/map/offline", @@ -47,13 +52,36 @@ TEST(Map, Offline) { } TEST(Map, DoubleStyleLoad) { - util::RunLoop runLoop; + MapTest test; - std::shared_ptr<HeadlessDisplay> display = std::make_shared<HeadlessDisplay>(); - HeadlessView view(display, 1, 512, 512); - StubFileSource fileSource; - - Map map(view, fileSource); + Map map(test.view, test.fileSource, MapMode::Still); map.setStyleJSON("", ""); map.setStyleJSON("", ""); } + +TEST(Map, AddLayer) { + MapTest test; + + Map map(test.view, test.fileSource, MapMode::Still); + map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"), ""); + + auto layer = std::make_unique<BackgroundLayer>("background"); + layer->setBackgroundColor({{{ 1, 0, 0, 1 }}}); + map.addLayer(std::move(layer)); + + test::checkImage("test/fixtures/map/add_layer", test::render(map)); +} + +TEST(Map, RemoveLayer) { + MapTest test; + + Map map(test.view, test.fileSource, MapMode::Still); + map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"), ""); + + auto layer = std::make_unique<BackgroundLayer>("background"); + layer->setBackgroundColor({{{ 1, 0, 0, 1 }}}); + map.addLayer(std::move(layer)); + map.removeLayer("background"); + + test::checkImage("test/fixtures/map/remove_layer", test::render(map)); +} |