Chromium Code Reviews| Index: components/offline_pages/background/request_queue_unittest.cc |
| diff --git a/components/offline_pages/background/request_queue_unittest.cc b/components/offline_pages/background/request_queue_unittest.cc |
| index 85628d1ee551fd99d2fb78dfa43ed1d8b4bafb57..b22dd1754ac7b36fa5f774fcde3359342d9b751f 100644 |
| --- a/components/offline_pages/background/request_queue_unittest.cc |
| +++ b/components/offline_pages/background/request_queue_unittest.cc |
| @@ -24,6 +24,7 @@ namespace { |
| const int64_t kRequestId = 42; |
| const GURL kUrl("http://example.com"); |
| const ClientId kClientId("bookmark", "1234"); |
| +const int64_t kRetryCount = 2; |
| // Data for request 2. |
| const int64_t kRequestId2 = 77; |
| const GURL kUrl2("http://test.com"); |
| @@ -49,6 +50,8 @@ class RequestQueueTest : public testing::Test { |
| // Callback for removing request. |
| void RemoveRequestDone(UpdateRequestResult result); |
| + void UpdateRequestDone(UpdateRequestResult result); |
| + |
| RequestQueue* queue() { return queue_.get(); } |
| AddRequestResult last_add_result() const { return last_add_result_; } |
| @@ -58,6 +61,8 @@ class RequestQueueTest : public testing::Test { |
| UpdateRequestResult last_remove_result() const { return last_remove_result_; } |
| + UpdateRequestResult last_update_result() const { return last_update_result_; } |
| + |
| GetRequestsResult last_get_requests_result() const { |
| return last_get_requests_result_; |
| } |
| @@ -70,6 +75,7 @@ class RequestQueueTest : public testing::Test { |
| std::unique_ptr<SavePageRequest> last_added_request_; |
| UpdateRequestResult last_remove_result_; |
| + UpdateRequestResult last_update_result_; |
| GetRequestsResult last_get_requests_result_; |
| std::vector<SavePageRequest> last_requests_; |
| @@ -82,6 +88,7 @@ class RequestQueueTest : public testing::Test { |
| RequestQueueTest::RequestQueueTest() |
| : last_add_result_(AddRequestResult::STORE_FAILURE), |
| last_remove_result_(UpdateRequestResult::STORE_FAILURE), |
| + last_update_result_(UpdateRequestResult::STORE_FAILURE), |
| last_get_requests_result_(GetRequestsResult::STORE_FAILURE), |
| task_runner_(new base::TestSimpleTaskRunner), |
| task_runner_handle_(task_runner_) {} |
| @@ -115,6 +122,10 @@ void RequestQueueTest::RemoveRequestDone(UpdateRequestResult result) { |
| last_remove_result_ = result; |
| } |
| +void RequestQueueTest::UpdateRequestDone(UpdateRequestResult result) { |
| + last_update_result_ = result; |
| +} |
| + |
| TEST_F(RequestQueueTest, GetRequestsEmpty) { |
| queue()->GetRequests( |
| base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); |
| @@ -196,4 +207,29 @@ TEST_F(RequestQueueTest, MultipleRequestsAddGetRemove) { |
| ASSERT_EQ(request2.request_id(), last_requests()[0].request_id()); |
| } |
| +TEST_F(RequestQueueTest, UpdateRequest) { |
|
fgorski
2016/07/22 16:14:58
Please add a test for UpdateRequest, when it is no
Pete Williamson
2016/07/22 18:27:00
Done.
|
| + // First add a request. Retry count will be set to 0. |
| + base::Time creation_time = base::Time::Now(); |
| + SavePageRequest request(kRequestId, kUrl, kClientId, creation_time); |
| + queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone, |
| + base::Unretained(this))); |
| + PumpLoop(); |
| + |
| + // Update the request, ensure it succeeded. |
| + request.set_attempt_count(kRetryCount); |
| + queue()->UpdateRequest( |
| + request, |
| + base::Bind(&RequestQueueTest::UpdateRequestDone, base::Unretained(this))); |
| + PumpLoop(); |
| + ASSERT_EQ(UpdateRequestResult::SUCCESS, last_update_result()); |
| + |
| + // Get the request, and verify the update took effect. |
| + queue()->GetRequests( |
| + base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this))); |
| + PumpLoop(); |
| + ASSERT_EQ(GetRequestsResult::SUCCESS, last_get_requests_result()); |
| + ASSERT_EQ(1ul, last_requests().size()); |
| + ASSERT_EQ(kRetryCount, last_requests().front().attempt_count()); |
| +} |
| + |
| } // namespace offline_pages |