summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-03-19 22:14:12 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-03-20 11:43:59 +0200
commit8bf841a9513c28057fcedb0dab032bb00016b90c (patch)
treeb429559bcd8f8e20e60b6e89ce39d34171e7eb41 /test
parentcb1d5053b09e91df72b655041b6995d23f9f0161 (diff)
downloadqtlocation-mapboxgl-8bf841a9513c28057fcedb0dab032bb00016b90c.tar.gz
[core] Render::clearData clears fonts
Diffstat (limited to 'test')
-rw-r--r--test/map/map.test.cpp46
1 files changed, 24 insertions, 22 deletions
diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp
index baf1cd03a6..f582a662e0 100644
--- a/test/map/map.test.cpp
+++ b/test/map/map.test.cpp
@@ -1349,42 +1349,44 @@ TEST(Map, TEST_REQUIRES_SERVER(ExpiredSpriteSheet)) {
}
namespace {
-constexpr auto styleJSON = R"STYLE({
- "sources": {
- "a": { "type": "vector", "tiles": [ "a/{z}/{x}/{y}" ] }
- },
- "layers": [{
- "id": "a",
- "type": "fill",
- "source": "a",
- "source-layer": "a"
- }]
-})STYLE";
+
+int requestsCount = 0;
+auto makeResponse(const std::string& file, bool incrementCounter = false) {
+ return [file, incrementCounter](const Resource&) {
+ if (incrementCounter) ++requestsCount;
+ Response result;
+ result.data = std::make_shared<std::string>(util::read_file("test/fixtures/resources/" + file));
+ return result;
+ };
}
+} // namespace
+
TEST(Map, KeepRenderData) {
MapTest<> test;
- int requestsCount = 0;
- test.fileSource->tileResponse = [&](const Resource&) {
- ++requestsCount;
- Response res;
- res.noContent = true;
- return res;
- };
+
+ test.fileSource->tileResponse = makeResponse("vector.tile", true);
+ test.fileSource->glyphsResponse = makeResponse("glyphs.pbf", true);
+ // The resources below belong to style and requested on style re-load.
+ test.fileSource->styleResponse = makeResponse("style_vector.json");
+ test.fileSource->sourceResponse = makeResponse("source_vector.json");
+ test.fileSource->spriteJSONResponse = makeResponse("sprite.json");
+ test.fileSource->spriteImageResponse = makeResponse("sprite.png");
+
test.map.jumpTo(CameraOptions().withZoom(10));
+ test.map.getStyle().loadURL("mapbox://streets");
const int iterations = 3;
+ const int resourcesCount = 4 /*tiles*/ + 3 /*fonts*/;
// Keep render data.
for (int i = 1; i <= iterations; ++i) {
- test.map.getStyle().loadJSON(styleJSON);
test.frontend.render(test.map);
- EXPECT_EQ(4, requestsCount);
+ EXPECT_EQ(resourcesCount, requestsCount);
}
requestsCount = 0;
// Clear render data.
for (int i = 1; i <= iterations; ++i) {
test.frontend.getRenderer()->clearData();
- test.map.getStyle().loadJSON(styleJSON);
test.frontend.render(test.map);
- EXPECT_EQ(4 * i, requestsCount);
+ EXPECT_EQ(resourcesCount * i, requestsCount);
}
} \ No newline at end of file