From d4f41364140cc37820f9a9bbff58e5e124097469 Mon Sep 17 00:00:00 2001 From: Asheem Mamoowala Date: Tue, 21 Aug 2018 17:41:22 -0700 Subject: Enforce Offline tile limit when merging sideloaded databases --- test/storage/offline_database.test.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'test/storage') 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; -- cgit v1.2.1