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 8cdcf4fd3930fbabdc8749ef702e3385e9b66fa4..ebcbe140f39a7b3f1a30b8ffbf8e619d52ed20f4 100644 |
--- a/components/offline_pages/background/request_coordinator_unittest.cc |
+++ b/components/offline_pages/background/request_coordinator_unittest.cc |
@@ -197,7 +197,7 @@ TEST_F(RequestCoordinatorTest, SavePageLater) { |
EXPECT_TRUE(scheduler_stub->schedule_called()); |
} |
-TEST_F(RequestCoordinatorTest, OfflinerDone) { |
+TEST_F(RequestCoordinatorTest, OfflinerDoneRequestSucceeded) { |
// Add a request to the queue, wait for callbacks to finish. |
offline_pages::SavePageRequest request( |
kRequestId, kUrl, kClientId, base::Time::Now()); |
@@ -231,4 +231,37 @@ TEST_F(RequestCoordinatorTest, OfflinerDone) { |
EXPECT_EQ(0UL, last_requests().size()); |
} |
+TEST_F(RequestCoordinatorTest, OfflinerDoneRequestFailed) { |
+ // Add a request to the queue, wait for callbacks to finish. |
+ offline_pages::SavePageRequest request( |
+ kRequestId, kUrl, kClientId, base::Time::Now()); |
+ coordinator()->queue()->AddRequest( |
+ request, |
+ base::Bind(&RequestCoordinatorTest::AddRequestDone, |
+ base::Unretained(this))); |
+ PumpLoop(); |
+ |
+ // We need to give a callback to the request. |
+ base::Callback<void(bool)> callback = |
+ base::Bind( |
+ &RequestCoordinatorTest::EmptyCallbackFunction, |
+ base::Unretained(this)); |
+ coordinator()->SetProcessingCallbackForTest(callback); |
+ |
+ // Call the OfflinerDoneCallback to simulate the request failed, wait |
+ // for callbacks. |
+ SendOfflinerDoneCallback(request, Offliner::RequestStatus::FAILED); |
+ PumpLoop(); |
+ |
+ // Verify the request is not removed from the queue, and wait for callbacks. |
+ coordinator()->queue()->GetRequests( |
+ base::Bind(&RequestCoordinatorTest::GetRequestsDone, |
+ base::Unretained(this))); |
+ PumpLoop(); |
+ |
+ // Still one request in the queue. |
+ EXPECT_EQ(1UL, last_requests().size()); |
+ // TODO(dougarnett): Verify retry count gets incremented. |
+} |
+ |
} // namespace offline_pages |