diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2018-08-21 17:41:22 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2018-08-24 09:42:36 -0700 |
commit | 383b13c26c2603efd26536240aca715cbb8d531c (patch) | |
tree | f3d87ac216ee16480c0c90a341baee4873754a90 /test/storage/offline_database.test.cpp | |
parent | 7997c3f744b4e04c460fcf32cc96d3ebe09eeb67 (diff) | |
download | qtlocation-mapboxgl-upstream/merge-offlinedb.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.cpp | 31 |
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; |