summaryrefslogtreecommitdiff
path: root/test/style
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2016-08-13 11:30:15 -0700
committerMinh Nguyễn <mxn@1ec5.org>2016-09-26 11:37:06 -0700
commitf30765254807bedab0873a289a118906ef74b754 (patch)
tree0988f52d73931b05718642c218c8241421882eb8 /test/style
parent78af55f30a37165c960c90db9a96801effc850f6 (diff)
downloadqtlocation-mapboxgl-f30765254807bedab0873a289a118906ef74b754.tar.gz
[core] Source-driven attribution
Implemented observer callbacks so the style knows when the source’s attribution changes and the map knows when the style’s attribution changes. Also implemented a getter for a tile source’s attribution. Fixes #2723.
Diffstat (limited to 'test/style')
-rw-r--r--test/style/source.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/style/source.cpp b/test/style/source.cpp
index 519ca9288e..859aa82893 100644
--- a/test/style/source.cpp
+++ b/test/style/source.cpp
@@ -342,3 +342,42 @@ TEST(Source, VectorTileCancel) {
test.run();
}
+
+TEST(Source, RasterTileAttribution) {
+ SourceTest test;
+
+ std::string mapboxOSM = ("<a href='https://www.mapbox.com/about/maps/' target='_blank'>&copy; Mapbox</a> "
+ "<a href='http://www.openstreetmap.org/about/' target='_blank'>©️ OpenStreetMap</a>");
+
+ test.fileSource.tileResponse = [&] (const Resource&) {
+ Response response;
+ response.noContent = true;
+ return response;
+ };
+
+ test.fileSource.sourceResponse = [&] (const Resource& resource) {
+ EXPECT_EQ("url", resource.url);
+ Response response;
+ response.data = std::make_unique<std::string>(R"TILEJSON({ "tilejson": "2.1.0", "attribution": ")TILEJSON" +
+ mapboxOSM +
+ R"TILEJSON(", "tiles": [ "tiles" ] })TILEJSON");
+ return response;
+ };
+
+ test.observer.sourceAttributionChanged = [&] (Source&, std::string attribution) {
+ EXPECT_EQ(mapboxOSM, attribution);
+ EXPECT_FALSE(mapboxOSM.find("©️ OpenStreetMap") == std::string::npos);
+ test.end();
+ };
+
+ test.observer.tileError = [&] (Source&, const OverscaledTileID&, std::exception_ptr) {
+ FAIL() << "Should never be called";
+ };
+
+ RasterSource source("source", "url", 512);
+ source.baseImpl->setObserver(&test.observer);
+ source.baseImpl->loadDescription(test.fileSource);
+ source.baseImpl->updateTiles(test.updateParameters);
+
+ test.run();
+}