Index: components/offline_pages/background/request_coordinator_unittest.cc |
diff --git a/components/offline_pages/background/request_coordinator_unittest.cc b/components/offline_pages/background/request_coordinator_unittest.cc |
index 70bb02c3bb5c7385bc39e6692798f5eab5517365..330e6d7cc60ebfab83270843fd63c39470eb5a19 100644 |
--- a/components/offline_pages/background/request_coordinator_unittest.cc |
+++ b/components/offline_pages/background/request_coordinator_unittest.cc |
@@ -851,4 +851,43 @@ TEST_F(RequestCoordinatorTest, SavePageDoesntStartProcessingWhenDisconnected) { |
EXPECT_FALSE(is_busy()); |
} |
+TEST_F(RequestCoordinatorTest, ResumeStartsProcessingWhenConnected) { |
+ SetNetworkConditionsForTest( |
+ net::NetworkChangeNotifier::ConnectionType::CONNECTION_NONE); |
+ |
+ // Add a request to the queue. |
+ offline_pages::SavePageRequest request1(kRequestId1, kUrl1, kClientId1, |
+ base::Time::Now(), kUserRequested); |
+ coordinator()->queue()->AddRequest( |
+ request1, base::Bind(&RequestCoordinatorTest::AddRequestDone, |
+ base::Unretained(this))); |
+ PumpLoop(); |
+ EXPECT_FALSE(is_busy()); |
+ |
+ // Pause the request. |
+ std::vector<int64_t> request_ids; |
+ request_ids.push_back(kRequestId1); |
+ coordinator()->PauseRequests(request_ids); |
+ PumpLoop(); |
+ |
+ // Resume the request while disconnected. |
+ coordinator()->ResumeRequests(request_ids); |
+ PumpLoop(); |
+ EXPECT_FALSE(is_busy()); |
+ |
+ // Pause the request again. |
+ coordinator()->PauseRequests(request_ids); |
+ PumpLoop(); |
+ |
+ // Now simulate being connected. |
+ SetNetworkConditionsForTest( |
+ net::NetworkChangeNotifier::ConnectionType::CONNECTION_3G); |
+ |
+ // Resume the request while connected. |
+ coordinator()->ResumeRequests(request_ids); |
+ EXPECT_FALSE(is_busy()); |
+ PumpLoop(); |
+ EXPECT_TRUE(is_busy()); |
+} |
+ |
} // namespace offline_pages |