summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/fixtures/map/add_layer/expected.pngbin0 -> 1685 bytes
-rw-r--r--test/fixtures/map/remove_layer/expected.pngbin0 -> 1238 bytes
-rw-r--r--test/map/map.cpp48
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
new file mode 100644
index 0000000000..8fa3f0f5db
--- /dev/null
+++ b/test/fixtures/map/add_layer/expected.png
Binary files differ
diff --git a/test/fixtures/map/remove_layer/expected.png b/test/fixtures/map/remove_layer/expected.png
new file mode 100644
index 0000000000..04f8682f88
--- /dev/null
+++ b/test/fixtures/map/remove_layer/expected.png
Binary files differ
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));
+}