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

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

Issue 2438503003: [Offline pages] Add MarkAttemptAbortedTask to Request Queue (Closed)
Patch Set: Addressing feedback -- adding comments and documentation Created 4 years, 2 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
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 857245bbb504d912cf13246c4ecf5aebde822709..9018999b7abcf18871441fb56726ccf02b0b74bb 100644
--- a/components/offline_pages/background/request_queue_unittest.cc
+++ b/components/offline_pages/background/request_queue_unittest.cc
@@ -53,6 +53,8 @@ class RequestQueueTest : public testing::Test {
void UpdateRequestDone(UpdateRequestResult result);
void UpdateRequestsDone(std::unique_ptr<UpdateRequestsResult> result);
+ void ClearResults();
+
RequestQueue* queue() { return queue_.get(); }
AddRequestResult last_add_result() const { return last_add_result_; }
@@ -129,6 +131,15 @@ void RequestQueueTest::UpdateRequestsDone(
update_requests_result_ = std::move(result);
}
+void RequestQueueTest::ClearResults() {
+ last_add_result_ = AddRequestResult::STORE_FAILURE;
+ last_update_result_ = UpdateRequestResult::STORE_FAILURE;
+ last_get_requests_result_ = GetRequestsResult::STORE_FAILURE;
+ last_added_request_.reset(nullptr);
+ update_requests_result_.reset(nullptr);
+ last_requests_.clear();
+}
+
TEST_F(RequestQueueTest, GetRequestsEmpty) {
queue()->GetRequests(
base::Bind(&RequestQueueTest::GetRequestsDone, base::Unretained(this)));
@@ -440,4 +451,52 @@ TEST_F(RequestQueueTest, MarkAttempStartedRequestNotPresent) {
EXPECT_EQ(0ul, update_requests_result()->updated_items.size());
}
+TEST_F(RequestQueueTest, MarkAttemptAborted) {
+ base::Time creation_time = base::Time::Now();
+ SavePageRequest request(kRequestId, kUrl, kClientId, creation_time,
+ kUserRequested);
+ queue()->AddRequest(request, base::Bind(&RequestQueueTest::AddRequestDone,
+ base::Unretained(this)));
+ PumpLoop();
+
+ // Start request.
+ queue()->MarkAttemptStarted(kRequestId,
+ base::Bind(&RequestQueueTest::UpdateRequestsDone,
+ base::Unretained(this)));
+ PumpLoop();
+ ClearResults();
+
+ queue()->MarkAttemptAborted(kRequestId,
+ base::Bind(&RequestQueueTest::UpdateRequestsDone,
+ base::Unretained(this)));
+ PumpLoop();
+
+ ASSERT_TRUE(update_requests_result());
+ EXPECT_EQ(1UL, update_requests_result()->item_statuses.size());
+ EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first);
+ EXPECT_EQ(ItemActionStatus::SUCCESS,
+ update_requests_result()->item_statuses.at(0).second);
+ EXPECT_EQ(1UL, update_requests_result()->updated_items.size());
+ EXPECT_EQ(SavePageRequest::RequestState::AVAILABLE,
+ update_requests_result()->updated_items.at(0).request_state());
+}
+
+TEST_F(RequestQueueTest, MarkAttemptAbortedRequestNotPresent) {
+ // First add a request. Retry count will be set to 0.
+ base::Time creation_time = base::Time::Now();
+ // This request is never put into the queue.
+ SavePageRequest request1(kRequestId, kUrl, kClientId, creation_time,
+ kUserRequested);
+
+ queue()->MarkAttemptAborted(kRequestId,
+ base::Bind(&RequestQueueTest::UpdateRequestsDone,
+ base::Unretained(this)));
+ PumpLoop();
+ ASSERT_EQ(1ul, update_requests_result()->item_statuses.size());
+ EXPECT_EQ(kRequestId, update_requests_result()->item_statuses.at(0).first);
+ EXPECT_EQ(ItemActionStatus::NOT_FOUND,
+ update_requests_result()->item_statuses.at(0).second);
+ EXPECT_EQ(0ul, update_requests_result()->updated_items.size());
+}
+
} // namespace offline_pages
« no previous file with comments | « components/offline_pages/background/request_queue.cc ('k') | components/offline_pages/background/update_request_task.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698