summaryrefslogtreecommitdiff
path: root/test/storage
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-04-27 12:10:00 -0700
committerMinh Nguyễn <mxn@1ec5.org>2016-04-27 13:41:29 -0700
commitb39f22e6b6bbea745be5bbac700040001af86baa (patch)
tree5d9e2aaa4f1b63c7e39c0883aa5e0540b33a59b6 /test/storage
parenta706a2a48d6ca2076c9c81a0cb0c088ae50d1496 (diff)
downloadqtlocation-mapboxgl-b39f22e6b6bbea745be5bbac700040001af86baa.tar.gz
[core] Refactor getRegionCompletedStatus; add completedTileCount; add tests
Diffstat (limited to 'test/storage')
-rw-r--r--test/storage/offline_database.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/storage/offline_database.cpp b/test/storage/offline_database.cpp
index 6833a058a9..0f95e927de 100644
--- a/test/storage/offline_database.cpp
+++ b/test/storage/offline_database.cpp
@@ -449,6 +449,40 @@ TEST(OfflineDatabase, PutFailsWhenEvictionInsuffices) {
EXPECT_FALSE(bool(db.get(Resource::style("http://example.com/big"))));
}
+TEST(OfflineDatabase, GetRegionCompletedStatus) {
+ using namespace mbgl;
+
+ OfflineDatabase db(":memory:");
+ OfflineRegionDefinition definition { "http://example.com/style", LatLngBounds::hull({1, 2}, {3, 4}), 5, 6, 2.0 };
+ OfflineRegionMetadata metadata;
+ OfflineRegion region = db.createRegion(definition, metadata);
+
+ OfflineRegionStatus status1 = db.getRegionCompletedStatus(region.getID());
+ EXPECT_EQ(0, status1.completedResourceCount);
+ EXPECT_EQ(0, status1.completedResourceSize);
+ EXPECT_EQ(0, status1.completedTileCount);
+ EXPECT_EQ(0, status1.completedTileSize);
+
+ Response response;
+ response.data = std::make_shared<std::string>("data");
+
+ uint64_t styleSize = db.putRegionResource(region.getID(), Resource::style("http://example.com/"), response);
+
+ OfflineRegionStatus status2 = db.getRegionCompletedStatus(region.getID());
+ EXPECT_EQ(1, status2.completedResourceCount);
+ EXPECT_EQ(styleSize, status2.completedResourceSize);
+ EXPECT_EQ(0, status2.completedTileCount);
+ EXPECT_EQ(0, status2.completedTileSize);
+
+ uint64_t tileSize = db.putRegionResource(region.getID(), Resource::tile("http://example.com/", 1.0, 0, 0, 0), response);
+
+ OfflineRegionStatus status3 = db.getRegionCompletedStatus(region.getID());
+ EXPECT_EQ(2, status3.completedResourceCount);
+ EXPECT_EQ(styleSize + tileSize, status3.completedResourceSize);
+ EXPECT_EQ(1, status3.completedTileCount);
+ EXPECT_EQ(tileSize, status3.completedTileSize);
+}
+
TEST(OfflineDatabase, OfflineMapboxTileCount) {
using namespace mbgl;