| 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 c91909c80abcc34c0b14921c5293a677312ebc37..c35286321d05653b72932a395f8a97efe27b88b3 100644
|
| --- a/components/offline_pages/background/request_coordinator_unittest.cc
|
| +++ b/components/offline_pages/background/request_coordinator_unittest.cc
|
| @@ -203,6 +203,13 @@ class RequestCoordinatorTest
|
| }
|
| }
|
|
|
| + void CallConnectionTypeObserver() {
|
| + if (coordinator()->connection_notifier_) {
|
| + coordinator()->connection_notifier_->OnConnectionTypeChanged(
|
| + GetConnectionType());
|
| + }
|
| + }
|
| +
|
| void SetIsLowEndDeviceForTest(bool is_low_end_device) {
|
| coordinator()->is_low_end_device_ = is_low_end_device;
|
| }
|
| @@ -570,6 +577,35 @@ TEST_F(RequestCoordinatorTest, OfflinerDoneRequestSucceeded) {
|
| observer().last_status());
|
| }
|
|
|
| +TEST_F(RequestCoordinatorTest, OfflinerDoneRequestSucceededButLostNetwork) {
|
| + // Add a request to the queue and set offliner done callback for it.
|
| + offline_pages::SavePageRequest request(kRequestId1, kUrl1, kClientId1,
|
| + base::Time::Now(), kUserRequested);
|
| + SetupForOfflinerDoneCallbackTest(&request);
|
| + EnableOfflinerCallback(false);
|
| +
|
| + // Add a 2nd request to the queue.
|
| + AddRequest2();
|
| +
|
| + // Disconnect network.
|
| + SetNetworkConnected(false);
|
| +
|
| + // Call the OfflinerDoneCallback to simulate the page being completed, wait
|
| + // for callbacks.
|
| + SendOfflinerDoneCallback(request, Offliner::RequestStatus::SAVED);
|
| + PumpLoop();
|
| + EXPECT_TRUE(immediate_schedule_callback_called());
|
| +
|
| + // Verify not busy with 2nd request (since no connection).
|
| + EXPECT_FALSE(is_busy());
|
| +
|
| + // Now connect network and verify processing starts.
|
| + SetNetworkConnected(true);
|
| + CallConnectionTypeObserver();
|
| + PumpLoop();
|
| + EXPECT_TRUE(is_busy());
|
| +}
|
| +
|
| TEST_F(RequestCoordinatorTest, OfflinerDoneRequestFailed) {
|
| // Add a request to the queue, wait for callbacks to finish.
|
| offline_pages::SavePageRequest request(
|
| @@ -1243,13 +1279,23 @@ TEST_F(RequestCoordinatorTest,
|
| }
|
|
|
| TEST_F(RequestCoordinatorTest, SavePageDoesntStartProcessingWhenDisconnected) {
|
| + // If low end device, pretend it is not so that immediate start allowed.
|
| + SetIsLowEndDeviceForTest(false);
|
| +
|
| SetNetworkConnected(false);
|
| + EnableOfflinerCallback(false);
|
| EXPECT_NE(
|
| coordinator()->SavePageLater(
|
| kUrl1, kClientId1, kUserRequested,
|
| RequestCoordinator::RequestAvailability::ENABLED_FOR_OFFLINER), 0);
|
| PumpLoop();
|
| EXPECT_FALSE(is_busy());
|
| +
|
| + // Now connect network and verify processing starts.
|
| + SetNetworkConnected(true);
|
| + CallConnectionTypeObserver();
|
| + PumpLoop();
|
| + EXPECT_TRUE(is_busy());
|
| }
|
|
|
| TEST_F(RequestCoordinatorTest,
|
|
|