Rewrite CustomSpriteImages test

Previous test was invalid; Map::setSprite is only for annotations.
This commit is contained in:
John Firebaugh
2015-11-18 15:16:57 -08:00
parent db1c4f2cc2
commit f2772309fe
4 changed files with 14 additions and 88 deletions

View File

@@ -2,6 +2,7 @@
#include <mbgl/annotation/point_annotation.hpp>
#include <mbgl/annotation/shape_annotation.hpp>
#include <mbgl/sprite/sprite_image.hpp>
#include <mbgl/map/map.hpp>
#include <mbgl/map/still_image.hpp>
#include <mbgl/platform/default/headless_display.hpp>
@@ -190,3 +191,16 @@ TEST(Annotations, SwitchStyle) {
util::write_file("test/output/switch_style.png", renderPNG(map));
}
TEST(Annotations, CustomIcon) {
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"), "");
map.setSprite("cafe", std::make_shared<SpriteImage>(12, 12, 1, std::string(12 * 12 * 4, '\xFF')));
map.addPointAnnotation(PointAnnotation({ 0, 0 }, "cafe"));
util::write_file("test/output/custom_icon.png", renderPNG(map));
}

View File

@@ -1,26 +0,0 @@
{
"version": 8,
"name": "POIs",
"sources": {
"mapbox": {
"type": "vector",
"url": "asset://TEST_DATA/fixtures/tiles/streets.json"
}
},
"layers": [{
"id": "background",
"type": "background",
"paint": {
"background-color": "#CCCCCC"
}
}, {
"id": "pois",
"type": "symbol",
"source": "mapbox",
"source-layer": "poi_label",
"filter": ["in", "maki", "cafe", "bakery"],
"layout": {
"icon-image": "{maki}"
}
}]
}

View File

@@ -1,61 +0,0 @@
#include "../fixtures/util.hpp"
#include "../fixtures/fixture_log_observer.hpp"
#include <mbgl/map/map.hpp>
#include <mbgl/map/still_image.hpp>
#include <mbgl/util/image.hpp>
#include <mbgl/sprite/sprite_image.hpp>
#include <mbgl/util/io.hpp>
#include <mbgl/platform/default/headless_view.hpp>
#include <mbgl/platform/default/headless_display.hpp>
#include <mbgl/storage/default_file_source.hpp>
#include <future>
using namespace mbgl;
TEST(Sprite, CustomSpriteImages) {
FixtureLog log;
auto display = std::make_shared<mbgl::HeadlessDisplay>();
HeadlessView view(display, 1);
view.resize(256, 256);
DefaultFileSource fileSource(nullptr);
const auto style = util::read_file("test/fixtures/headless/pois.json");
Map map(view, fileSource, MapMode::Still);
map.setLatLngZoom(LatLng{ 52.499167, 13.418056 }, 15);
map.setStyleJSON(style, "");
map.setSprite("cafe",
std::make_shared<SpriteImage>(12, 12, 1, std::string(12 * 12 * 4, '\xFF')));
std::promise<std::unique_ptr<const StillImage>> promise;
map.renderStill([&promise](std::exception_ptr error, std::unique_ptr<const StillImage> image) {
if (error) {
promise.set_exception(error);
} else {
promise.set_value(std::move(image));
}
});
auto result = promise.get_future().get();
ASSERT_EQ(256, result->width);
ASSERT_EQ(256, result->height);
EXPECT_EQ(
21u,
log.count({
EventSeverity::Info, Event::Sprite, int64_t(-1), "Can't find sprite named 'bakery'",
}));
// const size_t bytes = result->width * result->height * 4;
// const auto hash = test::crc64(reinterpret_cast<const char*>(result->pixels.get()), bytes);
// EXPECT_EQ(0xC40A4BCD76AEC564u, hash) << std::hex << hash;
// const std::string png = util::compress_png(result->width, result->height,
// result->pixels.get());
// util::write_file("test/fixtures/headless/1.actual.png", png);
}

View File

@@ -90,7 +90,6 @@
'sprite/sprite_image.cpp',
'sprite/sprite_parser.cpp',
'sprite/sprite_store.cpp',
'sprite/custom_sprites.cpp',
],
'libraries': [
'<@(gtest_static_libs)',