summaryrefslogtreecommitdiff
path: root/test/storage/offline_database.test.cpp
diff options
context:
space:
mode:
authorAsheem Mamoowala <asheem.mamoowala@mapbox.com>2018-08-21 17:41:22 -0700
committerAsheem Mamoowala <asheem.mamoowala@mapbox.com>2018-08-24 09:42:36 -0700
commit383b13c26c2603efd26536240aca715cbb8d531c (patch)
treef3d87ac216ee16480c0c90a341baee4873754a90 /test/storage/offline_database.test.cpp
parent7997c3f744b4e04c460fcf32cc96d3ebe09eeb67 (diff)
downloadqtlocation-mapboxgl-383b13c26c2603efd26536240aca715cbb8d531c.tar.gz
Enforce Offline tile limit when merging sideloaded databasesupstream/merge-offlinedb
Diffstat (limited to 'test/storage/offline_database.test.cpp')
-rw-r--r--test/storage/offline_database.test.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/storage/offline_database.test.cpp b/test/storage/offline_database.test.cpp
index 7511924d80..41eae6f103 100644
--- a/test/storage/offline_database.test.cpp
+++ b/test/storage/offline_database.test.cpp
@@ -1266,6 +1266,37 @@ TEST(OfflineDatabase, MergeDatabaseWithMultipleRegionsWithOverlap) {
}
}
+TEST(OfflineDatabase, MergeDatabaseWithSingleRegionTooManyNewTiles) {
+ FixtureLog log;
+ util::deleteFile(filename_sideload);
+ util::copyFile(filename_sideload, "test/fixtures/offline_database/sideload_sat_multiple.db");
+
+ OfflineDatabase db(":memory:");
+ db.setOfflineMapboxTileCountLimit(1);
+
+ auto result = db.mergeDatabase(filename_sideload);
+ EXPECT_FALSE(result);
+ EXPECT_EQ(1u, log.count({ EventSeverity::Error, Event::Database, -1, "Mapbox tile limit exceeded" }));
+ EXPECT_EQ(0u, log.uncheckedCount());
+}
+
+TEST(OfflineDatabase, MergeDatabaseWithSingleRegionTooManyExistingTiles) {
+ FixtureLog log;
+ deleteDatabaseFiles();
+ util::deleteFile(filename_sideload);
+ util::copyFile(filename, "test/fixtures/offline_database/sideload_sat_multiple.db");
+ util::copyFile(filename_sideload, "test/fixtures/offline_database/satellite_test.db");
+
+ OfflineDatabase db(filename);
+ db.setOfflineMapboxTileCountLimit(2);
+
+ auto result = db.mergeDatabase(filename_sideload);
+ EXPECT_THROW(std::rethrow_exception(result.error()), MapboxTileLimitExceededException);
+
+ EXPECT_EQ(1u, log.count({ EventSeverity::Error, Event::Database, -1, "Mapbox tile limit exceeded" }));
+ EXPECT_EQ(0u, log.uncheckedCount());
+}
+
TEST(OfflineDatabase, MergeDatabaseWithInvalidPath) {
FixtureLog log;