diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2015-09-22 17:32:39 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2015-09-28 14:10:00 -0700 |
commit | 931c56a5967f8183f990a7c5c52874ec1a00fd3a (patch) | |
tree | 960dae80fd0ecc9737d54040f65293d22a41cc55 /test | |
parent | 028abaab00f2ff3a19c67366c3a9f8c803e27423 (diff) | |
download | qtlocation-mapboxgl-931c56a5967f8183f990a7c5c52874ec1a00fd3a.tar.gz |
Add some shape annotation tests
Diffstat (limited to 'test')
-rw-r--r-- | test/api/annotations.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/api/annotations.cpp b/test/api/annotations.cpp index 39862b1069..a9ebb4ab01 100644 --- a/test/api/annotations.cpp +++ b/test/api/annotations.cpp @@ -1,6 +1,8 @@ #include "../fixtures/util.hpp" #include <mbgl/annotation/point_annotation.hpp> +#include <mbgl/annotation/shape_annotation.hpp> +#include <mbgl/style/style_properties.hpp> #include <mbgl/map/map.hpp> #include <mbgl/map/still_image.hpp> #include <mbgl/platform/default/headless_display.hpp> @@ -32,3 +34,64 @@ TEST(Annotations, PointAnnotation) { const std::string png = util::compress_png(result->width, result->height, result->pixels.get()); util::write_file("test/output/point_annotation.png", png); } + +TEST(Annotations, LineAnnotation) { + using namespace mbgl; + + auto display = std::make_shared<mbgl::HeadlessDisplay>(); + HeadlessView view(display, 1); + DefaultFileSource fileSource(nullptr); + + Map map(view, fileSource, MapMode::Still); + map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"), ""); + + AnnotationSegments segments = {{ {{ { 0, 0 }, { 45, 45 } }} }}; + + LineProperties lineProperties; + lineProperties.color = {{ 255, 0, 0, 1 }}; + lineProperties.width = 5; + + StyleProperties styleProperties; + styleProperties.set<LineProperties>(lineProperties); + + map.addShapeAnnotation(ShapeAnnotation(segments, styleProperties)); + + std::promise<std::unique_ptr<const StillImage>> promise; + map.renderStill([&promise](std::exception_ptr, std::unique_ptr<const StillImage> image) { + promise.set_value(std::move(image)); + }); + + auto result = promise.get_future().get(); + const std::string png = util::compress_png(result->width, result->height, result->pixels.get()); + util::write_file("test/output/line_annotation.png", png); +} + +TEST(Annotations, FillAnnotation) { + using namespace mbgl; + + auto display = std::make_shared<mbgl::HeadlessDisplay>(); + HeadlessView view(display, 1); + DefaultFileSource fileSource(nullptr); + + Map map(view, fileSource, MapMode::Still); + map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"), ""); + + AnnotationSegments segments = {{ {{ { 0, 0 }, { 0, 45 }, { 45, 45 }, { 45, 0 } }} }}; + + FillProperties fillProperties; + fillProperties.fill_color = {{ 255, 0, 0, 1 }}; + + StyleProperties styleProperties; + styleProperties.set<FillProperties>(fillProperties); + + map.addShapeAnnotation(ShapeAnnotation(segments, styleProperties)); + + std::promise<std::unique_ptr<const StillImage>> promise; + map.renderStill([&promise](std::exception_ptr, std::unique_ptr<const StillImage> image) { + promise.set_value(std::move(image)); + }); + + auto result = promise.get_future().get(); + const std::string png = util::compress_png(result->width, result->height, result->pixels.get()); + util::write_file("test/output/fill_annotation.png", png); +} |