summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <tmpsantos@gmail.com>2019-06-10 19:20:57 +0300
committerThiago Marcos P. Santos <tmpsantos@gmail.com>2019-06-13 22:28:16 +0300
commit4b1f9a3b3fbbb862b8d6a3bd31ae27c95da241f0 (patch)
treeee924ac22300f6d17675a01a78d9982890b163e3
parentbf0be56946c1a77ee1cbaa456607593fdbe39e80 (diff)
downloadqtlocation-mapboxgl-4b1f9a3b3fbbb862b8d6a3bd31ae27c95da241f0.tar.gz
[tests] Add unit test for clearing the ambient cache
-rw-r--r--test/storage/offline_database.test.cpp50
1 files changed, 39 insertions, 11 deletions
diff --git a/test/storage/offline_database.test.cpp b/test/storage/offline_database.test.cpp
index a5de89d670..a0adbb4207 100644
--- a/test/storage/offline_database.test.cpp
+++ b/test/storage/offline_database.test.cpp
@@ -29,6 +29,17 @@ static void deleteDatabaseFiles() {
util::deleteFile(filename + "-journal"s);
}
+static std::shared_ptr<std::string> randomString(size_t size) {
+ auto result = std::make_shared<std::string>(size, 0);
+ std::mt19937 random;
+
+ for (size_t i = 0; i < size; i++) {
+ (*result)[i] = random();
+ }
+
+ return result;
+}
+
static FixtureLog::Message error(ResultCode code, const char* message) {
return { EventSeverity::Error, Event::Database, static_cast<int64_t>(code), message };
}
@@ -593,6 +604,34 @@ TEST(OfflineDatabase, Invalidate) {
EXPECT_EQ(0u, log.uncheckedCount());
}
+TEST(OfflineDatabase, ClearTileCache) {
+ FixtureLog log;
+ deleteDatabaseFiles();
+
+ {
+ OfflineDatabase dbCreate(filename);
+ }
+
+ size_t initialSize = util::read_file(filename).size();
+
+ {
+ Response response;
+ response.data = randomString(.5 * 1024 * 1024);
+
+ OfflineDatabase db(filename);
+
+ for (unsigned i = 0; i < 100; ++i) {
+ const Resource tile = Resource::tile("mapbox://tile_" + std::to_string(i), 1, 0, 0, 0, Tileset::Scheme::XYZ);
+ db.put(tile, response);
+ }
+
+ db.clearTileCache();
+ }
+
+ EXPECT_EQ(initialSize, util::read_file(filename).size());
+ EXPECT_EQ(0u, log.uncheckedCount());
+}
+
TEST(OfflineDatabase, CreateRegionInfiniteMaxZoom) {
FixtureLog log;
OfflineDatabase db(":memory:");
@@ -638,17 +677,6 @@ TEST(OfflineDatabase, TEST_REQUIRES_WRITE(ConcurrentUse)) {
EXPECT_EQ(0u, log.uncheckedCount());
}
-static std::shared_ptr<std::string> randomString(size_t size) {
- auto result = std::make_shared<std::string>(size, 0);
- std::mt19937 random;
-
- for (size_t i = 0; i < size; i++) {
- (*result)[i] = random();
- }
-
- return result;
-}
-
TEST(OfflineDatabase, PutReturnsSize) {
FixtureLog log;
OfflineDatabase db(":memory:");