Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Unified Diff: components/offline_pages/background/request_queue_store_unittest.cc

Issue 2363563002: [Offline pages] Implementation of RQStore.UpdateRequests with StoreUpdateResult (Closed)
Patch Set: Updating test, adding handling for store/transaction failures. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/offline_pages/background/request_queue_store_sql.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..cfe0bf39e8eadf6839c2b4da9dd96197144ec49f 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) {
@@ -273,15 +285,33 @@ TYPED_TEST(RequestQueueStoreTest, UpdateRequest) {
base::Time new_creation_time =
creation_time + base::TimeDelta::FromMinutes(1);
base::Time activation_time = creation_time + base::TimeDelta::FromHours(6);
+ // Try updating an existing request.
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());
+ // Try to update a non-existing request.
+ SavePageRequest updated_request2(kRequestId2, kUrl, kClientId,
+ new_creation_time, activation_time,
+ kUserRequested);
+ std::vector<SavePageRequest> requests_to_update{updated_request,
+ updated_request2};
+ 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(2UL, this->last_update_result()->item_statuses.size());
+ EXPECT_EQ(kRequestId, this->last_update_result()->item_statuses[0].first);
+ EXPECT_EQ(ItemActionStatus::SUCCESS,
+ this->last_update_result()->item_statuses[0].second);
+ EXPECT_EQ(kRequestId2, this->last_update_result()->item_statuses[1].first);
+ EXPECT_EQ(ItemActionStatus::NOT_FOUND,
+ this->last_update_result()->item_statuses[1].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();
« no previous file with comments | « components/offline_pages/background/request_queue_store_sql.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698