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 |