From a3791b2325a4a2e7c38b9a41404f231faf6c3ed5 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 7 Mar 2016 17:54:45 -0800 Subject: [core] Ensure OfflineRegionStatus::downloadState is accurately reported --- test/storage/offline_download.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'test') diff --git a/test/storage/offline_download.cpp b/test/storage/offline_download.cpp index 15980e2fdc..eee0586770 100644 --- a/test/storage/offline_download.cpp +++ b/test/storage/offline_download.cpp @@ -73,6 +73,7 @@ TEST(OfflineDownload, NoSubresources) { observer->statusChangedFn = [&] (OfflineRegionStatus status) { if (status.complete()) { + EXPECT_EQ(OfflineRegionDownloadState::Active, status.downloadState); EXPECT_EQ(1, status.completedResourceCount); EXPECT_EQ(test.size, status.completedResourceSize); EXPECT_TRUE(status.requiredResourceCountIsPrecise); @@ -212,6 +213,7 @@ TEST(OfflineDownload, Activate) { download.setState(OfflineRegionDownloadState::Inactive); OfflineRegionStatus computedStatus = download.getStatus(); + EXPECT_EQ(OfflineRegionDownloadState::Inactive, computedStatus.downloadState); EXPECT_EQ(status.requiredResourceCount, computedStatus.requiredResourceCount); EXPECT_EQ(status.completedResourceCount, computedStatus.completedResourceCount); EXPECT_EQ(status.completedResourceSize, computedStatus.completedResourceSize); @@ -455,3 +457,32 @@ TEST(OfflineDownload, ReactivatePreviouslyCompletedDownload) { test.loop.run(); } + +TEST(OfflineDownload, Deactivate) { + OfflineTest test; + OfflineRegion region = test.createRegion(); + OfflineDownload download( + region.getID(), + OfflineTilePyramidRegionDefinition("http://127.0.0.1:3000/offline/style.json", LatLngBounds::world(), 0.0, 0.0, 1.0), + test.db, test.fileSource); + + test.fileSource.styleResponse = [&] (const Resource& resource) { + EXPECT_EQ("http://127.0.0.1:3000/offline/style.json", resource.url); + return test.response("offline/mapbox_source.style.json"); + }; + + auto observer = std::make_unique(); + + observer->statusChangedFn = [&] (OfflineRegionStatus status) { + if (status.downloadState == OfflineRegionDownloadState::Inactive) { + test.loop.stop(); + } else { + download.setState(OfflineRegionDownloadState::Inactive); + } + }; + + download.setObserver(std::move(observer)); + download.setState(OfflineRegionDownloadState::Active); + + test.loop.run(); +} -- cgit v1.2.1