Chromium Code Reviews| Index: components/offline_pages/background/request_queue_store_unittest.cc |
| diff --git a/components/offline_pages/background/request_queue_store_unittest.cc b/components/offline_pages/background/request_queue_store_unittest.cc |
| index bf5dcac203761451e916f3d35f49bd38eaa2854c..a4fc9c2bec3158d455d6c7691b75745a48f3c0f1 100644 |
| --- a/components/offline_pages/background/request_queue_store_unittest.cc |
| +++ b/components/offline_pages/background/request_queue_store_unittest.cc |
| @@ -57,6 +57,7 @@ class RequestQueueStoreTestBase : public testing::Test { |
| // Callback used for add/update request. |
| void AddOrUpdateDone(UpdateStatus result); |
| void AddRequestDone(ItemActionStatus status); |
| + void UpdateRequestDone(std::unique_ptr<UpdateRequestsResult> result); |
| void UpdateMultipleRequestsDone( |
| const RequestQueue::UpdateMultipleRequestResults& results, |
| std::vector<std::unique_ptr<SavePageRequest>> requests); |
| @@ -81,6 +82,10 @@ class RequestQueueStoreTestBase : public testing::Test { |
| } |
| ItemActionStatus last_add_status() const { return last_add_status_; } |
| + UpdateRequestsResult* last_update_result() const { |
| + return last_update_result_.get(); |
| + } |
| + |
| protected: |
| base::ScopedTempDir temp_directory_; |
| @@ -88,6 +93,7 @@ class RequestQueueStoreTestBase : public testing::Test { |
| LastResult last_result_; |
| UpdateStatus last_update_status_; |
| ItemActionStatus last_add_status_; |
| + std::unique_ptr<UpdateRequestsResult> last_update_result_; |
| RequestQueue::UpdateMultipleRequestResults last_multiple_update_results_; |
| RequestQueue::UpdateMultipleRequestResults last_remove_results_; |
| std::vector<std::unique_ptr<SavePageRequest>> last_requests_; |
| @@ -120,6 +126,7 @@ void RequestQueueStoreTestBase::ClearResults() { |
| last_add_status_ = ItemActionStatus::NOT_FOUND; |
| last_remove_results_.clear(); |
| last_requests_.clear(); |
| + last_update_result_.reset(nullptr); |
| } |
| void RequestQueueStoreTestBase::GetRequestsDone( |
| @@ -137,6 +144,11 @@ void RequestQueueStoreTestBase::AddRequestDone(ItemActionStatus status) { |
| last_add_status_ = status; |
| } |
| +void RequestQueueStoreTestBase::UpdateRequestDone( |
| + std::unique_ptr<UpdateRequestsResult> result) { |
| + last_update_result_ = std::move(result); |
| +} |
| + |
| void RequestQueueStoreTestBase::UpdateMultipleRequestsDone( |
| const RequestQueue::UpdateMultipleRequestResults& results, |
| std::vector<std::unique_ptr<SavePageRequest>> requests) { |
| @@ -276,12 +288,22 @@ TYPED_TEST(RequestQueueStoreTest, UpdateRequest) { |
| SavePageRequest updated_request(kRequestId, kUrl, kClientId, |
| new_creation_time, activation_time, |
| kUserRequested); |
| - store->AddOrUpdateRequest( |
| - updated_request, base::Bind(&RequestQueueStoreTestBase::AddOrUpdateDone, |
| - base::Unretained(this))); |
| - ASSERT_EQ(UpdateStatus::FAILED, this->last_update_status()); |
| + std::vector<SavePageRequest> requests_to_update{updated_request}; |
| + store->UpdateRequests( |
| + requests_to_update, |
| + base::Bind(&RequestQueueStoreTestBase::UpdateRequestDone, |
| + base::Unretained(this))); |
| + ASSERT_FALSE(this->last_update_result()); |
| this->PumpLoop(); |
| - ASSERT_EQ(UpdateStatus::UPDATED, this->last_update_status()); |
| + ASSERT_TRUE(this->last_update_result()); |
| + EXPECT_EQ(1UL, this->last_update_result()->item_statuses.size()); |
| + EXPECT_EQ(kRequestId, |
| + this->last_update_result()->item_statuses.begin()->first); |
| + EXPECT_EQ(ItemActionStatus::SUCCESS, |
| + this->last_update_result()->item_statuses.begin()->second); |
| + EXPECT_EQ(1UL, this->last_update_result()->updated_items.size()); |
| + EXPECT_EQ(updated_request, |
| + *(this->last_update_result()->updated_items.begin())); |
| // Verifying get reqeust results after a request was updated. |
| this->ClearResults(); |
| @@ -292,6 +314,26 @@ TYPED_TEST(RequestQueueStoreTest, UpdateRequest) { |
| ASSERT_EQ(LastResult::kTrue, this->last_result()); |
| ASSERT_EQ(1ul, this->last_requests().size()); |
| ASSERT_EQ(updated_request, *(this->last_requests()[0].get())); |
| + |
| + this->ClearResults(); |
|
Pete Williamson
2016/09/22 00:12:50
This section is a nice addition to the test, thank
fgorski
2016/09/22 15:47:53
Acknowledged.
|
| + // Try to update a non-existing request. |
| + SavePageRequest updated_request2(kRequestId2, kUrl, kClientId, |
| + new_creation_time, activation_time, |
| + kUserRequested); |
| + requests_to_update.clear(); |
| + requests_to_update.push_back(updated_request2); |
| + store->UpdateRequests( |
| + requests_to_update, |
| + base::Bind(&RequestQueueStoreTestBase::UpdateRequestDone, |
| + base::Unretained(this))); |
| + this->PumpLoop(); |
| + ASSERT_TRUE(this->last_update_result()); |
| + EXPECT_EQ(1UL, this->last_update_result()->item_statuses.size()); |
| + EXPECT_EQ(kRequestId2, |
| + this->last_update_result()->item_statuses.begin()->first); |
| + EXPECT_EQ(ItemActionStatus::NOT_FOUND, |
| + this->last_update_result()->item_statuses.begin()->second); |
| + EXPECT_EQ(0UL, this->last_update_result()->updated_items.size()); |
| } |
| TYPED_TEST(RequestQueueStoreTest, RemoveRequests) { |