[core] Use variant<std::string, Tileset> in TileSource

A tile source can either specify a URL to TileJSON, or inline TileJSON.
This commit is contained in:
John Firebaugh
2016-06-14 12:36:46 -07:00
parent a56f65a4d8
commit 87edff4047
13 changed files with 299 additions and 264 deletions

View File

@@ -0,0 +1,37 @@
#include <mbgl/test/util.hpp>
#include <mbgl/style/tile_source.hpp>
#include <mbgl/util/io.hpp>
using namespace mbgl;
using namespace mbgl::style;
TEST(TileSource, ParseTileJSONRaster) {
auto result = TileSource::parseTileJSON(
util::read_file("test/fixtures/style_parser/tilejson.raster.json"),
"mapbox://mapbox.satellite",
SourceType::Raster,
256);
EXPECT_EQ(0, result.zoomRange.min);
EXPECT_EQ(15, result.zoomRange.max);
EXPECT_EQ("attribution", result.attribution);
#if !defined(__ANDROID__) && !defined(__APPLE__)
EXPECT_EQ("mapbox://tiles/mapbox.satellite/{z}/{x}/{y}{ratio}.webp", result.tiles[0]);
#else
EXPECT_EQ("mapbox://tiles/mapbox.satellite/{z}/{x}/{y}{ratio}.png", result.tiles[0]);
#endif
}
TEST(TileSource, ParseTileJSONVector) {
auto result = TileSource::parseTileJSON(
util::read_file("test/fixtures/style_parser/tilejson.vector.json"),
"mapbox://mapbox.streets",
SourceType::Vector,
256);
EXPECT_EQ(0, result.zoomRange.min);
EXPECT_EQ(15, result.zoomRange.max);
EXPECT_EQ("attribution", result.attribution);
EXPECT_EQ("mapbox://tiles/mapbox.streets/{z}/{x}/{y}.vector.pbf", result.tiles[0]);
}